Einzelnen Beitrag anzeigen

Progman

Registriert seit: 31. Aug 2007
Ort: 99974 MHL
695 Beiträge
 
Delphi 10.1 Berlin Starter
 
#12

Re: TCheckBox.Checked löst OnClick aus?

  Alt 3. Jan 2010, 19:49
Es ist in der Tat so. Auch der folgende Code löst einen Beep aus:
Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
begin
  if CheckBox1.State = cbChecked then CheckBox1.State := cbUnChecked
   else CheckBox1.State := cbChecked;
end;

procedure TForm2.CheckBox1Click(Sender: TObject);
begin
  Beep;
end;
Ich glaube, wenn man trotzdem das OnClick der CheckBox nutzen will, muss man das mit eine Hilfs-Status-Variablen regeln:
Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
begin
  if CheckBox1.State = cbChecked then begin
    CanClick := False; // Hilfsvariable
    CheckBox1.State := cbUnChecked;
  end else begin
    CanClick := False;
    CheckBox1.State := cbChecked;
  end;
end;

procedure TForm2.CheckBox1Click(Sender: TObject);
begin
  if CanClick then begin
    Beep;
  end else CanClick := True;
end;
Dann funktioniert es
Karl-Heinz
Populanten von Domizilen mit fragiler, transparenter Aussenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
(Wer im Glashaus sitzt sollte nicht mit Steinen werfen)
  Mit Zitat antworten Zitat