Forum: Programmieren allgemein
by marabu,
29. Jan 2006
Warum muss denn dein Fenster noch aufgehen, wenn alles schon stimmt? Da ist die Sache doch schon wurmig. Und dass ShowMessage() funktioniert, wenn du die ButtonClick Routine rufst. Das beweist, dass diese Routine aus dem OnCreate ausgeführt wird. Auch der Zweig, in dem du ModalResult setzt, wird ausgeführt - er bleibt zu diesem Zeitpunkt nur ohne Wirkung, weil der Wert erst später initialisiert...
Forum: Programmieren allgemein
by marabu,
29. Jan 2006
Ich habe doch geschrieben - der Knopf wird nicht gedrückt, aber der Code wird ausgeführt. Was erwartest du denn? Dass die Form automatisch geschlossen wird? Bedenke, dass du das ModalResult im OnCreate setzt. Zu diesem Zeitpunkt ist das noch zu früh.
marabu
Forum: Programmieren allgemein
by marabu,
29. Jan 2006
Der Button wird durch deinen Code nicht gedrückt, nur die Routine ButtonClick() wird ausgeführt. Das sollte kein Problem bereiten. Wahrscheinlich hast du irgendwo deinen Code nicht aufgeräumt - nach den vielen Änderungen. Ich habe dein Problem nochmal nachgestellt, allerdings ohne deine Komponentennamen. Über Sinn und Unsinn deiner Vorgehensweise möchte ich mir besser keine Gedanken machen.
...
Forum: Programmieren allgemein
by marabu,
29. Jan 2006
Du verwendest TIniFile und hältst damit die Datei sehr wahrscheinlich offen. Nimm ini: TMemIniFile einfach zu deinen privaten Form-Variablen und im OnCreate schreibst du dann das:
begin
ini := TMemIniFile.Create(ExtractFilePath(ParamStr(0)) + 'test.ini');
Edit2.Text := ini.ReadString('Text', 'test', '');
Button1Click(Button1);
end;
Im OnDestroy der Form schreibst du dann...
Forum: Programmieren allgemein
by marabu,
29. Jan 2006
Das sollte ohne Probleme so funktionieren:
procedure TLoginForm.LoginButtonClick(Sender: TObject);
var
ini: TMemIniFile;
fn: TFileName;
begin
if PswdEdit.Text = PASSWORD then
begin
Forum: Programmieren allgemein
by marabu,
29. Jan 2006
Hast du auch den Code in Form2 angepasst?
procedure TForm2.Button1Click(Sender: TObject);
begin
if Edit1.Text = Password
then ModalResult := mrOK
else ShowMessage(Password);
end;
Forum: Programmieren allgemein
by marabu,
29. Jan 2006
Hast du schon den Projekt-Quelltext verglichen?
marabu
Forum: Programmieren allgemein
by marabu,
29. Jan 2006
Nicht aufgeben. Ich hoffe nur du erzeugst die Form2 nicht im OnCreate deiner MainForm.
marabu
Forum: Programmieren allgemein
by marabu,
29. Jan 2006
Im Anhang siehst du eine Möglichkeit eine Form vor der MainForm anzuzeigen - ohne Fehler und ohne vorzeitiges Beenden der Anwendung.
marabu
Forum: Programmieren allgemein
by marabu,
29. Jan 2006
Wenn du Form2 vor deiner MainForm anzeigen willst, dann erzeuge es mit Owner = NIL. Und schließe es mit einer Zuweisung an ModalResult.
marabu
Forum: Programmieren allgemein
by marabu,
29. Jan 2006
Wenn du Form2 schließen willst, dann mache es mit Form2.ModalResult := mrOK und nicht mit Form7.Release - oder habe ich deinen Code falsch verstanden?
Grüße vom marabu