Bob Swart (aka Dr.Bob)
Preview: Borland Delphi 3

Preview: Borland Delphi 3
Alhoewel Delphi 3 nog niet beschikbaar is (naar verwachting komt het pakket eind April in de USA en begin Mei in Europa op de markt), zijn er toch al enige officiële feiten bekend gemaakt, met name door Lance Devin, Sr. Product Manager Delphi bij Borland.

Packages
Al tijdens de Borland Conferentie in Anaheim vorig jaar is bekend gemaakt dat Delphi 3 packages zal ondersteunen: een soort slimme DLLs die zowel tijdens design-time als tijden run-time hun waarde hebben. Een package kan gezien worden als een gecompileerde verzameling van VCL componenten. De componenten bibliotheek van weleer bestaat niet meer, maar in plaats daarvan kunnen verschillende packages dynamisch geladen worden (en meer dan een tegelijk). Iedere package correspondeert met een tab van het aloude component palette, en op deze manier is het ook eenvoudiger geworden om nieuwe componenten toe te voegen (aan een package) of te distributeren (in een package). Toepassingen die gebruik maken van packages zullen (veel) kleiner worden omdat de componenten niet langer meegelinkt hoeven te worden in de executabel; zij zijn al in de package aanwezig. Door de packages reeds bij een klant neer te zetten (of bijvoorbeeld via het internet te verspreiden) wordt bovendien de distributie van de (nu kleinere) toepassingen zelf ook sterk vereenvoudigd. Als voorbeeld gaat de fishfacts demo van ruim 200 Kb terug naar 13 Kb door gebruik te maken van deze packages.

One-Step ActiveX en ActiveForms
Delphi 3 zal ondersteuning bevatten voor COM, DCOM en ActiveX. En niet alleen ondersteuning, maar Delphi 3 zal de mogelijkheid bieden om in één stap een ActiveX control te maken. Wie wel eens een ActiveX heeft gemaakt weet dat dit niet eenvoudig is. Delphi 3 neemt al het werk uit handen, tot aan het automatisch genereren van de GUID, de type-library en het registreren aan toe. Voor de programmeur lijkt het alsof er een "normale" component wordt ontwikkeld; het echte werk gebeurt door Delphi achter de schermen (maar is wel zichtbaar in de code editor). Delphi kan op deze manier gebruikt worden als de componenten fabriek van een organisatie. Niet alleen in VCL vorm (voor Delphi en C++Builder), maar nu ook in One-Step ActiveX formaat!

ActiveForms
Een gerelateerde en uitermate veelbelovende nieuwe feature van Delphi 3 is de mogelijkheid om een compleet Form om te zetten in een ActiveForm: een complete ActiveX met alle functionaliteiten van het gehele Form in zich. En deze ActiveForm kan vervolgens gebruikt worden op het web met Internet Explorer, maar ook binnen omgevingen als Delphi zelf, VB5, C++, Optima++, PowerBuilder, AionDS, etc. In combinatie met packages biedt dit natuurlijk ongekende mogelijkheden voor het distribueren van Delphi 3 toepassingen via het internet.

BDE
Delphi 3 zal ondersteuning bieden voor verschillende database engines, waaronder de BDE, maar ook native Access, FoxPro en de SQL Links Drivers. Dit zal gerealiseerd worden door het aanbieden van een open API zodat andere partijen (zoals SuccessWare) een database engine voor Delphi 3 kunnen ontwikkelen die zonder problemen samenwerkt met de data-aware controls van Delphi. Een ander onderdeel van deze architectuur is de zogenaamde Open DataSet. Er zal een Driver Development Kit (DDK) op de markt komen die ontwikkelaars in staat stelt om native drivers door de Borland Database Engine (BDE) te ontwikkelen, die vervolgens in alle Borland omgevingen gebruikt kunnen worden.

Code Insights
Het laatste nieuws betreffende Delphi 3 gaat over een aantal uitbreidingen van de code editor, onder de naam Code Insights. Het doel is om de productiviteit van de programmeur te vergroten, en dit denkt men onder meer te bereiken door Code Completion, Code Parameters, Tooltip Expression Evaluation, Code Templates en tot slot IDE DLL Debugging.

Code Completion
Code Completion is een nieuwe feature waarin de IDE een aantal suggesties biedt om de geschreven code aan te vullen. Bijvoorbeeld als de "Button1." hebben ingetikt, waarna we natuurlijk een property of method van deze Button willen gebruiken. Vaak is de exacte naam van deze property of method niet 100% duidelijk ("was het nou Align of Alignment?") en dan moet op de F1-toets gedrukt worden om in de on-line help de lijst met properties en/of methods te voorschijn te krijgen. Code Competion laat na het intikken van de punt achter "Button1" een lijstje zien van alle mogelijke properties en methods, zodat we nog slechts de juiste uit het lijstje hoef te kiezen (we hoeven zelfs niet eens meer iets in te tikken: het gekozene wordt automatisch ingevuld).

Om het lijstje met properties en methods direkt op te vragen hoeven we slechts Control+Space in te toetsen in de code editor.

Code Parameters
Een andere handige nieuwe feature van de Delphi 3 code editor heet Code Parameters, waarbij we niet langer hoeven te onthouden welke parameters er gebruikt worden bij procedures, functies of methods. Dit geldt zowel voor de naam, het type als de volgorde van de parameters, want Code Parameters laat een complete lijst zien van de benodigde parameters, waarbij de huidige parameter (diegene die we op dat moment moeten invullen) zelfs in vet staat gedrukt.

Deze feature werkt zelfs op de routines die we zelf geschreven hebben, doordat Delphi 3 op de achtergrond voortdurend alle geschreven code aan het parsen is en een lijst bijhoudt van alle routines met hun parameters (en types). Een mooi voorbeeld is de Win32 API CreateProcess, waarbij ik niet denk dat ik ooit de lijst met parameters (en hun types) zou kunnen onthouden. Maar nu krijg ik deze lijst gratis voorgetoverd nadat ik de open-haak heb ingetikt. Erg handig! Om de parameterlijst direkt zichtbaar te krijgen moeten we Control+Shift+Space intoetsen.

Tooltip Expression Evaluation
Een derde nieuwe feature genaamd Tooltip Expression Evaluation is een enorme ondersteuning tijdens het debuggen. Door deze feature hoeven we niet langer het Expression Watch Window te gebruiken om de waarde van een variabele of property te zien. We hoeven alleen maar een breakpoint te zetten (net als vanouds) om dan vervolgens met de muis over de variabele of property te gaan waarna de IDE ons in een tooltip window de waarde laat zien:

Code Templates
Een andere handige Code Insights feature heeft de naam Code Templates. Zoals de naam doet vermoeden gaat het hier om stukken voorgebakken code (zoals een if-statement in al zijn vormen, maar ook het skelet van een procedure, function of case-statement) wat we kunnen oproepen met Control+J. Indien we al een stuk van het template hadden ingetikt (zoals de "if") dan zien we alleen die stukken code die nog relevant zijn. Kan een hoop tikwerk schelen.

Het voordeel is dat je zelf meerdere stukken code kan toevoegen aan de reeds bestaande lijst met code templates. Hierdoor is het bijvoorbeeld mogelijk om elke routine met een standard stukje commentaar te laten beginnen.

Environment Opties
Alle Code Insights kunnen ingesteld worden vanuit de Environment Opties dialoog. Het betreft hier zowel aan/uit maar ook de snelheid waarmee de keuzelijstjes verschijnen. Daarnaast is het in deze dialoog mogelijk om de Code Templates aan te vullen met eigens tukken code.

IDE DLL Debugging
Een allerlaatste feature die nog net op tijd bekend werd is de mogelijkheid om nu vanuit de IDE van Delphi 3 DLLs te debuggen. Vooralsnog was hier het aparte programma Turbo Debugger for Windows voor nodig, maar nu kan Delphi 3 het dus vanuit de IDE zelf. We hoeven alleen maar de applicatie op te geven die als "host" van onze DLL optreed, en we kunnen vervolgens rustig breakpoints in de DLL zelf zetten. Alleen deze feature al zal vele ontwikkelaars erg blij maken met de nieuwe versie van Delphi!

Conclusie
Delphi 3 komt eraan. En de RAD ontwikkelomgeving van Borland zal een hoop mooie nieuwe eigenschappen bevatten, waarvan ik hier nog maar een tipje van de sluier heb mogen oplichten. Ten tijde van de volgende Borland Conference zal Delphi 3 al langere tijd officieel beschikbaar zijn, en dan gaan we er nog eens uitgebreid op in.


This webpage © 1997-2006 by webmaster drs. Robert E. Swart (aka - www.drbob42.com). All Rights Reserved.