Marcel van Beuzekom
Na de eerste blik op Delphi 6 wordt het nu tijd om de
component palette eens wat beter te gaan bekijken. Welke nieuwe componenten
hebben we er bij gekregen en waar zijn uitbreidingen in gemaakt?
TValueListEditor
De ValueListEditor is een grid waarin de gebruiker op een eenvoudige manier
variabelen en hun waarden kan wijzigen of toevoegen. Vaak wordt data in een Na
manier in stringlists opgeslagen, nu kan deze data ook worden gepresenteerd en
gewijzigd. De kolommen heten standaard Key en Value, maar de
titels kunnen ook worden aangepast of verwijderd. Ook kan worden ingesteld of de
gebruiker alleen de waarde mag wijzigen, of ook de naam kolom. Via de
(public) property ItemProps kan vervolgens worden ingesteld h??e de gebruiker de
waarde mag wijzigen, bijvoorbeeld met een editmask, maar ook een lijstje met
keuzemogelijkheden is mogelijk.
TLabeledEdit
De naam LabeledEdit zegt het eigenlijk al: een label en een edit in één.
Van de label kan worden opgegeven waar deze, relatief aan de edit, moet komen
staan. Verder maakt dit component dankbaar gebruik van de mogelijkheid om
properties van een gekoppeld component te kunnen wijzigen: de properties van het
label component hoeven niet opnieuw te worden gepublished, alleen het publishen
van het component voldoet, de object inspector doet de rest.
TColorBox
Een populair component in de third party libraries, al was het alleen maar
omdat het er zo leuk uitziet: een combobox om een kleur te selecteren. Nu dus
ook standaard in Delphi.
TActionManager
Sinds Delphi 5 zijn Actions niet meer weg te denken uit een gestructureerde manier
van programmeren. Eindelijk was er een centrale plaats om code achter een actie te plaatsen, onafhankelijk van het feit of deze actie nou door een
menuitem, een popup menu of een button werd aangeroepen. Maar nadat we alle
Actions hadden aangemaakt moesten ook nog eens alle menuitems en buttons worden
aangemaakt en gekoppeld aan die Actions, dat was toch een beetje dubbel werk. De
ActionManager maakt dat allemaal een stuk eenvoudiger. In de manager kunnen
Actions worden gedefinieerd, of worden gekopieerd van de standaard actions die
overigens sterk zijn uitgebreid.
Vervolgens kunnen de actions, één voor één of een hele categorie tegelijk,
naar een TActionToolbar en een TActionMenubar worden gesleept. Omdat de
standaard actions ook nog eens automatisch de standaard dialogen aanroepen
(Bestand openen, Zoeken enz.) is het maken van een basis user interface nu wel
heel snel gedaan. Als je het nog flexibeler wilt maken dan gebruik je de CustomizeDlg
waarmee je gebruiker zelf alle items nog eens een eigen plaats kan geven. Die
instellingen kunnen dan vervolgens in een bestand of een stream worden
opgeslagen.
TComboBoxEx
Een combobox met een uitbreiding aan de items. Bij een gewone combobox
bestaan de items uit strings, bij de ComboBoxEx uit objecten waarbij onder
andere kan worden ingesteld welke ImageIndex (uit een ImageList) moet worden
gebruikt en hoever het item moet inspringen in de lijst.
TXMLTransform, TXMLTransformProvider, TXMLTransformClient
Deze componenten maken het werken met XML bestanden een stuk gemakkelijker.
Het XMLTransform component kan worden gebruik om een XML bestand om te zetten
naar een datapacket. Die datapacket kan dan vervolgens worden toegekend aan
bijvoorbeeld de XMLData property van een ClientDataSet. Na wijziging kan dat ook
weer andersom gebeuren zodat de data ook weer wordt opgeslagen.
Het XMLTransformPovider component is vergelijkbaar met een DataSetProvider,
alleen wordt de data nu van een XML bestand gelezen en daarin weer opgeslagen.
De ClientDataSet hoeft alleen nog maar te worden gekoppeld en deze kan worden
geopend om het bestand in de lezen. Met ApplyUpdates worden de wijzigingen
vervolgens weer opgeslagen. Als je er dus voor zorgt dat je je user-interface
altijd tegen een ClientDataSet programmeert kun je nu zonder wijzigingen ook met
XML bestanden werken.
Ook de XMLTransformClient maakt verbinding met de XMLTransformprovider, maar
nu zonder dat er een datapacket aan te pas komt. Dit component zou je
bijvoorbeeld kunnen gebruiken om een XML bestand direct naar je applicatie
server te versturen.
Voor alle vertalingen van het XML bestand naar de datapacket en terug wordt
gebruik gemaakt van transformationfiles, de 'DDL' van je XML bestand. Deze
bestanden kun je aanmaken met de meegeleverde XMLMapper en vervolgens vul je de
bestandsnaam in bij de betreffende properties.
dbExpress
De dbExpress componenten maken het mogelijk om op een eenvoudige manier,
zonder onnodige overhead, contact te maken met een aantal databases. De
databases die nu worden ondersteund zijn: DB2, Interbase, MySQL en Oracle, maar
hier worden nog wel uitbreidingen op verwacht. dbExpress wordt binnenkort in een
apart artikel op NLDelphi besproken.
TIBClientDataSet, TBDEClientDataSet, TSQLClientDataSet
Drie componenten die het werken met ClientDataSets makkelijker maken. Deze
componenten worden direct aan hun DBConnection gekoppeld, zonder dat daar een
Provider voor nodig. is. Overigens zijn de mogelijkheden van deze ClientDataSets
beperkter waardoor ze alleen voor eenvoudige database afhandeling gebruikt
zullen worden.
Internet
De uitbreidingen waar Borland de meeste reclame over maakt: WebServices. Dan
kan ik het niet in een paar zinnen samenvatten, dus ook WebServices
worden binnenkort in een apart artikel besproken.
WebSnap, ook één van de nieuwe Internettermen in Delphi 6 krijgt
de meeste kritiek van Delphi 6 gebruikers. WebSnap leunt zwaar op het gebruik van
server side scripts en dat is toch even wat anders dan Delphi. Verder heeft
WebSnap de uitspraak van David I weerlegt dat Delphi 6 pas wordt uitgebracht als
het af is: de documentatie is nog lang niet volledig en ook WebSnap zelf is nog
niet stabiel. WebSnap blijft dus even in de wacht staan tot de volgende Delphi
release.
TShellTreeView, TShellListView, TShellComboBox
Verstopt op de Samples tab een set componenten om op een 32-bits manier een
directorystructuur, een lijst van bestanden en een directory combobox te
presenteren:
Indy Clients & Servers
De Indy components waren ook voor vorige Delphi versies al gratis te
downloaden van de Indy
site, de enige verandering is dus eigenlijk dat ze nu met Delphi zijn
meegeleverd. Groot voordeel is natuurlijk dat de groep gebruikers opeens
ontzettend is gegroeid en daarmee ook de kennis en ondersteuning van de
componenten. Voor wie Indy niet kent: Indy is een verzameling componenten
waarmee zo ongeveer ieder internet protocol kan worden aangesproken. Denk
hierbij aan POP en SMTP voor mail, FTP voor het up- en downloaden van bestanden,
NNTP voor nieuwsgroepen, HTTP enzovoort. Voor ieder protocol is zowel een
server- als een client component beschikbaar, alles bij elkaar zijn dat ruim 40
componenten!
Conclusie
In dit artikel heb je vooral de 'gewone' componenten gezien, de grootste
uitbreidingen zul je in andere artikelen zien als ik verder inga op XML,
dbExpress en WebServices. Van de gewone componenten is de ActionManager de meest
opvallende, vooral omdat deze zich richt op een nog meer gestructureerde manier
om een user-interface op te zetten. De overige componenten zijn zeker zinvol,
maar niet spectaculair.