Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Edit feld und 2tes Formular (https://www.delphipraxis.net/32316-edit-feld-und-2tes-formular.html)

svern 21. Okt 2004 15:58


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]

fkerber 21. Okt 2004 16:01

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

tuxhol 21. Okt 2004 16:11

Re: Edit feld und 2tes Formular
 
Hi,

kann Dein Problem irgendwie nicht ganz verstehen, aber hilft Dir das vielleicht weiter? :gruebel:
Delphi-Quellcode:
edit2.SetFocus
Schließlich mußt Du Deiner Form2 beim Aufruf ja auch mitteilen, welche Komponente den Focus haben soll...

svern 21. Okt 2004 16:24

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.

Matze 21. Okt 2004 16:27

Re: Edit feld und 2tes Formular
 
Du könntest Edit2Exit auch manuell aufrufen:

Delphi-Quellcode:
Edit2Exit(Sender);

svern 21. Okt 2004 17:10

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?

fkerber 21. Okt 2004 17:13

Re: Edit feld und 2tes Formular
 
Hi!

willst du es unsichtbar?
Delphi-Quellcode:
Form2.Visible:=false;
oder nur im Hintergrund?
Da war glaube ich was mit Hier im Forum suchenSetWindowPos


Ciao Frederic

svern 21. Okt 2004 18:30

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....

tuxhol 22. Okt 2004 09:59

Re: Edit feld und 2tes Formular
 
Also, in der OH steht
Zitat:

Das Ereignis OnExit tritt nicht auf, wenn zwischen Formularen oder zwischen einer anderen Anwendung und dieser Anwendung umgeschaltet wird.
Damit hätte sich das mit dem OnExit wohl auch schon erledigt...
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:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Form2.Enabled := TRUE;
  Form2.Edit2.Text := Form1.Edit1.Text;
  Form2.Show;
  Form2.Edit2.SetFocus;
  Form1.enabled := FALSE;
end;
Der Code für Form2.Button2.Click:
Delphi-Quellcode:
procedure TForm2.Button2Click(Sender: TObject);
begin
  Form1.Enabled := TRUE;;
  Form1.Edit1.Text := Form2.Edit2.Text;
  Form1.Edit1.SetFocus;
  Form2.Enabled := FALSE;
end;
Hoffe, das hilft Dir weiter. Zumindest sollte es die Übergabe zwischen den beiden Formen verdeutlichen :wink:

svern 24. Okt 2004 12:02

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