Delphi-PRAXiS
Seite 2 von 2     12   

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/)
-   -   Delphi Timingproblem mit OnChange und OnExit (https://www.delphipraxis.net/145893-timingproblem-mit-onchange-und-onexit.html)

RWarnecke 11. Jan 2010 19:31

Re: Timingproblem mit OnChange und OnExit
 
Hallo Himitsu, hallo David,

es hat jetzt geklappt. Wenn die IF-Abfrage von OnChange nach OnChanging verlagert wird, funktioniert es.
Delphi-Quellcode:
procedure TForm1.TreeView1Changing(Sender: TObject;
  Node: TTreeNode; var AllowChange: Boolean);
begin
  if ActiveControl <> Sender then
  begin
    AllowChange := False;
    ActiveControl := TWinControl(Sender);
  end;
  AllowChange := True;
end;

himitsu 11. Jan 2010 19:35

Re: Timingproblem mit OnChange und OnExit
 
Zitat:

Delphi-Quellcode:
procedure TForm1.TreeView1Changing(Sender: TObject;
  Node: TTreeNode; var AllowChange: Boolean);
begin
  if ActiveControl <> Sender then
  begin
    AllowChange := False;
    ActiveControl := TWinControl(Sender);
  end;
  AllowChange := True;
end;

du meinst wohl
Delphi-Quellcode:
if ActiveControl <> Sender then
begin
  AllowChange := False;
  ActiveControl := TWinControl(Sender);
  Exit;
end;
AllowChange := True;
oder
Delphi-Quellcode:
if ActiveControl <> Sender then
begin
  ActiveControl := TWinControl(Sender);
  AllowChange := False;
end else
  AllowChange := True;
aber da es läuft, sollte es so auch ausreichen :)
Delphi-Quellcode:
if ActiveControl <> Sender then
  ActiveControl := TWinControl(Sender);
AllowChange := True;

RWarnecke 11. Jan 2010 19:53

Re: Timingproblem mit OnChange und OnExit
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von himitsu
du meinst wohl
Delphi-Quellcode:
if ActiveControl <> Sender then
begin
  AllowChange := False;
  ActiveControl := TWinControl(Sender);
  Exit;
end;
AllowChange := True;

Wenn die IF-Abfrage zutrifft bricht er das Ereignis ab. Alles was nach der IF-Abfrage kommt, wird nichtmehr beachtet. Habe mal mein komplettes Testprogram drangehängt.

Edit:
Zitat:

Zitat von himitsu
aber da es läuft, sollte es so auch ausreichen :)
Delphi-Quellcode:
if ActiveControl &lt;&gt; Sender then
  ActiveControl := TWinControl(Sender);
AllowChange := True;

Das müsste doch eher so heißen, da AllowChange beim Aufruf des Ereignisses immer True ist :
Delphi-Quellcode:
if ActiveControl <> Sender then
begin
  AllowChange := False;
  ActiveControl := TWinControl(Sender);
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:57 Uhr.
Seite 2 von 2     12   

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