Discussing, Learning, and Using Delphi and related technologies to create Great Applications!
procedure Meeting;
const
  MeetingTitle = 'Delphi XE5 Tour!';
  MeetingMonth = 2013.10 ;
  { tags: #Delphi Release #2013 }
begin
  WriteLn('''
Embarcadero’s Delphi XE5 Tour! The evening event has been CANCELLED! Instead, you are invited to Ruth’s Chris Steak House in Portland at noon. Because there were two events on this date and far many more people registered with Embarcadero for the noon event than the evening event, Embarcadero has eliminated the evening one. There will not be any meeting at the Fanno Creek Brew Pub in December. At this technical and interactive session, attendees will:
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

procedure Meeting;
const
  MeetingTitle = 'One Application, Many Different Development Environments - Part I';
  MeetingMonth = 2013.09 ;
  { tags: #Chris Newcombe #2013 }
begin
  WriteLn('''
Delphi, C#, Oxygene, and JavaScript Since programming languages were invented, people have tried to use one code base to get an application to run on multiple platforms. Whether it meant building custom compilers or interpreters for each platform (BASIC, C, JavaScript, Python), or writing an API layer for each device that talks to a generic module (Java, .NET), the goal has been to reduce the time it takes to develop a product while having it work for as wide a market as possible.
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

procedure Meeting;
const
  MeetingTitle = 'Introduction to Arduino';
  MeetingMonth = 2013.05 ;
  { tags: #Arduino #Doug Ausmus #2013 }
begin
  WriteLn('''
“Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It’s intended for artists, designers, hobbyists, and anyone interested in creating interactive objects or environments.” Sounds like fun? There are several of us Delphi developers that are interested in this technology and one of our members has offered to share his passion for electronics, give us a hands-on demo, help us get started playing with this technology, and teach us a little of what you can do with it.
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

procedure Meeting;
const
  MeetingTitle = 'In Persuit of Development Clairvoyance';
  MeetingMonth = 2013.04 ;
  { tags: #web #2013 }
begin
  WriteLn('''
As web technologies become more robust and the interfaces more rich and user-friendly and as a plethora of computing devices in every size and price range fill our lives, there is a race in the industry to become a major vendor of development tools to build applications for these various computing platforms. It seems that everyone is touting theirs as the one solution you need to cover all devices, minimize development effort, and provide the best experience for the users of your software.
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

procedure Meeting;
const
  MeetingTitle = 'FireDAC';
  MeetingMonth = 2013.03 ;
  { tags: #2013 }
begin
  WriteLn('''
On February 5, Embarcadero announced the purchase of a popular third party data access component library named AnyDAC. They have rebranded the library FireDAC for consistency with their new FireMonkey brand, although FireDAC doesn’t rely on FireMonkey in any way. FireDAC ships with the Enterprise, Ultimate and Architect SKUs and may be purchased by Pro users as a component pack. In the end, this appears to be a replacement of the dbExpress stack that Embarcadero has previously developed internally.
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

procedure Meeting;
const
  MeetingTitle = 'OnDrawCell';
  MeetingMonth = 2013.02 ;
  { tags: #2013 }
begin
  WriteLn('''
One of the advantages of using modern development environments such as Delphi is to hide the complexities of displaying controls on a form. Simply place a button or a grid or a label on your form and it looks and behaves like a button or a grid or a label should without any special work. But what if you need to do something that is not covered by the standard set of properties?
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

procedure Meeting;
const
  MeetingTitle = 'HTML 5';
  MeetingMonth = 2013.01 ;
  { tags: #Chris Newcombe #2013 }
begin
  WriteLn('''
For many projects today, it is not enough to work in Delphi. Projects extend to the web. At our January meeting we’ll be exploring how to work with HTML, with an emphasis on the newly-approved HTML 5 standard. Our vehicles of exploration for this presentation will be Delphi and HTML5 Builder. We’ll look at what works - and doesn’t - with these Embarcadero tools. There will also be an open discussion of people’s favorite HTML editor.
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

procedure Meeting;
const
  MeetingTitle = 'RAD Studio XE3 Tour!';
  MeetingMonth = 2012.09 ;
  { tags: #Delphi Release #2012 }
begin
  WriteLn('''
Exciting new versions of Delphi and RAD Studio are coming soon. Be among the first to see what’s new in Delphi XE3 and in RAD Studio XE3 – including Delphi, C++Builder, Prism, InterBase and new HTML5 Builder at one of these free, live, launch tour events. Get ready to develop apps for Windows 8. Learn how to give your existing VCL and FireMonkey apps a new Windows 8 look and functionality.
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

procedure Meeting;
const
  MeetingTitle = 'Tech Talk';
  MeetingMonth = 2012.06 ;
  { tags: #2012 }
begin
  WriteLn('''
There is no formal presentation this month. We’ll meet and eat at the usual location and talk tech–or any other subject that may come up. A laptop with Delphi 2010 will be hooked up to the big screen TV if we want to explore some topic or pull out a demo from a prior meeting.
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

procedure Meeting;
const
  MeetingTitle = 'Attributes and RTTI';
  MeetingMonth = 2012.05 ;
  { tags: #2012 }
begin
  WriteLn('''
Attributes, a language feature brought over from .NET and Java (known as “annotation”), are a language feature of Delphi introduced in version 2010 that allow annotating types and type members with special objects that carry additional information. This information can be queried at run time using RTTI, or Run Time Type Information. Along with existing OOP mechanisms (inheritance and ownership) you can now use annotations for a class and class members to further define what your classes are capable of.
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

procedure Meeting;
const
  MeetingTitle = 'OData';
  MeetingMonth = 2012.04 ;
  { tags: #Ron Grove #web #2012 }
begin
  WriteLn('''
The Open Data Protocol (OData) is a Web protocol for querying and updating data that provides a way to unlock your data and free it from silos that exist in applications today. We’ll see how an old technology in Delphi, WebBroker, has been able to do this for quite some time, but now there’s a cool name and a formalized protocol for it. A sample Delphi application will make obvious how simple it is to open your data to mobile devices!
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

procedure Meeting;
const
  MeetingTitle = 'Crystal Reports Alternatives';
  MeetingMonth = 2012.03 ;
  { tags: #Gene Juhos #reports #2012 }
begin
  WriteLn('''
Crystal Reports is a reporting application that can access data from a wide array of sources. It has come bundled with both Delphi and Visual Studio and is now also available as a web-based application. Many people have used Crystal Reports with Delphi through the years. Tonight’s presentation will be by a company that has been using Crystal Reports since Delphi 3. Crystal 8.5, no longer supported, was the last version that let you install a free runtime for every user.
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

procedure Meeting;
const
  MeetingTitle = 'Tales from the Scrypt!';
  MeetingMonth = 2012.02 ;
  { tags: #2012 }
begin
  WriteLn('''
Yes, this is a word play on “Tales from the Crypt” and will be a fun meeting where we share horror stories in coding. Bring your experiences of programming gone awry, the unbelievable code you’ve been handed, the strangest bugs, or the most unbelievable deadlines imposed on you and the terrible consequences that resulted. We will commiserate together and laugh at what the sales people in the organizations we work for have tried to do to us or ponder about what the previous programmer must’ve been smoking when s/he wrote the code we’re trying to debug.
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

procedure Meeting;
const
  MeetingTitle = 'Document Your Code Using XMLDoc';
  MeetingMonth = 2012.02 ;
  { tags: #2012 }
begin
  WriteLn('''
Many people do not know, and fewer still actually use, a nifty feature which appeared in the Delphi IDE a few years ago: built-in XML Documentation for your source code. At this month’s meeting, we’ll show how to turn it on, how to use it, and how it can enhance developer productivity, especially if you are sharing libraries or have several units to which you are constantly referring to for reviewing a type or method.
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

procedure Meeting;
const
  MeetingTitle = 'Tricks of the Trade';
  MeetingMonth = 2012.02 ;
  { tags: #2012 }
begin
  WriteLn('''
Everyone has their favorite Delphi IDE plug-in, their favorite Notepad replacement, their favorite tricks for saving time. We’ll share these tips with each other tonight. Some of the things we’ll likely cover include GExperts, editor macros, templates, debugging and logging, build events, mapped or redirected drives and paths, WinInternals tools, dealing with UAC and 64-bit issues, and automated builds. Make a list of your favorite ways to shorten your development time and bring them to share with the others.
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

procedure Meeting;
const
  MeetingTitle = 'Technology Chat';
  MeetingMonth = 2012.01 ;
  { tags: #2012 }
begin
  WriteLn('''
There is no formal topic for this month’s meeting. Our regular meeting time and place will be kept and there will be a laptop with Delphi 2010 hooked to the big screen TV, but no PowerPoint slides and no agenda. Sometimes meetings like this bring out very interesting topics!
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

procedure Meeting;
const
  MeetingTitle = 'Touch and Gesture Capabilities';
  MeetingMonth = 2011.11 ;
  { tags: #Slides #2011 }
begin
  WriteLn('''
Last summer, a member of the group brought a multi-touch enabled laptop to an ODUG meeting. Of course everyone wanted to see a touch enabled application written in Delphi. He now has a demo ready that shows some of these capabilities in a business application. The term “business application” was stretched a bit when Embarcadero came to town during the XE2 tour and explained how FireMonkey is the new way to write business applications.
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

procedure Meeting;
const
  MeetingTitle = 'RAD Studio XE2 World Tour!';
  MeetingMonth = 2011.10 ;
  { tags: #Delphi Release #2011 }
begin
  WriteLn('''
The word is out. The biggest and best Delphi, C++Builder and RAD Studio release is coming soon. Join us at this free event to get a first-hand look at all the new RAD capabilities you’ve been asking for and more. With RAD Studio XE2, you will be able to create 64-bit Delphi applications to take advantage of the latest hardware, access more memory, and push the performance envelope. You will be able to deploy your applications to Windows and Mac and more.
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

procedure Meeting;
const
  MeetingTitle = 'XML Binding and REST Servers';
  MeetingMonth = 2011.09 ;
  { tags: #Ron Grove #2011 }
begin
  WriteLn('''
We’ll be going over how to create XML documents in Delphi using the XML Binding Wizard to create the document from either an XSD or XML file. We’ll use a web broker based REST server to serve up the document and then read it in using a Delphi client. As we do that we’ll define what a REST server is and why it’s replacing SOAP servers. We will also look at using the web services wizard to read in WSDL from a SOAP based web service.
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

procedure Meeting;
const
  MeetingTitle = 'Powerful Debugging with CodeSite';
  MeetingMonth = 2011.07 ;
  { tags: #Slides #2011 }
begin
  WriteLn('''
Debugging your applications is an old topic. But there are always new tricks to be learned. One product that can go a long way in trouble-shooting is CodeSite by Raize Software. One member, David Cornelius, has been a long-time user and proponent of CodeSite and will share his expertise with the group. Even though this product has been out for a while, he still get requests once in a while on how to use CodeSite effectively.
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

procedure Meeting;
const
  MeetingTitle = 'HelpScribble';
  MeetingMonth = 2011.05 ;
  { tags: #2011 }
begin
  WriteLn('''
This month, the Oregon Delphi User Group will be looking at integrating help into Delphi applications. Just Great Software produces a complete help authoring tool called, HelpScribble that simplifies the task of producing help files and manuals in multiple formats. These files can be used to provide context-sensitive help in your Delphi programs, stand-alone software manuscripts, or even online documentation–all from the same help project file. PRESENTERS The discussion leaders are long-time members of this group, Homer Jones and Dan Lowe.
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

procedure Meeting;
const
  MeetingTitle = 'Discussion on Firebird';
  MeetingMonth = 2011.02 ;
  { tags: #Slides #2011 }
begin
  WriteLn('''
We have decided we want to meet again! I don’t know how regular this will be, but this month, we’re getting together, once again on the 3rd Monday of the month to talk about programming with the great Delphi programming tool. The emphasis this month will be using Firebird with examples and member experiences shared. Download the PowerPoint Slides PRESENTER Our main presenter is Alfonso Presa. Alfonso was born in Cuba and received a Bachelors degree in Computer Science at ISPJAE (Tech University of Havana).
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;

procedure Meeting;
const
  MeetingTitle = 'Delphi XE';
  MeetingMonth = 2010.11 ;
  { tags: #Delphi Release #2010 }
begin
  WriteLn('''
Delphi® is one of the most respected and widely used Rapid Application Development (RAD) environments today. Over 1.7 million developers worldwide choose Delphi over other tools because Delphi radically speeds desktop, workstation, touch, kiosk, and Web application development without sacrificing an ounce of programming power or control. Applications built with Delphi are lightning fast, compact, provide rich UIs, and can connect with virtually any database or data source “out-of-the-box”. RAD Studio 2010 helps you go further and get there faster with more than 120 new and enhanced features that help you finish projects faster and reach more users.
  ''');
  MeetingDetails(MeetingTitle, MeetingMonth);
end;