Ich habe eine Treestruktur mit vom Programm angebotenen Aktionen wie z.B. verschiedene Ansichten, Konstruktionsbefehle usw. Diese Aktionen haben eine Bezeichnung und optional eine Shortcut Property.
Da der Anwender die Oberfläche weitgehend selbst gestalten kann, kann er z.B. Pushbuttons verwenden (TButton) und denen Bilder zuweisen usw.
Ausserdem kann er aus der Treestruktur die Aktion auswählen, die beim anklicken des Buttons ausgelöst wird.
In dem Buttoneditor habe ich ein twidgetgrid mit ttreeitemedit (Für die Darstellung der Gruppenstruktur und die Namen der Aktion sowie ein tstringedit in dem der aktuell zugeordnete Shortcut angezeigt werden soll.
Dazu habe ich zwei Fragen
1. Die Funktionen EncodeShortCutName und GetShortCutName aus mseactions.pas liefern eine Darstellung in der Form $006F. Ich hätte aber gerne "Strg+O" oder sowas in der Art.
2. Gibt es eine Komponente in msegui die wie der tstringedit funktioniert aber zusätzlich so einen kleinen "..." Button hat, mit dem ein anwendungsspezifischer Event ausgelöst wird (In meinem Fall sowas wie ein "Taste fangen" Dialog?
ttreelistedititem mit Schaltfläche und ShortcutText
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1435
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
-
- Beiträge: 2013
- Registriert: Do 16. Okt 2008, 10:22
- OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
- CPU-Target: x86,x64,ARM
Re: ttreelistedititem mit Schaltfläche und ShortcutText
fliegermichl hat geschrieben:1. Die Funktionen EncodeShortCutName und GetShortCutName aus mseactions.pas liefern eine Darstellung in der Form $006F. Ich hätte aber gerne "Strg+O" oder sowas in der Art.
Bei mir gibt
Code: Alles auswählen
writeln(getshortcutname(key_o,[ss_ctrl]));
Code: Alles auswählen
Ctrl+O
2. Gibt es eine Komponente in msegui die wie der tstringedit funktioniert aber zusätzlich so einen kleinen "..." Button hat, mit dem ein anwendungsspezifischer Event ausgelöst wird (In meinem Fall sowas wie ein "Taste fangen" Dialog?
TDialogStringEdit aus Tab 'Dialog'. Es wird "OnExecute" ausgeführt. Weitere buttons können in "frame.buttons" angelegt werden.
Einen Shortcut-definitions-Dialog hat auch MSEide ('Settings'-'Configure MSEide'-'Shortcuts'), die Unit ist lib/common/dialogs/mseshortcutdialog.pas.
Edit: Eine weitere Option ist TRecordFieldEdit welches "OnUpdateRowValues" zur Übertragung der Feldwerte vom TTreeListItem hat. Das dropdown Fenster kann mit dropdown.options deo_disabled abgestellt werden.
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1435
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: ttreelistedititem mit Schaltfläche und ShortcutText
Oh Mann, manchmal bin ich wohl etwas verwirrt.
In dem Tree werden verschiedene Klassen an die Eigenschaft tagpointer des ttreeedit gehängt und wenn man dann die Property Shortcut von einer Klasse abfragt, die diese property gar nicht hat, muss man sich nicht wundern das getShortcutName nichts geeignetes finden kann.
In dem Tree werden verschiedene Klassen an die Eigenschaft tagpointer des ttreeedit gehängt und wenn man dann die Property Shortcut von einer Klasse abfragt, die diese property gar nicht hat, muss man sich nicht wundern das getShortcutName nichts geeignetes finden kann.