OnClick bei Menu-RadioButtons doppelt

Für allgemeine Fragen zur Programmierung, welche nicht! direkt mit Lazarus zu tun haben.
wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: OnClick bei Menu-RadioButtons doppelt

Beitrag von wp_xyz »

Hier eine Variante ohne AutoCheck, und es ist zu Beginn kein Item gecheckt. Damit sehe ich unter Ubuntu/gtk2 tatsächlich ein seltsames Verhalten: Wenn das Menü zu Beginn herunterklappt, ist der erste Eintrag (MenuItem2) angewählt, obwohl es im Formular nicht so festgelegt ist. Und wenn ich dann einen anderen Item auswähle, erscheint der entsprechende Click-Eintrag im Memo tasächlich zweimal. Aber nur beim diesem Mal: wenn ich danach nochmals einen anderen Item auswählte, kommt des Event wieder nur 1x.
Dateianhänge
39674 - menu radiobtn onclick-no autocheck.zip
(1.98 KiB) 59-mal heruntergeladen

Sieben
Beiträge: 202
Registriert: Mo 24. Aug 2020, 14:16
OS, Lazarus, FPC: Ubuntu Xenial 32, Lazarus 2.2.0, FPC 3.2.2
CPU-Target: i386

Re: OnClick bei Menu-RadioButtons doppelt

Beitrag von Sieben »

theo hat geschrieben:
So 13. Mär 2022, 21:34
Stimmt, wp hat aber bei allen den non-standard "Autocheck" und für MenuItem2 "Checked" gesetzt.
Habe ich jetzt mal alles zurückgesetzt und

Code: Alles auswählen

(Sender as TMenuItem).Checked := True;     
im OnClick-Handler eingefügt -> keine Doppler, beim ersten Aufruf ist dennoch MenuItem2 gecheckt. Dann auch die obige Zeile wieder entfernt -> wieder keine Doppler, und trotzdem ist auch das zuletzt geclickte Item beim nächsten Aufruf gecheckt 'als ob'.

Edit: letztes Szenario nach dem letzten Beitrag von wp noch mal laufen lassen, und immer noch keine Doppler. Dafür aber ein teilweise inkonsistentes Verhalten bezüglich des zuletzt geclickten Items. Manchmal gecheckt, manchmal nicht.

Edit2: @wp - beim zweiten Testprojekt sind bei mir sowohl alle Autochecks als auch MenuItem2.Checked=True aber immer noch drin...?

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

Re: OnClick bei Menu-RadioButtons doppelt

Beitrag von wp_xyz »

Sieben hat geschrieben:
So 13. Mär 2022, 22:36
Edit2: @wp - beim zweiten Testprojekt sind bei mir sowohl alle Autochecks als auch MenuItem2.Checked=True aber immer noch drin...?
Hast du wirklich das zweite Projekt? Ich hab's gerade extra aus dem Beitrag heruntergeladen - das ist kein AutoCheck und kein MenuItem2.Checked:

Code: Alles auswählen

  object MainMenu1: TMainMenu
    Left = 25
    Top = 12
    object MenuItem1: TMenuItem
      Caption = 'MenuItem1'
      object MenuItem2: TMenuItem
        Caption = 'MenuItem2'
        GroupIndex = 1
        RadioItem = True
        OnClick = MenuItemClickHandler
      end
      object MenuItem3: TMenuItem
        Caption = 'MenuItem3'
        GroupIndex = 1
        RadioItem = True
        OnClick = MenuItemClickHandler
      end
      object MenuItem4: TMenuItem
        Caption = 'MenuItem4'
        GroupIndex = 1
        RadioItem = True
        OnClick = MenuItemClickHandler
      end
      object MenuItem5: TMenuItem
        Caption = 'MenuItem5'
        GroupIndex = 1
        RadioItem = True
        OnClick = MenuItemClickHandler
      end
      object MenuItem6: TMenuItem
        Caption = 'MenuItem6'
        GroupIndex = 1
        RadioItem = True
        OnClick = MenuItemClickHandler
      end
    end

Sieben
Beiträge: 202
Registriert: Mo 24. Aug 2020, 14:16
OS, Lazarus, FPC: Ubuntu Xenial 32, Lazarus 2.2.0, FPC 3.2.2
CPU-Target: i386

Re: OnClick bei Menu-RadioButtons doppelt

Beitrag von Sieben »

Du hast recht - ich muss beim Auspacken das falsche Archiv erwischt haben. Das Verhalten ist aber dasselbe wie im vorigen Beitrag beschrieben - keine Doppler, aber ein inkonsistentes Verhalten, was MenuItem.Checked betrifft.

Antworten