Als published property geht das glaube ich nicht, da für Records keine RTTI zur Verfügung steht. Mit einem Komponenten-Editor und streaming der Daten in defineproperties() sollte es möglich sein. Wofür brauchst du die Komponente? Vielleicht gibt es eine andere Möglichkeit.fliegermichl hat geschrieben: Da muss man dann wohl den Umweg über eine spezielle Klasse mit entsprechendem Propertyeditor gehen.
Button Stylen
-
- 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: Button Stylen
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1652
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Button Stylen
Na wenn ich eine TRichStringDisp Komponente auf dem Formular platziere, will ich auch einen formatierten String anzeigen können.mse hat geschrieben:Als published property geht das glaube ich nicht, da für Records keine RTTI zur Verfügung steht. Mit einem Komponenten-Editor und streaming der Daten in defineproperties() sollte es möglich sein. Wofür brauchst du die Komponente? Vielleicht gibt es eine andere Möglichkeit.fliegermichl hat geschrieben: Da muss man dann wohl den Umweg über eine spezielle Klasse mit entsprechendem Propertyeditor gehen.
Kannst Du nicht mal eine kleine Übersicht machen, welche Komponenten die Palette enthält, was man damit anstellen kann und falls es nicht offensichtlich ist, wie man es verwendet.
z.B. das man einen TTextEdit in einem TWidgetGrid platzieren muss und der Inhalt in einer DataCols Liste steht, da kommt doch kein Mensch von alleine drauf.
Viele Grüße
Michael
-
- 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: Button Stylen
Als button-Ersatz brauchst du trichstringdisp nicht mehr, da Leerzeichen als Hotkey nun übersprungen werden.fliegermichl hat geschrieben:Na wenn ich eine TRichStringDisp Komponente auf dem Formular platziere, will ich auch einen formatierten String anzeigen können.
Ich werde einen entsprechenden Propertyeditor machen mit welchem man den Zeichenstil auch zur Entwurfszeit einstellen kann.
http://www.lazarusforum.de/viewtopic.php?f=53&t=2171Kannst Du nicht mal eine kleine Übersicht machen, welche Komponenten die Palette enthält, was man damit anstellen kann und falls es nicht offensichtlich ist, wie man es verwendet.
http://wiki.freepascal.org/MSEide_&_MSEgui
http://wiki.freepascal.org/Reference:_MSEgui
unter "see also" gibt es entsprechende Artikel von Michal Ebner.
Du bist herzlich dazu eingeladen deine Erkenntnisse zu ergänzen.

-
- 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: Button Stylen
git master 9e83ab6d7b9aa805148da0b30efbd5e9772dc86a hat ihn. Bitte klicke im Objektinspektor auf den Ellipsen Button in der "value"-Property, markiere den gewünschten Text, klicke auf 'Font Format'.mse hat geschrieben: Ich werde einen entsprechenden Propertyeditor machen mit welchem man den Zeichenstil auch zur Entwurfszeit einstellen kann.
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1652
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Button Stylen
Das ist ja irre schnell gegangen. Bist du etwa Rentner und sitzt den ganzen Tag am Computer und wartest, daß einer nach Änderungen ruft?mse hat geschrieben:git master 9e83ab6d7b9aa805148da0b30efbd5e9772dc86a hat ihn. Bitte klicke im Objektinspektor auf den Ellipsen Button in der "value"-Property, markiere den gewünschten Text, klicke auf 'Font Format'.mse hat geschrieben: Ich werde einen entsprechenden Propertyeditor machen mit welchem man den Zeichenstil auch zur Entwurfszeit einstellen kann.

Die Links oben sind schon mal sehr hilfreich.
Spricht was dagegen, die Captions bei den Buttons auch als richstringty zu deklarieren (Resourcen oder so etwaas). Dann könnte man dann auch z.B. sowas machen.
Weil der trichstringdisp hat ja keine Action oder ShortCut property.
Viele Grüße
Michael
-
- 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: Button Stylen
Nein, aber MSEide+MSEgui ist eine sehr produktive Entwicklungsumgebung.fliegermichl hat geschrieben: Das ist ja irre schnell gegangen. Bist du etwa Rentner und sitzt den ganzen Tag am Computer und wartest, daß einer nach Änderungen ruft?![]()
Beim trichbutton könnte man das schon machen. Es ist auch möglich beliebige Widgets in einem tbutton zu platzieren.Spricht was dagegen, die Captions bei den Buttons auch als richstringty zu deklarieren (Resourcen oder so etwaas).
Die shortcuts werden automatisch angezeigt, wenn tbutton.options bo_shortcutcaption gesetzt ist.
-
- 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: Button Stylen
git master f40b652a126cb46c59c5cb8489622d535ead27b6 hat trichbutton.captionrich. Ist dort etwas eingetragen, wird dieser Text angezeigt; "caption" wird nur noch zur Bestimmung des Hotkeys benutzt.mse hat geschrieben: Beim trichbutton könnte man das schon machen.
Ich musste noch zwei, drei andere Sachen erledigen, darum hat es etwas länger gedauert.

- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1652
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Button Stylen
Der Wahnsinn. Ein kleiner Bug ist scheinbar aber noch drin.mse hat geschrieben:git master f40b652a126cb46c59c5cb8489622d535ead27b6 hat trichbutton.captionrich. Ist dort etwas eingetragen, wird dieser Text angezeigt; "caption" wird nur noch zur Bestimmung des Hotkeys benutzt.mse hat geschrieben: Beim trichbutton könnte man das schon machen.
Ich musste noch zwei, drei andere Sachen erledigen, darum hat es etwas länger gedauert.
Wenn ich captionrich setze, funktioniert zunächst alles. Weise ich danach den ShortCut zu, wird captionrich gelöscht, obwohl es im Objektinspektor zunächst noch angezeigt wird. (caption hatte ich leer gelassen)
Eine (vorerst letzte) Frage hätte ich noch.
Ich habe irgendwo gelesen, daß man einstellen kann, zu welchem control man mit den Cursortasten vom fokussierten control aus navigieren kann. Ich kann das aber nicht mehr finden.
Viele Grüße
Michael
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1652
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Button Stylen
und noch eine Kleinigkeit.
Wenn der Shortcut nicht über die caption sondern über die property shortcut zugewiesen wird, funktioniert die option bo_focusonshortcut nicht.
Wenn der Shortcut nicht über die caption sondern über die property shortcut zugewiesen wird, funktioniert die option bo_focusonshortcut nicht.
-
- 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: Button Stylen
Bitte probiere noch mal mit git master 51b21d1273b7f3992568a55c2a43ee70f1d98d58fliegermichl hat geschrieben: Der Wahnsinn. Ein kleiner Bug ist scheinbar aber noch drin.
Wenn ich captionrich setze, funktioniert zunächst alles. Weise ich danach den ShortCut zu, wird captionrich gelöscht, obwohl es im Objektinspektor zunächst noch angezeigt wird. (caption hatte ich leer gelassen)
Im "onnavigrequest" Ereignis des übergeordneten widgets. Für die Komponenten eines Formulares ist dies "t*form.container.onnavigrequest". Bitte setze "ainfo.nearest" mit dem Zielwidget.Ich habe irgendwo gelesen, daß man einstellen kann, zu welchem control man mit den Cursortasten vom fokussierten control aus navigieren kann. Ich kann das aber nicht mehr finden.
Für die Fokusnavigation sind auch die "twidget.optionswidget" Einstellungen wichtig.
"ow_arrowfocus" bestimmt, ob ein widget Ziel einer Navigation werden kann, "ow_arrowfocusin" ob von aussen die einzelnen widgets oder der Container als ganzes fokussiert wird, "ow_arrowfocusout" ob ein Container verlassen werden kann.
MSEgui unterscheidet zwischen Hotkeys (die captions mit & Präfix -> unterstrichene Zeichen) und Shortcuts. Die Fokusfunktion wirkt nur für Hotkeys und wird hauptsächlich für "<widget>.frame.caption" und gesetztem "cfo_captionfocus" verwendet. Leider ist die Bezeichnung bo_focusonshortcut diesbezüglich irreführend.Wenn der Shortcut nicht über die caption sondern über die property shortcut zugewiesen wird, funktioniert die option bo_focusonshortcut nicht.
Bitte setze den Fokus im Shortcutfall in der Ereignisbehandlungsroutine.
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1652
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Button Stylen
Danke, klappt jetzt!mse hat geschrieben:Bitte probiere noch mal mit git master 51b21d1273b7f3992568a55c2a43ee70f1d98d58fliegermichl hat geschrieben: Der Wahnsinn. Ein kleiner Bug ist scheinbar aber noch drin.
Wenn ich captionrich setze, funktioniert zunächst alles. Weise ich danach den ShortCut zu, wird captionrich gelöscht, obwohl es im Objektinspektor zunächst noch angezeigt wird. (caption hatte ich leer gelassen)
Auch hier Dankemse hat geschrieben:Im "onnavigrequest" Ereignis des übergeordneten widgets. Für die Komponenten eines Formulares ist dies "t*form.container.onnavigrequest". Bitte setze "ainfo.nearest" mit dem Zielwidget.Ich habe irgendwo gelesen, daß man einstellen kann, zu welchem control man mit den Cursortasten vom fokussierten control aus navigieren kann. Ich kann das aber nicht mehr finden.
Für die Fokusnavigation sind auch die "twidget.optionswidget" Einstellungen wichtig.
"ow_arrowfocus" bestimmt, ob ein widget Ziel einer Navigation werden kann, "ow_arrowfocusin" ob von aussen die einzelnen widgets oder der Container als ganzes fokussiert wird, "ow_arrowfocusout" ob ein Container verlassen werden kann.
Wenn ich im formular eine ereignisbehandlungsroutine für onshortcut definiere, bekomme ich als sender das formular und als origin das aktuell fokusierte widget. Wie bekomme ich das Ziel des Shortcuts heraus?mse hat geschrieben:MSEgui unterscheidet zwischen Hotkeys (die captions mit & Präfix -> unterstrichene Zeichen) und Shortcuts. Die Fokusfunktion wirkt nur für Hotkeys und wird hauptsächlich für "<widget>.frame.caption" und gesetztem "cfo_captionfocus" verwendet. Leider ist die Bezeichnung bo_focusonshortcut diesbezüglich irreführend.Wenn der Shortcut nicht über die caption sondern über die property shortcut zugewiesen wird, funktioniert die option bo_focusonshortcut nicht.
Bitte setze den Fokus im Shortcutfall in der Ereignisbehandlungsroutine.
Oder bin ich an der falschen Stelle?
Viele Grüße
Michael
-
- 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: Button Stylen
Hier hat man die Möglichkeit auf Tastendrücke zu reagieren bevor die normale Tastenverarbeitung in der widget-Hierarchie startet. Es entspricht in etwa "keypreview" von Lazarus.fliegermichl hat geschrieben:Wenn ich im formular eine ereignisbehandlungsroutine für onshortcut definiere, bekomme ich als sender das formular und als origin das aktuell fokusierte widget. Wie bekomme ich das Ziel des Shortcuts heraus?Bitte setze den Fokus im Shortcutfall in der Ereignisbehandlungsroutine.
Oder bin ich an der falschen Stelle?
Ich meinte z.B. "trichbutton.onexecute" des buttons mit dem entsprechenden shortcut.
Code: Alles auswählen
procedure tmainfo.richbutton1exeev(const sender: TObject);
begin
twidget(sender).setfocus();
//or
//(sender as twidget).setfocus();
end;
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1652
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Button Stylen
so geht's natürlich auch. ich bin halt ein fauler Mensch und hatte gedacht, daß ich das irgendwo zentral machen kann.
-
- 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: Button Stylen
git master 430632dd8ef124dcfa0e4a35f80cf96792faed15 hat zusätzlich tbutton.options bo_focusonactionshortcut, damit wird für die Keysequenzen in tbutton.shortcut und tbutton.shortcut1 fokussiert.fliegermichl hat geschrieben:so geht's natürlich auch. ich bin halt ein fauler Mensch und hatte gedacht, daß ich das irgendwo zentral machen kann.
Mich würde der Zweck interessieren. Warum willst du, dass z.B. nach Ausführen einer Programmfunktion mit F2 der Button den
Fokus erhält, der die F2 Aktion ausgelöst hat? Normalerweise benutzt man als Anwender Shortcuts doch gerade dann, wenn man den Kontext nicht verlassen möchte?
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1652
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Button Stylen
Danke, das funktioniert super
(Ich hab mal auf einer Schulung Handwerkern versucht, die Funktionsweise der Maus zu erklären - erfolglos)
Dann soll sich optisch alles in einem Fenster abspielen. D.h. wählt der Anwender einen Menüpunkt aus und es ist ein Untermenü nötig, dann soll der zurückgelegte Weg optisch angezeigt werden. Mittels Esc gelangt man schrittweise zurück in das Hauptmenü und der zuletzt angewählte Menüpunkt soll der fokussierte sein.
Hier mal ein Beispiel:
wählt der Anwender "Schriftverkehr", (egal ob durch Shortcut "S", Auswahl per Cursortaste oder anklicken mit der Maus, soll es etwa so aussehen. (Es wäre auch gut, wenn der Button aktiv bleibt)
oder Buchhaltung etwa so.
Jedes Unterformular legt sich modal über das jeweils darüberliegende. Ist ein Endpunkt erreicht, überlagert ein Fullscreen Fenster den ganzen Menüweg. Idealerweise kann man die Caption in der Mitte fett anzeigen.
Immer nach dem Motto "einfach ist viel zu kompliziert"
Viele Grüße
Michael
Ich arbeite an einer Kalkulationssoftware für Handwerker. Bei der Arbeit mit dem CAD Programm habe ich festgestellt, daß eine Oberfläche mit vielen Optionen die Anwender massiv verwirrt. So soll es max. 5 bis 6 Auswahlmöglichkeiten geben und es soll nach Möglichkeit völlig ohne Mauseinsatz zu bedienen sein.mse hat geschrieben:git master 430632dd8ef124dcfa0e4a35f80cf96792faed15 hat zusätzlich tbutton.options bo_focusonactionshortcut, damit wird für die Keysequenzen in tbutton.shortcut und tbutton.shortcut1 fokussiert.fliegermichl hat geschrieben:so geht's natürlich auch. ich bin halt ein fauler Mensch und hatte gedacht, daß ich das irgendwo zentral machen kann.
Mich würde der Zweck interessieren. Warum willst du, dass z.B. nach Ausführen einer Programmfunktion mit F2 der Button den
Fokus erhält, der die F2 Aktion ausgelöst hat? Normalerweise benutzt man als Anwender Shortcuts doch gerade dann, wenn man den Kontext nicht verlassen möchte?
(Ich hab mal auf einer Schulung Handwerkern versucht, die Funktionsweise der Maus zu erklären - erfolglos)
Dann soll sich optisch alles in einem Fenster abspielen. D.h. wählt der Anwender einen Menüpunkt aus und es ist ein Untermenü nötig, dann soll der zurückgelegte Weg optisch angezeigt werden. Mittels Esc gelangt man schrittweise zurück in das Hauptmenü und der zuletzt angewählte Menüpunkt soll der fokussierte sein.
Hier mal ein Beispiel:
wählt der Anwender "Schriftverkehr", (egal ob durch Shortcut "S", Auswahl per Cursortaste oder anklicken mit der Maus, soll es etwa so aussehen. (Es wäre auch gut, wenn der Button aktiv bleibt)
oder Buchhaltung etwa so.
Jedes Unterformular legt sich modal über das jeweils darüberliegende. Ist ein Endpunkt erreicht, überlagert ein Fullscreen Fenster den ganzen Menüweg. Idealerweise kann man die Caption in der Mitte fett anzeigen.
Immer nach dem Motto "einfach ist viel zu kompliziert"
Viele Grüße
Michael