![]() |
Edit feld und 2tes Formular
Hey,
wenn ich in meinem Editfeld 1 eine (korrekte) Eingabe mache, dann soll das Programm ein weiteres Formular öffnen und anschließend wieder in Editfeld 2 zurückkehren. Macht das Programm.... so halbwegs jedenfalls. Es öffnet das 2te Formular, und springt dann auch ins 2te Editfeld, aber ohne dieses zu Markieren (wie sonst auch mit Tab). Stattdessen ist der Cursor zwar drin, aber irgendwie checkt es das Programm nicht. Denn wenn ich dann ne Funktion unter Edit2.exit aufrufe macht es überhaupt nichts. Woran liegt das? Ist mit Sicherheit ein einfaches Problem... Der Quelltext zu Edit1.exit:
Delphi-Quellcode:
ANZ_KN:=strtoint(Edit1.Text);
if (ANZ_KN < 2) or (ANZ_KN > 10 ) then showmessage('Wert nicht erwartet!') else begin Form2.Show; // Hier gehts in das 2te Formular Form2.FormShow(Sender); KN_ANZ_W := False; end; Form1.show; // das bringt er auch wieder in Vordergrund, Edit2.Color:=clInactiveCaptionText; // aber ohne das Edit2Feld zu markieren Edit1.Color:=clWindow; Form1.show; Hoffe auf eure Hilfe, Svern [edit=MrSpock]Code Tags eingefügt. Mfg, MrSpock[/edit] |
Re: Edit feld und 2tes Formular
Hi!
Zuerst einmal: Bitte setze deinen Quellcode in [.Delphi] [./Delphi] (ohne Punkte). Dann ist es leichter zu lesen. Ciao Frederic |
Re: Edit feld und 2tes Formular
Hi,
kann Dein Problem irgendwie nicht ganz verstehen, aber hilft Dir das vielleicht weiter? :gruebel:
Delphi-Quellcode:
Schließlich mußt Du Deiner Form2 beim Aufruf ja auch mitteilen, welche Komponente den Focus haben soll...
edit2.SetFocus
|
Re: Edit feld und 2tes Formular
Hey, habe das mit dem Setfocus ausprobiert:
form1.edit1.setfocus //Editfeld ist ja in Formular 1 Aber es geht immer noch nicht.
Delphi-Quellcode:
procedure TForm1.Edit1Exit(Sender: TObject);
begin ANZ_KN:=strtoint(Edit1.Text); if (ANZ_KN < 2) or (ANZ_KN > 10 ) then showmessage('Wert nicht erwartet!') else begin Form2.Show; Form2.FormShow(Sender); KN_ANZ_W := False; end; //Form1.show; Edit2.Color:=clInactiveCaptionText; Edit1.Color:=clWindow; //Form1.show; Form1.Edit2.setfocus; end; procedure TForm1.Edit2Exit(Sender: TObject); begin ANZ_KA_KN[1]:=strtoint(Edit2.text); // Kanten von Knoten 1 Edit2.Color:=clWindow; end; Edit2Exit (Edit2 in der Tabulatorreihenfolge als nächstes dran) wird nicht beim Verlassen von Edit2 aufgerufen.... Hätte auch gedacht, dass das mit dem Focus klappen könnte... aber leider ist nichts passiert. |
Re: Edit feld und 2tes Formular
Du könntest Edit2Exit auch manuell aufrufen:
Delphi-Quellcode:
Edit2Exit(Sender);
|
Re: Edit feld und 2tes Formular
Naja, das ist es auch noch nicht was ich brauche.
Das Ding ist ja, dass ich das 2te Formular aktiv mache (durch form2.show), und wenn ich es schließe, dann geht der cursor automatisch auf das 2te Editfeld, genau so wie ich es will. Ich will nun aber, dass das 2te Formular geöffnet bleibt, aber halt nur im Hintergrund, also passiv bleibt. Wie kann ich das machen? |
Re: Edit feld und 2tes Formular
Hi!
willst du es unsichtbar?
Delphi-Quellcode:
oder nur im Hintergrund?
Form2.Visible:=false;
Da war glaube ich was mit ![]() Ciao Frederic |
Re: Edit feld und 2tes Formular
Hey,
visible war nicht das, was ich mir vorgestellt hatte. Und das setwindowpos ist für mich als Anfänger noch ein wenig zu komplex ;-( Ich befürchte schon, dass mir nicht zu helfen ist... dabei ist das doch eigentlich sooo simple und unlogisch.... |
Re: Edit feld und 2tes Formular
Also, in der OH steht
Zitat:
Anderer Weg: Du hast eine Form1 mit den Komponenten Edit1 und Button1 Du hast eine Form2 mit den Komponenten Edit2 und Button2 Durch Drücken von Form1.Button1 wird der Inhalt von Form1.Edit1 in Form2.Edit2 übergeben. Form1 wird disabled, Form2 enabled. Und andersrum: Durch Drücken von Form2.Button2 wird der Inhalt von Form2.Edit2 in Form1.Edit1 übergeben. Form2 wird disabled, Form1 enabled. Voraussetzung dafür ist, daß die beiden Units sich jeweils im USES-Teil referenzieren. Der Code für Form1.Button1.Click:
Delphi-Quellcode:
Der Code für Form2.Button2.Click:
procedure TForm1.Button1Click(Sender: TObject);
begin Form2.Enabled := TRUE; Form2.Edit2.Text := Form1.Edit1.Text; Form2.Show; Form2.Edit2.SetFocus; Form1.enabled := FALSE; end;
Delphi-Quellcode:
Hoffe, das hilft Dir weiter. Zumindest sollte es die Übergabe zwischen den beiden Formen verdeutlichen :wink:
procedure TForm2.Button2Click(Sender: TObject);
begin Form1.Enabled := TRUE;; Form1.Edit1.Text := Form2.Edit2.Text; Form1.Edit1.SetFocus; Form2.Enabled := FALSE; end; |
Re: Edit feld und 2tes Formular
Hey,
danke für den Tipp Tuxhol. Gerade das mit dem OH hätte ich wohl selbst besser beachten sollen. Thx |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:44 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-2025 by Thomas Breitkreuz