Einzelnen Beitrag anzeigen

michael.lehmann

Registriert seit: 7. Jun 2006
1 Beiträge
 
#3

Re: Rekursiven Eventaufruf verhindern

  Alt 12. Jun 2006, 09:51
ganz einfach:


ich gehe mal davon aus das du die checked-eigenschaft im onlick des controls änderst.
in ewta so:
Delphi-Quellcode:
...onclick(sender:TObject)
begin
 for i := 0 to ...
   blablabla
   checked[i] := true;

end;
dabei kommt es natürlich zu onlicks..

lösung:
du musst als erstes den onlick-event stilllegen, dann deinen code durchlaufen und dann wieder aktivieren:

Delphi-Quellcode:
...onclick(sender:TObject)
var
 oce : TNotifyEvent;
begin
  
 oce := (sender as TCheckBox).onlick; // merken
 (sender as TCheckBox).onlick := nil; // stilllegen

 try

  for i := 0 to ...
    blablabla
    checked[i] := true;

 finally
  (sender as TCheckBox).onlick := oce; // wieder aktivierern
 end;

end;
[edit=SirThornberry]Delphi-Tags ergänzt - Mfg, SirThornberry[/edit]
  Mit Zitat antworten Zitat