Hoi Matthijs,
Verkijk je niet op functionaliteit van de servercomponenten, die is er namelijk bijna niet. Ze zijn eigenlijk niets meer dan wrappers om de bestaande interfaces heen. Waar je voorheen deze code zou gebruiken:
Code:
WordApp := CreateOleObject('Word.Application');
WordDoc := WordApp.Documents.Add;
of
Code:
WordApp := CoApplication.Create;
WordDoc := WordApp.Documents.Add(EmptyParam, EmptyParam);
zou je nu deze gebruiken:
Code:
WordApplication1.Connect;
WordDocument1.ConnectTo(WordApplication1.Documents.Add(EmptyParam, EmptyParam));
Het eerste voorbeeld gebruikt late binding: roep maar een methode aan, runtime zien we wel of het allemaal klopt. Het tweede voorbeeld gebruikt early binding: de compiler controleert de aanroepen door middel van een interface. Het derde voorbeeld gebruikt de componenten die op hun beurt weer een interface gebruiken, een soort van super early binding. De source van de Close method van TWordDocument zou er als volgt uit kunnen zien:
Code:
procedure TWordDocument.Close;
begin
WordInterface.Close(EmptyParam, EmptyParam, EmptyParam);
end;
De uiteindelijke aanroep is dus weer gelijk, maar het wordt wel simpeler omdat je early binding kunt gebruiken en dankzij opverloading niet alle dummy parameters mee hoeft te geven.
Er is echter nog één belangrijke uitbreiding aan de componenten: de events. Events van de server naar de client zijn normaal nogal ingewikkeld, deze componenten nemen dat helemaal van je over.
Bookmarks