Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Komponente in Unit ohne Form (https://www.delphipraxis.net/119503-komponente-unit-ohne-form.html)

fortuneNext 27. Aug 2008 18:03


Komponente in Unit ohne Form
 
Hi (mal wieder...)

Ich stehe mal wieder vor einem scheinbar nahezu unlösbaren Problem.
Und zwar möchte ich eine Komponente (in meinem Fall ein Indy IdFTP) in eine Unit implementieren, die keine Form besitzt und auch nicht besitzen darf.
Bisher habe ich dazu gefunden:
http://www.delphidev.de/forum/viewtopic.php?pid=11756

Das Prinzip von Parent und Owner habe ich soweit verstanden. Was ich jetzt aber nicht verstanden habe:
Was kann ich denn jetzt eigentlich unter Create angeben?

Delphi-Quellcode:
type
   TFNAGBasicControl = class(TObject)
   private  
    DL_FTP: TIdFTP;
   public
    {}
   end;

procedure TFNAGBasicControl.DL_Connect;
begin
  FNAGBasicControl.DL_FTP.Create({WAS KOMMT HIER HIN?});
end;
Ich bekomme bei allem
Zitat:

(Fehler): Inkompatible Typen: 'TComponent' und 'Class reference'
Eine Form habe ich wie gesagt nicht, worauf ich auch zB die Komponente ziehen könnte. Ich muss das Ding also komplett von Hand erstellen und die ganzen Parameter angeben. Doch schon beim Create scheitert es... ich möchte auch nach Möglichkeit keinen Gebrauch von der Forms-Unit machen müssen.
Und: Da ich wahrscheinlich sowieso wieder alles falsch mach was geht, frag ich direkt:
Gibt es bei diesem Vorhaben irgendwelche häufigen dummen Fettnäpfchen in die ich treten könnte?

mfg
fortuneNext

DeddyH 27. Aug 2008 18:16

Re: Komponente in Unit ohne Form
 
Hast Du es mal mit nil versucht?

fortuneNext 27. Aug 2008 18:19

Re: Komponente in Unit ohne Form
 
Klar... AV schon beim Create :D

DeddyH 27. Aug 2008 18:21

Re: Komponente in Unit ohne Form
 
:oops: Hatte gar nicht den ganzen Source gelesen.
Delphi-Quellcode:
type
   TFNAGBasicControl = class(TObject)
   private  
    DL_FTP: TIdFTP;
   public
    {}
   end;

procedure TFNAGBasicControl.DL_Connect;
begin
  DL_FTP := TIdFTP.Create(nil);
end;
So müsste es klappen.

fortuneNext 28. Aug 2008 16:55

Re: Komponente in Unit ohne Form
 
Nicht... schonwieder...
Warum passiert mir das eigentlich immer? :(
Nil klappt aber so, danke!

Nun gut... diesmal ist es aber nicht der Fehler! :D

Und zwar habe ich nun alles implementiert mit der Komponente. Jetzt möchte ich vom FTP-Server ein IniFile auslesen. Dazu habe ich mit eine TIniFile Variable erstellt. Nun muss ich logischerweise den Pfad angeben, doch wie ist es richtig?
Delphi-Quellcode:
  InfoFile := TIniFile.Create('info.ini');
  InfoFile := TIniFile.Create(//absoluter pfad zum ftp);
  InfoFile := TIniFile.Create(DL_FTP.RetrieveCurrentDir + '/info.ini');
sind alle Fehlerhaft.
Ins richtige Verzeichnis habe ich schon ge changedired ... connected bin ich auch. Es gibt keine Fehlermeldung etc, aber beim anschließenden ReadInteger kommt immer der Defaultwert raus, also ist das File wohl nicht richtig erstellt.
Wie gebe ich den Pfad richtig an?
mfg

DeddyH 28. Aug 2008 16:57

Re: Komponente in Unit ohne Form
 
Du erstellst eine Ini und willst anschließend direkt daraus lesen? Wie soll das denn gehen? :gruebel:

[edit] Sry, wieder nur die Hälfte gelesen. Du wirst die Ini wohl erst herunterladen müssen. [/edit]

fortuneNext 30. Aug 2008 14:43

Re: Komponente in Unit ohne Form
 
Na gut... dann klappts. Optimal :) Danke!

(sorry für die kleine Verspätung, hatte viel zu tun ;))


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:03 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz