Spezielles Tabpage Objekt
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1432
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Spezielles Tabpage Objekt
Hallo,
ich arbeite zur Zeit gerade an der Portierung eines alten Delphiprogramms nach msegui. Es handelt sich da um ein CAD Programm mit dem Dächer konstruiert werden können.
Normalerweise ist der Hauptbereich die Zeichnung mit dem aktuellen Projekt.
Jetzt kann der Anwender aus verschiedenen Dachtypen wählen deren Definition in separaten Formularen erfolgen soll.
Ich stelle mir das etwa so vor, daß am rechten Bildschirmrand die einzelnen Dachtypen (Als Symbol auf dem Tab) angezeigt werden.
Wenn der Anwender mit der Maus auf eines der Tabs fährt, soll sich dessen Definitionsformular sozusagen von rechts her einblenden und wenn er das Formular mit der Maus wieder verlässt, soll es sich wieder ausblenden.
Klickt er in ein Eingabefeld innerhalb des Formulares, dann soll es solange modal eingeblendet werden, bis z.B. ein OK Button angeklickt wird.
Bekomme ich das mit den Möglichkeiten eines TTabWidget gelöst?
Gibt es eine Möglichkeit die Tabs sozusagen "Ownerdrawn" darzustellen? z.B. Halbrund oder z.T. transparent?
Danke und viele Grüße
Michael
ich arbeite zur Zeit gerade an der Portierung eines alten Delphiprogramms nach msegui. Es handelt sich da um ein CAD Programm mit dem Dächer konstruiert werden können.
Normalerweise ist der Hauptbereich die Zeichnung mit dem aktuellen Projekt.
Jetzt kann der Anwender aus verschiedenen Dachtypen wählen deren Definition in separaten Formularen erfolgen soll.
Ich stelle mir das etwa so vor, daß am rechten Bildschirmrand die einzelnen Dachtypen (Als Symbol auf dem Tab) angezeigt werden.
Wenn der Anwender mit der Maus auf eines der Tabs fährt, soll sich dessen Definitionsformular sozusagen von rechts her einblenden und wenn er das Formular mit der Maus wieder verlässt, soll es sich wieder ausblenden.
Klickt er in ein Eingabefeld innerhalb des Formulares, dann soll es solange modal eingeblendet werden, bis z.B. ein OK Button angeklickt wird.
Bekomme ich das mit den Möglichkeiten eines TTabWidget gelöst?
Gibt es eine Möglichkeit die Tabs sozusagen "Ownerdrawn" darzustellen? z.B. Halbrund oder z.T. transparent?
Danke und 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: Spezielles Tabpage Objekt
fliegermichl hat geschrieben:Ich stelle mir das etwa so vor, daß am rechten Bildschirmrand die einzelnen Dachtypen (Als Symbol auf dem Tab) angezeigt werden.
Die tabs eines ttabwidget erscheinen rechts, wenn ttabwidget.tab_options tabo_vertical und tabo_opposite true gesetzt werden.
Symbole auf den tabs werden durch ttabpage.imagelist und ttabpage.imagenr definiert.
Wenn der Anwender mit der Maus auf eines der Tabs fährt, soll sich dessen Definitionsformular sozusagen von rechts her einblenden und wenn er das Formular mit der Maus wieder verlässt, soll es sich wieder ausblenden.
Klickt er in ein Eingabefeld innerhalb des Formulares, dann soll es solange modal eingeblendet werden, bis z.B. ein OK Button angeklickt wird.
Bekomme ich das mit den Möglichkeiten eines TTabWidget gelöst?
Das ist etwas speziell, vermutlich bist du mit einer Reihe von tdatabutton mit options bo_radioitem besser bedient. Ich werde ein Beispiel machen.
Gibt es eine Möglichkeit die Tabs sozusagen "Ownerdrawn" darzustellen? z.B. Halbrund oder z.T. transparent?
Die tabs haben eine tframe Eigenschaft (ttabpage.tab_frametab) und für den aktiven und den inaktiven Zustand je eine tface Eigenschaft (ttabpage.tab_facetab, tab_faceactivetab). Die face defaults können in den einzelnen ttabpage überschrieben werden (ttabpage.facetab, faceactivetab). Fred macht gerade so etwas:
http://mseide-msegui-talk.13964.n8.nabb ... _strum.mp4
Ich nehme an die Möglichkeiten von tframe und tface kennst du bereits? Für Animationen plane ich einen speziellen Timer zu implementieren.
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1432
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Spezielles Tabpage Objekt
Vielen Dank für die Infos,
ja ich hatte mir Programmierspass.pdf angeschaut. Da bist du etwas näher auf Frame und Face eingegangen. Ist die Anwendung in dem Video native msegui?
Das ist fantastisch.
Die Möglichkeiten mit msegui scheinen fast unbegrenzt. Ist zwar nen Mords Lernaufwand aber ich bin überzeugt, dass der sich lohnt.
Viele Grüße
Michael
ja ich hatte mir Programmierspass.pdf angeschaut. Da bist du etwas näher auf Frame und Face eingegangen. Ist die Anwendung in dem Video native msegui?
Das ist fantastisch.
Die Möglichkeiten mit msegui scheinen fast unbegrenzt. Ist zwar nen Mords Lernaufwand aber ich bin überzeugt, dass der sich lohnt.
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: Spezielles Tabpage Objekt
fliegermichl hat geschrieben:Ist die Anwendung in dem Video native msegui?
Ja, die Anwendung hat keine einzige Zeile Zeichnungscode, alles MSEgui Bordmittel.
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1432
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Spezielles Tabpage Objekt
Ich hab mal einen tdatabutton in meinem Formular platziert und hab auch die Option bo_radioitem auf true gesetzt (Da ändert sich aber offensichtlich nichts).
Eine Imagelist dazu und imagenr auf 0 und es wird auch eine Grafik angezeigt.
Mit den Anchors [an_top,anright] bleibt der auch schön auf der rechten Seite.
Weiter komme ich momentan nicht.
Eine Imagelist dazu und imagenr auf 0 und es wird auch eine Grafik angezeigt.
Mit den Anchors [an_top,anright] bleibt der auch schön auf der rechten Seite.
Weiter komme ich momentan 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: Spezielles Tabpage Objekt
Ich muss den neuen tanimtimer fertig machen bevor ich das Beispiel publizieren kann.
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1432
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Spezielles Tabpage Objekt
Ja keine Eile.
Wofür ist denn der tdatabutton gedacht? Ich habe gesehen, daß er verschiedene "value*" Eigenschaften hat, kann aber nicht rausfinden was man damit anstellen kann.
Wofür ist denn der tdatabutton gedacht? Ich habe gesehen, daß er verschiedene "value*" Eigenschaften hat, kann aber nicht rausfinden was man damit anstellen 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: Spezielles Tabpage Objekt
Bei jedem Klick wird "value" um eins erhöht bis "max" erreicht ist.
Ein Beispiel ist hier:
https://gitlab.com/mseide-msegui/mseuni ... adiobutton
Ein Beispiel ist hier:
https://gitlab.com/mseide-msegui/mseuni ... adiobutton
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1432
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Spezielles Tabpage Objekt
Ah ja, sehr interessant.
Kann man in dem Widgetgrid unterschiedliche Datentypen bzw. Spalten verarbeiten?
Ich habe z.B. einen Einnahmenüberschußrechner geschrieben. In einer Treeansicht hat man als Rootobjekt das jeweilige Jahr, darunter 4 Einträge für jedes Quartal, darunter für jeden Monat in dem Quartal. In all denen werden nur die Summen der Buchungen im jeweiligen Zeitraum angezeigt. Innerhalb des Monats erscheinen dann andere Spalten wie Buchungsdatum, Nettobetrag, Steuersatz, Steuerbetrag und Bruttobetrag.
Hier habe ich das mit Lazarus mit Hilfe des VirtualstringTree gelöst.
Kann man in dem Widgetgrid unterschiedliche Datentypen bzw. Spalten verarbeiten?
Ich habe z.B. einen Einnahmenüberschußrechner geschrieben. In einer Treeansicht hat man als Rootobjekt das jeweilige Jahr, darunter 4 Einträge für jedes Quartal, darunter für jeden Monat in dem Quartal. In all denen werden nur die Summen der Buchungen im jeweiligen Zeitraum angezeigt. Innerhalb des Monats erscheinen dann andere Spalten wie Buchungsdatum, Nettobetrag, Steuersatz, Steuerbetrag und Bruttobetrag.
Hier habe ich das mit Lazarus mit Hilfe des VirtualstringTree gelöst.
-
- 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: Spezielles Tabpage Objekt
fliegermichl hat geschrieben:Kann man in dem Widgetgrid unterschiedliche Datentypen bzw. Spalten verarbeiten?
Ja, alle widgets im Reiter 'Edit' können in ein twidgetgrid eingesetzt werden und bilden dann eine Spalte des entsprechenden Datentyps.
tintegeredit -> int32, trealedit -> flo64, tdatabutton -> int32, tbooleanedit -> boolean...
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1432
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Spezielles Tabpage Objekt
Da habe ich mich missverständlich ausgedrückt.
Ich möchte z.B. 4 Zeilen mit einer Struktur und dann 10 Zeilen mit einer abweichenden Struktur darstellen (z.B. für Summenzeilen o.ä.)
Ich hatte schon versucht, twidgetgrid zu verschachteln. Das läßt das System aber nicht zu. (invalid widget)
Wenn es nicht geht, ist auch nicht schlimm. Dann befüllt man eben ein zweites widgetgrid dynamisch in Abhängigkeit der aktuellen Zeile des ersten.
Ich möchte z.B. 4 Zeilen mit einer Struktur und dann 10 Zeilen mit einer abweichenden Struktur darstellen (z.B. für Summenzeilen o.ä.)
Ich hatte schon versucht, twidgetgrid zu verschachteln. Das läßt das System aber nicht zu. (invalid widget)
Wenn es nicht geht, ist auch nicht schlimm. Dann befüllt man eben ein zweites widgetgrid dynamisch in Abhängigkeit der aktuellen Zeile des ersten.
-
- 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: Spezielles Tabpage Objekt
Dazu dient eine Spalte mit ttreeitemedit. Beispiel hier:
https://gitlab.com/mseide-msegui/mseuni ... dfieldedit
https://gitlab.com/mseide-msegui/mseuni ... s/treeview
Ein weiteres Beispiel ist 'Project'-'Tree' in MSEide.
oder auch noch spezieller
https://gitlab.com/mseide-msegui/mseuni ... s/itemedit
Eine weitere Möglichkeit ist tfoldedit im twidgetgrid welches Zeilen hierarchisch verbergen kann.
https://gitlab.com/mseide-msegui/mseuni ... dfieldedit
https://gitlab.com/mseide-msegui/mseuni ... s/treeview
Ein weiteres Beispiel ist 'Project'-'Tree' in MSEide.
oder auch noch spezieller
https://gitlab.com/mseide-msegui/mseuni ... s/itemedit
Eine weitere Möglichkeit ist tfoldedit im twidgetgrid welches Zeilen hierarchisch verbergen 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: Spezielles Tabpage Objekt
mse hat geschrieben:Ich muss den neuen tanimtimer fertig machen bevor ich das Beispiel publizieren kann.
HIer:
http://mseide-msegui.sourceforge.net/pi ... ranim.mpeg
https://gitlab.com/mseide-msegui/mseuni ... buttonanim
Zum Erzeugen der frameimages gibt es ein Tool von Minoshi:
https://gitlab.com/mseide-msegui/mseuni ... textractor
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1432
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Spezielles Tabpage Objekt
Der Wahnsinn. Perfekt!
Wenn ich anstatt die Farbe des Panels zu wechseln eine Grafik des jeweiligen Formulares einblende und beim anklicken des Buttons dann eben das Formular selbst als subform anzeige, habe ich schon genau das gewünschte Verhalten.
Gibt es in msegui analog zu blendcolor() bereits vorgefertigte Routinen um ein Grafik animiert ein- bzw. ausblenden zu lassen?.
Wenn ich anstatt die Farbe des Panels zu wechseln eine Grafik des jeweiligen Formulares einblende und beim anklicken des Buttons dann eben das Formular selbst als subform anzeige, habe ich schon genau das gewünschte Verhalten.
Gibt es in msegui analog zu blendcolor() bereits vorgefertigte Routinen um ein Grafik animiert ein- bzw. ausblenden zu lassen?.
-
- 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: Spezielles Tabpage Objekt
Die twidget.face property bietet diese funktion wenn tface.options fao_aphafadeall gesetzt ist. Ich mache ein Beispiel.
Weitere blend Beispiele sind hier:
https://gitlab.com/mseide-msegui/mseuni ... danimation
https://gitlab.com/mseide-msegui/mseuni ... imageblend
https://gitlab.com/mseide-msegui/mseuni ... ransparent
Weitere blend Beispiele sind hier:
https://gitlab.com/mseide-msegui/mseuni ... danimation
https://gitlab.com/mseide-msegui/mseuni ... imageblend
https://gitlab.com/mseide-msegui/mseuni ... ransparent