Results 1 to 4 of 4

Thread: Delphi6 Servers

  1. #1
    Old Navigator Matthijs's Avatar
    Join Date
    Mar 2001
    Location
    Ede, NL. Delphi: Delphi 7/2005 :). Matthijs schrijf je Matthijs
    Posts
    2,199

    Unhappy Delphi6 Servers

    Ik ben tussen de bedrijven door eens aan het kijken wat ik met D6 kan doen en doe een poging om eens te kijken hoe ik mijn D4-project over krijg.
    In het laatste maak ik gebruik van OleVariants om Excell aan te sturen. Nu wordt door D6 keurig netjes een Tab Servers opgebouwd met allerlei componenten die dus met de Office2000 suite zouden moeten werken. (Je wilt niet weten hoeveel componenten daar op staan! )
    Het enige probleem dat ik nu heb is, dat ik niet doorkrijg hoe ik deze aan de praat krijg. Als ik bijvoorbeeld een nieuw document/sheetje wil maken hoe krijg ik dit dan simpel voor elkaar?
    Code:
    WordApplication1.Documents.Add( /// ja en nu?
    Ik bedoel ik moet nu een viertal OleVariants meegeven, maar ik weet de doelen hiervan niet! Dus ook niet wat ik moet meegeven!
    What's in a sig?

    Would my posting be less valuable if it didnot have a sig? (Vrij naar William S.)

    Let op de kleine lettertjes. For all postings: e&oe!
    This program performed an illegal function, the police are on their way

  2. #2
    Senior Member McTinus's Avatar
    Join Date
    May 2001
    Location
    Hoek van Holland
    Posts
    389
    Dag Matthijs,

    mooi, al die office componentjes, nu de documenatie nog....
    Vergeet het, die is er niet voor delphi

    Je kan overigens ook alles aansturen met D4, je hebt D6 daar niet voor nodig!

    Je moet gewoon je favoriete zoekmachine starten en zoeken naar: delphi ole automation + excel, outlook, word of wat dan ook, dan kom je wel een aantal voorbeelden tegen zoals deze:
    http://www.blong.com/Articles/Automa...Automation.htm

    Een andere truuk om achter de functies te komen van bijvoorbeeld Word: Neem een makro op en kijk in de code wat daar gebeurt (allemaal VBA) en 'verdelphi' deze code, dan kom je ook een heel eind.

    Nog even jouw voorbeeld:

    WordApplication1.Connect;
    WordApplication1.Visible := True;
    WordApplication1.Documents.Add(EmptyParam, EmptyParam, Emptyparam, Emptyparam);


    Groeten

    Tinus

  3. #3
    Old Navigator Matthijs's Avatar
    Join Date
    Mar 2001
    Location
    Ede, NL. Delphi: Delphi 7/2005 :). Matthijs schrijf je Matthijs
    Posts
    2,199

    Lightbulb Reeds bekend

    Hi Tinus,

    bedankt voor het meedenken. Maar wat je vertelt, was mij al bekend. Ik gebruik in mijn huidige project dan ook de zelf geimporteerde object library van Excell.

    Ook de truuk van het opnemen van een Macro-tje deze in VBA bekijken en vertalen naar Delphi ken ik al en heb ik al eens op dit of het andere forum een ander mee geholpen.

    Ik denk echter dat ik met de servers zoals deze op de Tab staan een en ander sneller, beter en simpeler kan maken. (als ik maar wist hoe! )

    In ieder geval bedankt!
    What's in a sig?

    Would my posting be less valuable if it didnot have a sig? (Vrij naar William S.)

    Let op de kleine lettertjes. For all postings: e&oe!
    This program performed an illegal function, the police are on their way

  4. #4
    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.
    Marcel

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. Delphi6 Personal Help,Customize ontbreekt
    By GBaars in forum Algemeen
    Replies: 3
    Last Post: 15-Jun-04, 18:04
  2. connectie naar meerdere OPC servers
    By gober in forum Algemeen
    Replies: 3
    Last Post: 11-Dec-03, 23:07
  3. MSSQL beschikbare servers in een ComboBox ?
    By TiSE in forum Databases
    Replies: 1
    Last Post: 10-Jul-02, 18:30
  4. Patch 2 voor Delphi6
    By Matthijs in forum Koffiehoek
    Replies: 5
    Last Post: 22-Feb-02, 14:11
  5. Kiezen upgrade versie Delphi6
    By Nekes in forum Algemeen
    Replies: 2
    Last Post: 25-Nov-01, 21:07

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •