Thema: Delphi Problem mit OpenDialog

Einzelnen Beitrag anzeigen

David Martens

Registriert seit: 29. Sep 2003
205 Beiträge
 
Delphi XE Enterprise
 
#27

AW: Problem mit OpenDialog

  Alt 15. Jun 2010, 18:09
@maddin1502:
1.
um auf Post #19 zurückzukommen:
Zitat:
Ich nutze es immer so, weil nun mal der Opendialog auf Form1 liegt
...
(heißt ja nun auch nicht TForm1.oeffnen)...
Der Opendialog liegt nicht auf Form1, sondern gehört zum Objekt TForm1. Jedesmal wenn du eine Instanz von TForm1 erzeugst d.h. den Speicher für das Objekt bereitstellst und und und,
Das machst du mit:
Application.CreateForm(TForm1, Form1); dann wird in dieser Instanz auch ein neuer Opendialog erzeugt. Das ist ja gerade der Witz an OOP.

Dein erstens Posting kann nicht funktionieren weil:
form1.OpenDialog1.Execute heist: du willst den OpenDialog1 aus der Variable form1 ausführen. In der Deklaration ist der OpenDialog1 aber privat:
Delphi-Quellcode:
  TForm1 = class(TForm)
    ...
    OpenDialog1: TOpenDialog;
    ...
Daher kein Zugriff. Ist ja auch so gewollt.

2. zu #26:
Das ist nun wirklich ein neuer Thread, aber um die Frage zu beantworten.
Nein, du kannst kein Objekt zerstören und dann aus dem zerstörten Objekt heraus sichselber wieder aufmachen. Denk' mal drüber nach!!! Das einzig was du machen kannst, was aber noch unsauberer ist, du kannst ein Objekt erzeugen, dann dein MainForm schließen und es dann von dem Objekt wieder öffnen lassen. ABER:
Du solltes immer eine Inizialisierungsmethode schreiben die alles wohldefiniert anfangen lässt.

Gruß David
  Mit Zitat antworten Zitat