![]() |
Re: Anzeige der Nebenform vor der Hauptform
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.
Delphi-Quellcode:
marabu
unit SpecialFrm;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, IniFiles; type TSpecialForm = class(TForm) Button1: TButton; Edit1: TEdit; procedure Button1Click(Sender: TObject); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); private ini: TMemIniFile; public end; var SpecialForm: TSpecialForm; implementation {$R *.dfm} const Password = 'hallo'; procedure TSpecialForm.Button1Click(Sender: TObject); begin if Edit1.Text = Password then begin ini.WriteString('Abschnitt', 'Eintrag', Edit1.Text); ini.UpdateFile; ModalResult := mrOK; end else ShowMessage(Password); end; procedure TSpecialForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin if Edit1.Text = Password then ModalResult := mrOK else ModalResult := mrCancel; end; procedure TSpecialForm.FormCreate(Sender: TObject); var fn: TFileName; begin fn := ChangeFileExt(ParamStr(0), '.ini'); ini := TMemIniFile.Create(fn); Edit1.Text := ini.ReadString('Abschnitt', 'Eintrag', ''); Button1Click(nil); end; procedure TSpecialForm.FormDestroy(Sender: TObject); begin ini.Free; end; end. |
Re: Anzeige der Nebenform vor der Hauptform
habe gerade alles nochmal nachgeprüft und sogar gegen deinen Code ersetzt
Ergebnis der Knopf wird immer noch nicht gedürckt..ich muss immer selbst drücken :( wenn ich in Button1Click(Button1) oder Button1Click(nil) mache geht es einfach nicht |
Re: Anzeige der Nebenform vor der Hauptform
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 |
Re: Anzeige der Nebenform vor der Hauptform
achso das soll bedeuten, dass was ich vorhabe, dass das Fenster sich automatisch schließt wenn alles stimmt ist unmöglich ?? und es muss obe man will oder nicht der Knopf gedrückt werden ??
wenn ja dann ist ja das alles was ich mit deiner Hilfe erstellt habe ja vollkommen nutzlos :( außerdem verstehe ich das nicht...dass doch die Knopfprocedur ausgelöst wird wenn eben nichts in der ini steht..dann kommt die Meldung mit dem Fenster... wieso geht das dann nicht weiter wenn etwas drin steht ist doch das gleiche Prinzip und onCreat showmodal gesetzt und da geht es :wall: |
Re: Anzeige der Nebenform vor der Hauptform
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 und ausgewertet wird. Deine Form ist noch nicht modal zu diesem Zeitpunkt.
Vielleicht kannst du dich ja doch noch mit meinem Vorschlag aus der Demo anfreunden. marabu |
Re: Anzeige der Nebenform vor der Hauptform
hab es nun mit einem Timer hinbekommen NUR dieser löst den Knopf ja in einem bestimmten Intervall aus.. werde versuchen da irgendwas zu ändern sodass er gar nciht aktiviert wird, wenn das Editfeld leer ist.. aber das ist denke ich, wenn dann ein anderer Topic.
Vieln super herzlichen Dank für deine wirklich sehr gute Unterstützung Marabu!! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:19 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