Mit TMenuItems booleans tooglen (viele)
-
Hi,
ich habe eine Art Editor indem ich einige ca. 20 verschiedene Modi habe.In meinem Hauptfenster habe ich ein Popupmenu das alle Modi auflistet.
bool Edit_Dies
bool Edit_Das
bool Edit_Jenes
...Meine Frage ist jetzt wie ich die Verbindung so hinkriege dass ich für den OnClick Event
TMenuItem->Checked = !bool;
bool = !bool;immer dieselbe Onclick Routine verwenden kann? Gibt es da Verfahren oder bin ich gewzungen eine Map<TMenuItem, bool> oder Map<TMenuItem->Caption (AnsiString), bool> anzulegen um dann zu wissen welcher boolsche wert betroffen ist?
Wie macht ihr sowas?
mfg & danke
-
Hallo,
Eine map<TMenuItem, bool> ist doch eine gute Idee. Eine weitere Variante wäre, die bools in ein Array zu packen und den Index in das Tag des dazugehörigen TMenuItems.
Dannkönnte man sowas machen.TMenuItem* item = dynamic_cast<TMenuItem>(Sender); if( item ) { if( item->Tag < boplarray.size()) item->Checked = !boplarray[item->Tag]; }
-
Jau danke, habe mir fast schon gedacht das es etwas so laufen wird.
Nur kommt diese Art Problematik relativ häufig vor, z.B: bei Listboxen etc. dass ich lieber mal nachfragen wollte ob es nicht einen weg geht z.B. soetwas zu veranstalten. Sozusagen den Fastcall überladenTObject->OnClick = MyUniversialFunktion(&ref_bool);
-
Du kannst natürlich zu OnClick auch eigene Funktionen zuweisen. Sie müssen nur die gleiche Signatur haben wie das Orginal.
void __fastcall TMyForm::MyClick(TObject *Sender)
-
Jau klar, bringt nur leider nix

dank dir