MainMenu mit Check Item Auswerteproblem

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

MainMenu mit Check Item Auswerteproblem

Beitrag von DL3AD »

Hallo,
habe im Form eine MainMenu gesetzt mit einem Item als CheckBox.
Die Checkbox kann ich durch Klick ein- und ausschalten.
Nun habe ich aber ein Problem mit der Auswertung der Checkung.
Habe dem Meniueitem ein Ckickereigniss verpasst und wollte nun die Auswertung testen.

Code: Alles auswählen

procedure TForm1.MenuItem1Click(Sender: TObject);
begin
  Memo1.Append(BoolToStr(MenuItem1.Checked,'ON','OFF'));
end;  
Je nach Vorbelegung wird im Memo immer das selbe angezeigt.
Die Checkung im Menueitem ändert sich optisch aber ordnungsgemäß.

Was mache ich falsch ?

Frank

Benutzeravatar
Garfield
Beiträge: 172
Registriert: Do 5. Jun 2008, 22:07
OS, Lazarus, FPC: Ubuntu 22.04 LTS (Laz 3.0 FPC3.2.2)
CPU-Target: 64Bit
Wohnort: Aken

Re: MainMenu mit Check Item Auswerteproblem

Beitrag von Garfield »

Das scheint kein Problem mit der Auswertung von "MenuItem1.Checked" zu sein. Denn der Wert ändert sich nicht. :shock:

Interessanterweise wird bei mir die Checkbox nur angezeigt, wenn MenuItem1.Checked beim Erstellen des Form auf True gesetzt ist.
Gruß Garfield

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

Re: MainMenu mit Check Item Auswerteproblem

Beitrag von wp_xyz »

Funktioniert bei mir einwandfrei (Windows 11; auf Linux/gtk2/gtk3/qt5 funktioniert es auch...).
Garfield hat geschrieben:
Fr 23. Feb 2024, 17:21
der Wert ändert sich nicht.
Das passiert, wenn das AutoCheck des MenuItems auf seinem Standardwert, false, steht und du alternativ keinen Code geschrieben hast, das Checked umzuschalten. Am einfachsten: MenuItem.Autocheck := true
Dateianhänge
menu_checked.zip
(1.96 KiB) 47-mal heruntergeladen

Benutzeravatar
Garfield
Beiträge: 172
Registriert: Do 5. Jun 2008, 22:07
OS, Lazarus, FPC: Ubuntu 22.04 LTS (Laz 3.0 FPC3.2.2)
CPU-Target: 64Bit
Wohnort: Aken

Re: MainMenu mit Check Item Auswerteproblem

Beitrag von Garfield »

Code: Alles auswählen

procedure TForm1.MenuItem1Click(Sender: TObject);
begin
  Memo1.Append(BoolToStr(MenuItem1.Checked,'ON','OFF'));
end;  

Code: Alles auswählen

procedure TForm1.MenuItem2Click(Sender: TObject);
begin
  if MenuItem2.Checked then
    Memo1.Lines.Add('ON')
  else
    Memo1.Lines.Add('OFF');
end;
MenuItem1 und MenuItem2 ist irgendwie nicht das selbe. Könnte aber die Lösung sein.
Gruß Garfield

Antworten