Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Komponenten für Delphi 5


Dude566 - Sa 25.04.09 14:26
Titel: Komponenten für Delphi 5
Ich habe mein FTP Programm mit der TurboDelphi Version teils schon geschrieben, jetzt ist das Problem das unser Leherer Delphi 5 verwendet und wir in der Schule eigentlich auch.

Ich hab die Indy Komponente verwendet, eine ShellComboBox und ein ShellListView, wo bekomme ich diese Komponenten zum nachinstallieren für Delphi5 her?

Und wie installiere ich solche Komponenten nach?

Gruß Dude566


Bernhard Geyer - Sa 25.04.09 15:29

Indy solltest du auch für D5 im Netz finden. Die Kompos wird es nicht direkt für D5 geben sondern nur alternative wie z.B. von der JVCL (http://sourceforge.net/projects/jvcl)


Dude566 - Sa 25.04.09 16:03

Ich möchte mein Projekt gerne mit TurboDelphi fertig schreiben, wir sollen angeben wenn wir Fremdkomponenten verwenden.

Wenn er dann mit Delphi 5 das Projekt öffnet fehlen ihm ja z.B. ShellListView, die müsste ich ihm dann halt irgendwie als Link angeben.


Xentar - Sa 25.04.09 16:10

Bin mir nicht ganz sicher, aber die ShellListView gibt es doch in Delphi5 schon?

Edit: Grad nachgesehen, gibt es doch noch nicht. Tja, dann musst du wohl andere Komponenten verwenden (oder dein Lehrer ein neues Delphi..)


Dude566 - Sa 25.04.09 16:15

ListView ja, aber kein ShellListView.

Das ist eine Delphi 5 Standard Version, die wir von der Schule bekamen.
Dort fehlt wirklich viel finde ich.

Gibts da nicht vielleicht ein "Ultra" Paket in dem viele Komponenten dabei sind welches ich dann einfach installieren kann?

Oder was kann ich sonst noch machen?

Edit: Habe mir jetzt Indy10 von ftp://indy.fulgan.com/ZIP/indy10.zip heruntergeladen, weis aber nicht was ich jetzt damit machen muss. Es ist keine gescheite readme dabei, lediglich eine für ein IndyUnit Test.


haentschman - So 26.04.09 10:32

Hallo...

imho läuft mit D5 stabil Indy9. Ich meine damals gelesen zu haben, daß Indy10 für D5 nicht empfohlen wird.

:wave:


Dude566 - So 03.05.09 12:52

Gut, dann müsste mir nur noch einer sagen wie das Indy 9 bei Delphi5 Standard installieren kann.

Bitte is dringend.


jaenicke - So 03.05.09 13:01

Da musst du nichts installieren, am besten legst du das ins Verzeichnis deines Programms und bindest die verwendeten Dateien daraus in dein Projekt ein. Sonst müsstest du am Zielrechner noch etwas machen.


Dude566 - So 03.05.09 13:13

Wie meinst du das denn? Ich muss dem Lehrer ja nachher auch etwas zum installieren liefern wenn wir Fremdkomponenten verwenden.


jaenicke - So 03.05.09 13:15

Nein, eben nicht. Wenn du nur die eingebundenen (und von dir mitgelieferten) Units nutzt (wie in Turbo Delphi ohnehin), dann muss da auch nix installiert werden. ;-)


Dude566 - So 03.05.09 13:22

Gut, und welche wären das dann? Ich meine das ist dann ja nur idFTP, aber da gibts so viele Dateien.

Und wie kann ich die dann in mein Projekt einbinden?

Oder soll ich das ganze weiterhin in meinem anderen Delphi schreiben wo Indy dabei ist, und für den Lehrer dann vor der Abgabe die wichtigen Dateien dazupacken?


jaenicke - So 03.05.09 13:32

Am besten entfernst du den Pfad zu Indy in Turbo Delphi aus dem Bibliothekspfad und holst dir Indy 9. Das legst du dann in ein Unterverzeichnis deines Projektes.
Jetzt fügst du via Projekt --> Zum Projekt hinzufügen die benötigten Units aus dem Unterverzeichnis mit Indy 9 zu deinem Projekt hinzu bis beim Kompilieren keine mehr fehlen.

Das sollte dann auch unter Delphi 5 funktionieren, teste das aber ggf. lieber vorher. ;-)


Dude566 - So 03.05.09 13:43

Ich verzweifle hier, es will nicht klappen schon so viele Dateien und es klappt trotzdem nicht, ich kann dem Lehrer ja nicht ein Ordner mit 100 Dateien abgeben.

Ich programmiere das ganze jetzt nochmal von Anfang an mit Delphi5, sag mir dazu bitte einfach wie ich Indy9 oder Indy10 installieren kann. Hauptsache das es dann stabil läuft.

Edit: Habe es wie hier http://www.indyproject.org/Sockets/Docs/Indy10Installation.DE.aspx probiert, doch es kamen schon beim Compilieren lauter Hinweismeldungen, und dann beim Installieren Schritt stand dann es würden irgendwelche Pfade fehlen usw... :nixweiss: :bawling:


jaenicke - So 03.05.09 13:52

Es sollte reichen den Bibliothekspfad um die Ordner von Indy zu erweitern, das ist schon die ganze Installation, wenn die Komponenten manuell erzeugt werden wie bei Turbo Delphi.

So oder so musst du aber ja Indy 9 mitliefern, nur dass du dann am Zielrechner etwas ändern musst. :gruebel:


Dude566 - So 03.05.09 13:57

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Es sollte reichen den Bibliothekspfad um die Ordner von Indy zu erweitern, das ist schon die ganze Installation, wenn die Komponenten manuell erzeugt werden wie bei Turbo Delphi.


Jetzt vergessen wir mal Turbo Delphi ich will es nur mit Delphi5 schreiben, wie mach ich das genau?



user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:

So oder so musst du aber ja Indy 9 mitliefern, nur dass du dann am Zielrechner etwas ändern musst. :gruebel:


Ich soll dem Lehrer dann ja die Komponente mitliefern so das er es auch installieren muss.
Das mit dem ändern ist denke ich kein Problem, das wird der Lehrer ja schon machen.


jaenicke - So 03.05.09 14:17

Er muss es ja gar nicht installieren...

Entpacke einfach Indy 9 in einen Ordner indy9 im Projektverzeichnis. Jetzt setze in Projekt --> Optionen --> Verzeichnisse/Bedingungen den Suchpfad auf .\indy9, das wars.
Jetzt wird in deinem Projekt Indy 9 benutzt, egal was in der Delphiversion an Indy installiert ist, das habe ich gerade erfolgreich mit Turbo Delphi und Delphi 5 getestet.


Dude566 - So 03.05.09 14:19

Ja kann ich dann auch, weil ich das ja jetzt auch bei mir machen will, einfach so machen.

Sind dann die Komponenten auch in der Palette oben, oder muss ich dann alles einzeln bei uses im Sourcecode eintragen?

Edit: Vergiss jetzt bitte mal Turbo Delphi das wird mir sonst alles zu kompliziert hier.

Ich will das ganze jetzt nur noch mit Delphi5 machen, keine andere Delphi Version was muss ich Downloaden und was muss ich damit machen das ich es ganz normale Verwenden kann wie in Versionen wo es schon vorinstalliert dabei ist.


jaenicke - So 03.05.09 15:47

Diese Datei ist die richtige.
ftp://indy.fulgan.com/ZIP/indy9.zip
Dann noch unter Projekt --> Optionen --> Verzeichnisse/Bedingungen wie gesagt .\indy9 schreiben, wenn Indy 9 in diesem Pfad in deinem Projektverzeichnis liegt, fertig. Wenn du ein Projekt in Turbo Delphi anfängst, musst du diese Einstellung in Delphi 5 widerholen und die Unit Variants aus der uses löschen.

Alles zusammen siehst du in diesem Video, gedreht auf einem virtuellen PC mit frisch installierten Delphiversionen:
http://www.sj-berlin.de/service/df/indy9_d5/Indy9_D5_TDE.html
Dort sieht man an der Testausgabe der Version, dass in Turbo Delphi zunächst Indy 10 aktiv ist, und allein durch die Änderung des Suchpfades des Projekts die entsprechende Version verwendet wird.


Dude566 - So 03.05.09 16:22

Tausend Dank user profile iconjaenicke, auf dich ist Verlass.

Werde es gleich mal Testen, wenn das bei mir so klappen sollte wäre das die beste Lösung überhaupt.

Kann ich das mit dem Komponente beilegen vielleicht genauso mit dem ShellListView und ShellCombobox machen?

---Moderiert von user profile iconNarses: Beiträge zusammengefasst---

Also das ganze klappt schon, aber Delphi5 meckert trotzdem zu idFTP1 wäre keine Komponente vorhanden. In Delphi 7 lässt es sich allerdings starten.

Und wenn ich die Meldung dann ignoriere und das Projekt trotzdem starte, führt sich das Programm normal aus allerdings wenn ich dann Verbinden möchte, gibt es sofort eine Zugriffsverletzung an der Stelle wenn idFTP1 zum ersten mal verwendet wird.


jaenicke - So 03.05.09 16:52

Du musst die Komponenten auch manuell erzeugen wie ich es getan habe... (im Video) ;-)
(So muss man es in Turbo Delphi ohnehin.)


Dude566 - Mo 04.05.09 16:25

Also habe die Komponente jetzt zur Laufzeit erzeugt, unter Delphi7 gibts kein Fehler aber in Delphi5 schon.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
uses
  idFTP

private
  MyFTP : TIdFTP;

procedure TForm1.FormCreate(Sender: TObject);
begin
     MyFTP := TIdFTP.Create(Self);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
     with MyFTP do begin
          Username := Edit2.Text;
          Password := Edit3.Text;
          Host := Edit1.Text;
               try
                  Connect;
                  ShowMessage ('Verbindung erfolgreich hergestellt.');
                  MyFTP.List(ListBox1.Items);  // Hierbei kommt Connection Closed Gracefully, wenn ich es wegnehme kommt die Meldung nicht 
               except
                  ShowMessage ('Verbindung fehlgeschlagen.');
               end;
                   end;
end;


Edit: Uploaden klappt, warum klappt denn nur das Auflisten des aktuellen Verzeichnisses nicht?