Spezielles Tabpage Objekt

Forum für alles rund um die MSEide und MSEgui

Spezielles Tabpage Objekt

Beitragvon fliegermichl » 19. Sep 2017, 13:22 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
fliegermichl
 
Beiträge: 145
Registriert: 9. Jun 2011, 08:42

Beitragvon mse » 19. Sep 2017, 14:37 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.
mse
 
Beiträge: 1713
Registriert: 16. Okt 2008, 09:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.4.2,git master FPC 3.0,fixes_3_0) | 
CPU-Target: x86,x64,ARM
Nach oben

Beitragvon fliegermichl » 19. Sep 2017, 15:15 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
fliegermichl
 
Beiträge: 145
Registriert: 9. Jun 2011, 08:42

Beitragvon mse » 19. Sep 2017, 15:24 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.
mse
 
Beiträge: 1713
Registriert: 16. Okt 2008, 09:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.4.2,git master FPC 3.0,fixes_3_0) | 
CPU-Target: x86,x64,ARM
Nach oben

Beitragvon fliegermichl » 20. Sep 2017, 08:51 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.
fliegermichl
 
Beiträge: 145
Registriert: 9. Jun 2011, 08:42

Beitragvon mse » 20. Sep 2017, 12:34 Re: Spezielles Tabpage Objekt

Ich muss den neuen tanimtimer fertig machen bevor ich das Beispiel publizieren kann.
mse
 
Beiträge: 1713
Registriert: 16. Okt 2008, 09:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.4.2,git master FPC 3.0,fixes_3_0) | 
CPU-Target: x86,x64,ARM
Nach oben

Beitragvon fliegermichl » 20. Sep 2017, 12:44 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.
fliegermichl
 
Beiträge: 145
Registriert: 9. Jun 2011, 08:42

Beitragvon mse » 20. Sep 2017, 12:54 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
mse
 
Beiträge: 1713
Registriert: 16. Okt 2008, 09:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.4.2,git master FPC 3.0,fixes_3_0) | 
CPU-Target: x86,x64,ARM
Nach oben

Beitragvon fliegermichl » 20. Sep 2017, 13:40 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.

euer1.png


Hier habe ich das mit Lazarus mit Hilfe des VirtualstringTree gelöst.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
fliegermichl
 
Beiträge: 145
Registriert: 9. Jun 2011, 08:42

Beitragvon mse » 20. Sep 2017, 13:48 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...
mse
 
Beiträge: 1713
Registriert: 16. Okt 2008, 09:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.4.2,git master FPC 3.0,fixes_3_0) | 
CPU-Target: x86,x64,ARM
Nach oben

Beitragvon fliegermichl » 20. Sep 2017, 14:12 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.
fliegermichl
 
Beiträge: 145
Registriert: 9. Jun 2011, 08:42

Beitragvon mse » 20. Sep 2017, 14:38 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.
mse
 
Beiträge: 1713
Registriert: 16. Okt 2008, 09:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.4.2,git master FPC 3.0,fixes_3_0) | 
CPU-Target: x86,x64,ARM
Nach oben

Beitragvon mse » 21. Sep 2017, 08:25 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
mse
 
Beiträge: 1713
Registriert: 16. Okt 2008, 09:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.4.2,git master FPC 3.0,fixes_3_0) | 
CPU-Target: x86,x64,ARM
Nach oben

Beitragvon fliegermichl » 21. Sep 2017, 11:04 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?.
fliegermichl
 
Beiträge: 145
Registriert: 9. Jun 2011, 08:42

Beitragvon mse » 21. Sep 2017, 12:16 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
mse
 
Beiträge: 1713
Registriert: 16. Okt 2008, 09:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.4.2,git master FPC 3.0,fixes_3_0) | 
CPU-Target: x86,x64,ARM
Nach oben

» Weitere Beiträge siehe nächste Seite »
Nächste

Zurück zu MSEide und MSEgui



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

porpoises-institution
accuracy-worried