Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Anweisung wird nicht ausgeführt (SetFocus) (https://www.delphipraxis.net/118567-anweisung-wird-nicht-ausgefuehrt-setfocus.html)

gfjs 10. Aug 2008 14:23


Anweisung wird nicht ausgeführt (SetFocus)
 
hallo @all.

Delphi-Quellcode:
procedure TF_DlgSetUp.BtnInsertClick(Sender: TObject);
begin
  InsertName;
end;

procedure TF_DlgSetUp.EdProgNameKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = VK_RETURN then InsertName;
  EdProgName.SetFocus;
  Application.ProcessMessages;
end;

procedure InsertName;
begin
  if (Trim(F_DlgSetUp.EdProgName.Text) <> '') and
     (Trim(F_DlgSetUp.EdProgName.Text) <> F_DlgSetUp.EdString)
    then F_DlgSetUp.LBoxDlg.Items.Insert
         (F_DlgSetUp.LBoxDlg.Items.Count,F_DlgSetUp.EdProgName.Text);
    F_DlgSetUp.EdProgName.Text := F_DlgSetUp.EdString;
ShowMessage('1'); //XXXXXXXXXXXXXXXXXXX
    F_DlgSetUp.EdProgName.SetFocus;
ShowMessage('2'); //XXXXXXXXXXXXXXXXXXX
end;
Die Prozedur "InsertName" wird zweimal aufgerufen. Beim Aufruf aus BtnInsertClick wird "EdProgName.SetFocus;" durchgeführt, beim Aufruf aus "EdProgNameKeyDown" jedoch nicht. In beiden Fällen wird jedoch sowohl ShowMessage('1') als auch ShowMessage('2') aufgerufen.

Wer kann helfen? - Vielen Dank im Voraus.

Gruß Jürgen

SirThornberry 10. Aug 2008 14:26

Re: Anweisung wird nicht ausgeführt (SetFocus)
 
woher weißt du das es nicht ausgeführt wird? Ist das eine Vermutung oder hast du einen Haltepunkt gesetzt welcher nicht angesprungen wirdß

FAlter 10. Aug 2008 14:36

Re: Anweisung wird nicht ausgeführt (SetFocus)
 
Hi,

was soll denn bitteschön bei SetFocus herausragendes passieren, wenn dein Edit bereits den Fokus hat? So sieht das für mich jedenfalls aus.

Eventuell meinst du ja was anderes.

:glaskugel: Hmm, vielleicht meinst du Delphi-Referenz durchsuchenSelectAll?

Mfg
FAlter

[edit] Die Glas(s)kugel war kaputt. Kommt bestimmt vom Aero. [/edit]

gfjs 10. Aug 2008 14:42

Re: Anweisung wird nicht ausgeführt (SetFocus)
 
Sorry! Da hab ich doch tatsächlich übersehen, dass der Cursor auf Pos1 des Edit war - ich habe mich total auf die erwartete Hervorhebung konzentriert, die im zweiten Fall ausblieb. Ist mir jetzt auch klar, da das Edit den Focus ja gar nicht verloren hatte.

Das hab jetzt vorerst mal dadurch umgangen, dass ich den Focus erst auf den Button und dann auf das Edit gesetzt habe. Ich vermute aber, dass das nicht die eleganteste Lösung ist?!

Vielen Dank für die Hilfe.

Gruß Jürgen

FAlter 10. Aug 2008 14:47

Re: Anweisung wird nicht ausgeführt (SetFocus)
 
Hi,

Zitat:

Zitat von gfjs
Sorry! Da hab ich doch tatsächlich übersehen, dass der Cursor auf Pos1 des Edit war - ich habe mich total auf die erwartete Hervorhebung konzentriert, die im zweiten Fall ausblieb.

Zitat:

Zitat von FAlter
:glaskugel: Hmm, vielleicht meinst du Delphi-Referenz durchsuchenSelectAll?

Ich glaube meine Glaskugel hatte recht.

Mfg
FAlter


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:56 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz