Autor Beitrag
nostromo73
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Sa 12.04.03 16:00 
Jetzt mal eine grundsätzliche Frage zum Verteilen von Delphi-Anwendungen:

Ich möchte eine mit Delphi 7 Enterprise erstellte exe (nur VCL-Komponenten) verteilen.
Wie stelle ich fest, welche Dateien (dll's etc.) in eine entsprechende Setup-Routine (z.B. MSI oder Install Shield) aufgenommen werden müssen. Ich brauche also eine Liste der abhängigen dll's, die die exe zur Laufzeit verlangen könnte. Wenn ich diese Liste habe, kann ich dann einfach die auf meinem Rechner vorhandenen dll's in das Setup aufnehmen ? Oder gibt das Probleme mit der Versionierung der dll's auf dem Zielerechner ?

Hintergrund:
Ich habe meine ersten Delphi-Kenntnisse in ein DB-Projekt einfließen lassen und möchte nun mit einem Installer sicherstellen, dass die Anwendung auch auf einem anderen Windows-Rechner (98,ME,NT, XP) einwandfrei läuft. Da ich noch in der Entwicklungsphase bin, reicht zur Präsentation zunächst die Einschränkung auf eine XP-Home-Umgebung.

Infos zu meiner Anwendung:

    -keine CLX-Komponenten (zumindest so vorgesehen; komischerweise verlangt die exe aber die QT-Bibliothek qtintf70.dll, was ist da los ? Wie identifiziere ich ggf. die CLX-Komponenten ?)
    -Zugriff über ADO auf eine Access-MDB als Datencontainer (das sollte doch MDAC und MS Jet 4.0 erfordern, oder ?)
    -Verwendung von Rave Reports (die müssen bestimmt auch extra mitgeliefert werden)
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Sa 12.04.03 16:05 
Also, das einzige, was Du mitliefern musst, sind glaub ich irgendwelche DLLs für ADO, da weiß aber jmd anders bestimmt mehr

Zu CLX: Hast Du vll. noch irgendwelche Q-Units? in der uses-Klausel?

Zu den Raves: Wenn Du die ReportFile in die EXE kompilierst, musst Du gar nix mehr mitliefern, alles Nötige ist in der EXE mit drin.
nostromo73 Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Sa 12.04.03 18:23 
Update:
Inzwischen habe ich alle clx-Komponenten entfernt, in einem Modul wurde noch QDialogs referenziert. Jetzt habe ich also eine (reine ?)VCL-Anwendung. Erkennbar daran, dass sie auch läuft, obwohl die QT-Bibliothek (qtintf70.dll) vorher umbenant worden ist. Danke für den Hinweis !!

Zur ADO-Unterstützung:
Ich weiss leider immer noch nicht genau, welche dlls etc. für die ADO-Unterstützung auf dem Zielrechner benötigt werden.
Ich brauche an dieser Stelle die genauen Dateinamen, da ich nicht weiss, welche Dateien im einzelnen zu MDAC und Consorten gehören.
Ich möchte übrigens auch Access-propietäre Funktionen in den SQL-Abfragen an eine MDB benutzen. Das sollte doch auch ohne installiertes Access möglich sein, oder ?
Muss ich z.B. bei XP (Prof. und Home !) überhaupt etwas bezügl. ADO machen ? Ist das nicht schon integriert ?

Zu den Reports:
Ich habe inzwischen herausgefunden, wie man den Report mit in die EXE hinein compiliert.
Für alle, die das noch nicht wissen: Ist ganz simpel mit der Eigenschaft 'StoreRAV' des 'TRvProject'-Objects. Damit kann ein Report (rav-Datei) ausgewählt und somit in die exe integriert werden. Hätte ich auch selber finden können :-(
Nochmal danke für die Hilfe !
bis11
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1247
Erhaltene Danke: 2

Apple Mac OSX 10.11

BeitragVerfasst: Sa 12.04.03 19:15 
Für ADO-Unterstützung reicht es aus, wenn auf dem Rechner MDAC installiert ist. Diese MDAC - Komponenten sind ab Windows 2000 standardmäßig dabei, bei der Grundinstallation des Systems
nostromo73 Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Sa 12.04.03 20:56 
So, ich habe nun mit Hilfe des Tools 'Setup-Factory' eine Setup.exe gebastelt, die auch wunderbar auf dem Zielrechner durchläuft, alle Dateien landen da, wo sie landen sollen (dll's->Systemverzeichnis, Anwendung+Datenbank-file->gewähltes Programmverzeichnis).

Die Anwendung startet nach der Installation auf verschiedenen Zielrechnern aber nur minimiert (Eintrag in der Taskleiste vorhanden) und weigert sich beharrlich, sich vom Anwender maximieren zu lassen. Der zugehörige Prozess belegt wenig Speicher/CPU-Zeit, da ist also alles normal. Auch der ADO-Zugriff auf die mdb-Dateien ist aktiv (erkennbar an der temporären ldb-Datei).

Was kann das sein ?
nostromo73 Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Sa 12.04.03 23:33 
Update, die dritte:

Meine Anwendung läuft :lol: , die dlls habe ich inzwischen zusammen.

Wie ich inzwischen herausgefunden habe, wird das Parent-Fenster meiner Anwendung in einem nicht sichtbaren Bereich angezeigt. Die Zielrechner, die Probleme machen, haben alle NVidia-Grafikkarten, die Darstellung erfolgt auf einem anderen Desktop, das kann man manuell mit NView korrigieren.

Was kann ich nun tun, damit beim Starten der Anwendung immer der richtige/aktuelle Desktop, also der sichtbare Fensterbereich benutzt wird ?
nostromo73 Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: So 13.04.03 00:43 
Heureka !!

Die schönsten Antoworten im Forum sind immer noch die, die man sich selber geben kann :dance:

Die Position des Hauptformulars wird natürlich über die Eigenschaft "Position" bestimmt. Die war auf "poDesigned" eingestellt, so konnte der Benutzer wegen seiner kleineren Auflösung nix sehen. Ich hatte das Formular zur Entwurfszeit in die Ecke geschoben (Pixel-Position: ca. 1100,900). Bei 1024x768 erscheint das Formular dann im Nirvana...

poDesigned The form appears positioned on the screen and with the same height and width as it had at design time.

Vielen Dank für Eure Hilfe, jetzt kenne ich hoffentlich die wesentlichen Fallstricke bei der Verteilung meines Delphi-Murkscodes in alle Welt...