Radiobutton Click Ereigniss kommt nicht

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
DL3AD
Beiträge: 478
Registriert: Fr 13. Sep 2013, 12:07
OS, Lazarus, FPC: Debian Bullseye (L 2.2.0)
CPU-Target: 64Bit
Wohnort: Rügen

Radiobutton Click Ereigniss kommt nicht

Beitrag von DL3AD »

Hallo,

folgender Beispielcode

Code: Alles auswählen

unit Unit1;
{$mode objfpc}{$H+}
interface
uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;
type
  { TForm1 }
  TForm1 = class(TForm)
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    RadioButton3: TRadioButton;
    procedure RadioButton1Click(Sender: TObject);
    procedure RadioButton2Click(Sender: TObject);
    procedure RadioButton3Click(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;
 
var
  Form1: TForm1;
  MemNr : integer = 0;
 
implementation
{$R *.lfm}
{ TForm1 }
 
//Soll bei jedem klick MemNr rundumzählen 1 2 3 1 2 3 ...
procedure TForm1.RadioButton1Click(Sender: TObject);
begin
  MemNr:= MemNr + 1;
   if MemNr > 3 then MemNr:= 1;
   ShowMessage(IntToStr(MemNr));
end;
 
//Hier MemNr nur 4
procedure TForm1.RadioButton2Click(Sender: TObject);
begin
   MemNr:= 4;
   ShowMessage(IntToStr(MemNr));
end;
 
//Hier MemNr nur 5
procedure TForm1.RadioButton3Click(Sender: TObject);
begin
  MemNr:= 5;
  ShowMessage(IntToStr(MemNr));
end;
 
end.
 
Ich habe hier drei Radiobutton - die bei OnClick ein Ereigniss feuern sollen.
Das Ereigniss kommt aber nur wenn der Button unchecked war - clicke ich ein weiteres mal auf den selben checked Button dann kommt kein Ereigniss.
Bei dem Ereigniss OnChange wäre dass ja logisch aber hier ist OnClick!
Ich möchte dass bei jedem Click auf den Radiobutton ein Ereigniss gefeuert wird - ist das dass OnClick falsch ?

Gruß Frank

Michl
Beiträge: 2511
Registriert: Di 19. Jun 2012, 12:54

Re: Radiobutton Click Ereigniss kommt nicht

Beitrag von Michl »

Könntest, falls Du wirklich jeden Mouseklick abfangen willst, einfach OnMouseDown benutzen...

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection;  

wp_xyz
Beiträge: 5153
Registriert: Fr 8. Apr 2011, 09:01

Re: Radiobutton Click Ereigniss kommt nicht

Beitrag von wp_xyz »

Ja, RadioButtons folgen da - wahrscheinlich wegen Delphi-Kompatibilität - einer etwas seltsamen "Logik"...
Warum nimmst du nicht OnMouseDown?

DL3AD
Beiträge: 478
Registriert: Fr 13. Sep 2013, 12:07
OS, Lazarus, FPC: Debian Bullseye (L 2.2.0)
CPU-Target: 64Bit
Wohnort: Rügen

Re: Radiobutton Click Ereigniss kommt nicht

Beitrag von DL3AD »

... ich danke euch - werde es mit OnMouseDown probieren.

Gruß Frank

Antworten