![]() |
Zugriff auf das andere Formular nicht möglich - warum?
Hi,
ich habe folgendes:
Delphi-Quellcode:
so, das Ganze steckt in einer FormCreate(Sender: TObject); - Prozedur. Allerdings wenn ich das Programm starte, gibt es eine Zugriffsverlezung. Was mache ich hier falsch?
Chatfenster.StatusBar1.Items[1].Text := Einstellungen.Edit1.Text; // oder so ähnlich
THX im Voraus Dima |
Re: Zugriff auf das andere Formular nicht möglich - warum?
wenn du in die projectdatei schaust wirst du sehen das erst dein mainform erzeugt wird und anschließend erst das chatfenster (meine Vermutung). Wenn du jetzt in deinem onCreate auf das Chatfenster zugreifst kommt die AV weil das Chatfenster zu dem Zeitpunkt noch nicht existiert.
|
Re: Zugriff auf das andere Formular nicht möglich - warum?
ok, und was soll ich dann machen? im allerletzten fester alles laden?
gruß, dima |
Re: Zugriff auf das andere Formular nicht möglich - warum?
Hi DymonD :hi:
Erstell doch entweder die Fenster in einer anderen Reihenfolge oder erstelle alle gleich am anfang und verberge die ungenutzten, bis du sie brauchst :-) |
Re: Zugriff auf das andere Formular nicht möglich - warum?
Hi!
Verlagere es von FormCreate in FormShow, dann sollte das gehen, da alle Forms dann erzeugt sind. Ciao Frederic |
Re: Zugriff auf das andere Formular nicht möglich - warum?
Hi Julian,
Zitat:
Zitat:
Gruß, Dima |
Re: Zugriff auf das andere Formular nicht möglich - warum?
Hi!
Warum brauchst du Sachen, die angezeigt werden (also erst beim Show sichtbar sind) im Create? Ciao Frederic |
Re: Zugriff auf das andere Formular nicht möglich - warum?
Hi fkerber,
Zitat:
Ansonsten habe ich zwei Proteduren, und das brauche ich auch nicht... Gruß, Dima |
Re: Zugriff auf das andere Formular nicht möglich - warum?
Hi!
Ich sehe keine Möglichkeit, wie du etwas aus einem Edit auslesen kannst, das auf einem Form ist, dass es noch nicht gibt. Was steht denn in dem Edit drin und wo kommt es her? Ciao Frederic |
Re: Zugriff auf das andere Formular nicht möglich - warum?
Also das stimmt schon, ich kann in eine Form nicht schreiben, die noch nicht existiert. Hier der Ausschnitt:
Delphi-Quellcode:
Also ich denke, es wäre wirklich eine bessere Idee, eine 'blinde Form' zu konstruieren und sie dann ans Ende zu setzen. Dann habe ich die Garantie, dass wenn sie erzeugt ist, dass dann auch alle anderen Forms erzeugt sind.
// [...]
// Form Main, Prozedur FormCreate Einstellungen.Edit1.Text := ini.ReadString('Main', 'Nickname', ''); Chatfenster.StatusBar1.Items[1].Text := Einstellungen.Edit1.Text; // [...] Ach und: ich glaube, ich muss manchmal einfach logisch nachdenken :lol: Gruß, Dima |
Re: Zugriff auf das andere Formular nicht möglich - warum?
Hi DymonD,
eine weitere Möglichkeit ist es, den Code der dpr-Datei zu manipulieren und dort alles zu setzen. Normalerweise sieht der Code ja so aus:
Delphi-Quellcode:
Du könntest nun den Code vor das Application.Run schreiben:
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2); //evtl. mehr Application.Run;
Delphi-Quellcode:
Beachte aber, dass du dann in der dpr-Datei die unit IniFiles hinzufügen und auch noch alles initialisieren musst.
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2); //evtl. mehr Form1.Edit1.Text := ini.ReadString('Main', 'Nickname', ''); Form2.StatusBar1.Items[1].Text := Einstellungen.Edit1.Text; Application.Run; Greetz alcaeus |
Re: Zugriff auf das andere Formular nicht möglich - warum?
Hi,
ja, so kann ich das auch machen.. dann weiß ich immer, wo meine Einstellungen sind :lol: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:22 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