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/)
-   -   Delphi [solved]RadioButton checked setzen, ohne onclick auszulösen (https://www.delphipraxis.net/111887-%5Bsolved%5Dradiobutton-checked-setzen-ohne-onclick-auszuloesen.html)

cltom 11. Apr 2008 08:46


[solved]RadioButton checked setzen, ohne onclick auszulösen
 
Hej,

beim Einlesen von Optionen soll ein Radio-Button gesetzt werden, ohne das zugehörige onlclick event auszulösen. Mit onmouseup wird zwar das event nicht ausgelöst, aber es gibt dann doch Probleme beim regulären Anklicken des Radio-Buttons (etwa, dass das event auch ausgelöst wird, wenn der radiobutton bereits aktiv ist, das könnte man wieder abfangen, aber naja), ist also nicht ideal. Gibts was eleganteres?

dank und gruß
tom

Luckie 11. Apr 2008 08:57

Re: RadioButton checked setzen, ohne onclick auszulösen
 
Setze vorher die Ereignisprozedur auf nil und danach weißt du die wieder zu.

Sharky 11. Apr 2008 08:58

Re: RadioButton checked setzen, ohne onclick auszulösen
 
Zitat:

Zitat von cltom
Hej,

beim Einlesen von Optionen soll ein Radio-Button gesetzt werden, ohne das zugehörige onlclick event auszulösen. ...

Hai Tom,

Du musst:

a) dir das Original OnClick merken
b) das OnClick auf NIL setzen
c) Deinen Code ausfühen
d) dem OnClick das "gemerkte" wieder zuweisen.

Delphi-Quellcode:
var
  OldEvent: TNotifyEvent;
begin
  OldEvent := myRadioButton.OnClick;
  myRadioButton.OnClick := NIL;
  myRadioButton.Checked := blubb;
  myRadioButton.OnClick := OldEvent;
end;

cltom 11. Apr 2008 09:06

Re: RadioButton checked setzen, ohne onclick auszulösen
 
Hej Sharkie und Lucky,

jop, das ist schön so, danke Euch!!!

gruß
tom


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:29 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