AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Fehler bei Excel.workbooks.Open (...)
Thema durchsuchen
Ansicht
Themen-Optionen

Fehler bei Excel.workbooks.Open (...)

Ein Thema von Andreas Leix · begonnen am 6. Aug 2008 · letzter Beitrag vom 6. Aug 2008
Antwort Antwort
Seite 2 von 2     12   
Andreas Leix

Registriert seit: 28. Apr 2008
31 Beiträge
 
#11

Re: Fehler bei Excel.workbooks.Open (...)

  Alt 6. Aug 2008, 12:33
Hallo,

ich wußte nicht, dass man mit Varianten solche "Schhweinereien" machen kann;
also Methoden aufrufen, die man eigentlich nicht kennt, ohne fixe Anzahl von Parametern etc...

Also erstmal vielen Dank an Euch !!

Jetzt hab ich aber dennoch ein paar Anmerkungen/ Fragen :

Folgender Code läßt sich nicht compilieren:

Zitat:
uses ExcelXP;
...
var Excel : TExcelApplication;
WB : _WorkBook;
x : OleVariant;
...
x := Excel.Workbooks.Open(strDokument);
das geht nur , wenn ich

Delphi-Quellcode:
var Excel : OleVariant ;
    Excel := CreateOleObject('Excel.Application');
    x := Excel.Workbooks.Open(strDokument);
...
schreibe.
Aber, hab ich den Kern des Tipps richtig verstanden ?

Man kann Ole-Varianten typisierten Variablen zuweisen
und dann auf die Methoden zugreifen ?

Geht das auch umgekehrt ?
also z.b. sowas :

Delphi-Quellcode:
var Excel: TExcelApplication ;
    WB,X: OleVariant;

begin
  Excel := TExcelApplication.Create ( nil );
  X:= Excel as OleVariant;
  WB:= X.WorkBooks.Open ('Blubber');
...
end;
Und wie stehts dann mit dem Freigeben der Referenzen aus ?


Noch eine andere Frage.
Wenn ich nur mit Varianten arbeite,
dann brauch ich auch das Unit ExceXP oder ähnliches nicht aufnehmen, oder ?

Dann geschieht das Hochfahren/ Ansprechen von excel rein durch ?
MyExcel := CreateOleObject('Excel.Application'); Gruß vom lernenden
Andreas
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#12

Re: Fehler bei Excel.workbooks.Open (...)

  Alt 6. Aug 2008, 12:40
Zitat:
Dann geschieht das Hochfahren/ Ansprechen von excel rein durch ?
Ja.
Zitat:
Man kann Ole-Varianten typisierten Variablen zuweisen
und dann auf die Methoden zugreifen ?
Ja. Die Aufrufe und Zugriffe werden zur Laufzeit an den entsprechenden COM-Server weitergeleitet. (späte Bindung)

Zitat:
Und wie stehts dann mit dem Freigeben der Referenzen aus ?
Man muss den ComServer(hier Excel) natürlich weieder beenden.

Zitat:
dann brauch ich auch das Unit ExceXP oder ähnliches nicht aufnehmen, oder ?
Nein.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#13

Re: Fehler bei Excel.workbooks.Open (...)

  Alt 6. Aug 2008, 13:55
Hoppla, da hab ich nicht richtig aufgepasst (das kommt davon, wenn man Sourcecode ohne IDE eintippt).
Delphi-Quellcode:
uses ExcelXP;
...
var Excel : TExcelApplication;
WB : _WorkBook;
x, wbs : OleVariant;
...
wbs := Excel.Workbooks as IDispatch;
x := wbs.Open(strDokument);
Wenn du die Unit ExcelXP oder Excel97 nicht aufnimmst, dann bist du ja komplett bei der späten Bindung,
die zwar sehr flexibel aber auch langsam und nicht typsicher ist.
Für kleinere Aufgaben mit Excel geht das durchaus in Ordnung.
Bei grösseren Aufgaben ist es besser, wenn man nicht alles über OleVariant (und IDispatch-Schnittstellen) abwickelt.
  Mit Zitat antworten Zitat
Andreas Leix

Registriert seit: 28. Apr 2008
31 Beiträge
 
#14

Re: Fehler bei Excel.workbooks.Open (...)

  Alt 6. Aug 2008, 15:49
Ok,jetzt habe ich einiges verstanden.

Jetzt komm ich weiter.

Also euch allen nochmal vielen Dank!

Gruß
Andreas
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz