XbpTabPage mit owner-drawing
Moderator: Moderatoren
- ssemleit
- Rekursionen-Architekt
- Beiträge: 133
- Registriert: Di, 08. Mär 2016 11:32
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 9 Mal
XbpTabPage mit owner-drawing
Hallo,
hat schon jemand mal XbpTabPage mit owner-drawing umgesetzt und vieleicht ein exemplarisches Beispiel?
Ich tappe da noch etwas im dunkeln, was die Möglichkeiten betrifft.
Ich würde gerne von den alten klassischen Tabs auf "morderne" Elemente wechseln.
Mit 5 Tabs (Überschrift, Umgang mit dem Datenschutz, Meinungen, Support, Ähnliche) sollte dass dann z.B. so aussehen: Darunter dann jeweils die anderen XBase-Parts.
Ist das überhaupt mit dem Owner-Drawing der TabPage möglich?
Besten Dank
Stefan
hat schon jemand mal XbpTabPage mit owner-drawing umgesetzt und vieleicht ein exemplarisches Beispiel?
Ich tappe da noch etwas im dunkeln, was die Möglichkeiten betrifft.
Ich würde gerne von den alten klassischen Tabs auf "morderne" Elemente wechseln.
Mit 5 Tabs (Überschrift, Umgang mit dem Datenschutz, Meinungen, Support, Ähnliche) sollte dass dann z.B. so aussehen: Darunter dann jeweils die anderen XBase-Parts.
Ist das überhaupt mit dem Owner-Drawing der TabPage möglich?
Besten Dank
Stefan
Gruß
Stefan
Stefan
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9394
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 364 Mal
- Kontaktdaten:
Re: XbpTabPage mit owner-drawing
Hallo, Stefan.
Ja, ich mache Ownerdrawing mit Tabpages, für formatierte Schriften, für farbige Hintergründe und für Icons. Ich habe das vom XbpImageTabPage-Sample von Alaska abgeleitet. Das Ownerdrawing funktioniert aber genauso wie bei Statics oder Browse-Zellen. Man bekommt ein Array aus 4 Elementen, davon beschreibt das letzte das Rechteck, auf dem man zeichnen darf. Und dann malt man halt mit GRA-Funktionen auf der Lasche der Tabpage. Leider verfügen die GRA-Funktionen nicht über Antialiasing, so dass Kreise oder Kreisabschnitte unsauber aussehen. Aber ansonsten kann man da halt alles tun - Texte schreiben, Icons oder Bildchen anzeigen, und eben zeichnen. Allerdings ist die Lasche trotzdem sichtbar.
Für das Beispiel, das Du zeigst, würde ich anders vorgehen, nämlich - auf einem Static basierend - ein eigenes kleines Control bauen. Und je nachdem, wo hingeklickt wird, blendet man darunter dann das Static mit dem Inhalt ein oder aus.
Ja, ich mache Ownerdrawing mit Tabpages, für formatierte Schriften, für farbige Hintergründe und für Icons. Ich habe das vom XbpImageTabPage-Sample von Alaska abgeleitet. Das Ownerdrawing funktioniert aber genauso wie bei Statics oder Browse-Zellen. Man bekommt ein Array aus 4 Elementen, davon beschreibt das letzte das Rechteck, auf dem man zeichnen darf. Und dann malt man halt mit GRA-Funktionen auf der Lasche der Tabpage. Leider verfügen die GRA-Funktionen nicht über Antialiasing, so dass Kreise oder Kreisabschnitte unsauber aussehen. Aber ansonsten kann man da halt alles tun - Texte schreiben, Icons oder Bildchen anzeigen, und eben zeichnen. Allerdings ist die Lasche trotzdem sichtbar.
Für das Beispiel, das Du zeigst, würde ich anders vorgehen, nämlich - auf einem Static basierend - ein eigenes kleines Control bauen. Und je nachdem, wo hingeklickt wird, blendet man darunter dann das Static mit dem Inhalt ein oder aus.
Herzlich,
Tom
Tom
- ssemleit
- Rekursionen-Architekt
- Beiträge: 133
- Registriert: Di, 08. Mär 2016 11:32
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 9 Mal
Re: XbpTabPage mit owner-drawing
Hallo Tom,
danke für Deine Hinweise.
Ich habe schon befürchtet, dass es per Ownerdraw nur begrenzte Möglichkeiten gibt.
Mein Ziel ist es, unsere bestehenden Applikationen etwas "aufzuhübschen".
Das sind unzählige Seitendialge, bei denen die bestehende Logik und die Anordnung der Elemete auf den einzelnen Seiten behalten werden muss.
Ich habe nach dem von Dir erwähnten XbpImageTabPage-Sample gesucht, aber nichts gefunden.
Hast Du einen Tip, wo das zu finden ist?
Beste Grüße
Stefan
danke für Deine Hinweise.
Ich habe schon befürchtet, dass es per Ownerdraw nur begrenzte Möglichkeiten gibt.
Mein Ziel ist es, unsere bestehenden Applikationen etwas "aufzuhübschen".
Das sind unzählige Seitendialge, bei denen die bestehende Logik und die Anordnung der Elemete auf den einzelnen Seiten behalten werden muss.
Ich habe nach dem von Dir erwähnten XbpImageTabPage-Sample gesucht, aber nichts gefunden.
Hast Du einen Tip, wo das zu finden ist?
Beste Grüße
Stefan
Gruß
Stefan
Stefan
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9394
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 364 Mal
- Kontaktdaten:
Re: XbpTabPage mit owner-drawing
Jo. Das ist bei den Assets (...\Documents\Xbase++\.assets) und dort im parts-pack-no1.1.Hast Du einen Tip, wo das zu finden ist?
Herzlich,
Tom
Tom
- ssemleit
- Rekursionen-Architekt
- Beiträge: 133
- Registriert: Di, 08. Mär 2016 11:32
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 9 Mal
Re: XbpTabPage mit owner-drawing
Die XbpImageTabPage funktioniert nun soweit ganz gut.
Hat denn schon jemand mit XbpTabPage:DrawMode := XBP_DRAW_OWNERADVANCED Erfahung gesammelt?
Die XbpTabPage:draw() mit aInfo[XBP_DRAWINFO_ACTION] == XBP_DRAWACTION_DRAWBG wird brutal oft
und auch auch immer mit den gleichen Parametern gerufen.
Zudem gibt es massive Darstellungsprobleme auf der Tab selbst.
Kann auch sein, dass es an unseren zahlreichen Anpassungen im Bereich der Dialoge liegt.
Setzt XBP_DRAW_OWNERADVANCED jemand von Euch mit Tabpages ein?
Schönes WE
Stefan
Hat denn schon jemand mit XbpTabPage:DrawMode := XBP_DRAW_OWNERADVANCED Erfahung gesammelt?
Die XbpTabPage:draw() mit aInfo[XBP_DRAWINFO_ACTION] == XBP_DRAWACTION_DRAWBG wird brutal oft
und auch auch immer mit den gleichen Parametern gerufen.
Zudem gibt es massive Darstellungsprobleme auf der Tab selbst.
Kann auch sein, dass es an unseren zahlreichen Anpassungen im Bereich der Dialoge liegt.
Setzt XBP_DRAW_OWNERADVANCED jemand von Euch mit Tabpages ein?
Schönes WE
Stefan
Gruß
Stefan
Stefan
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9394
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 364 Mal
- Kontaktdaten:
Re: XbpTabPage mit owner-drawing
Hallo, Stefan.
Wozu sollte man XbpTabpages mit OWNERDRAWADVANCED nutzen? Dann muss man die komplette Tabpage selbst zeichnen. Sinnvoll ist das m.E. nur bei der "Lasche" (DrawMode OWNERDRAW). Oder was hast Du da vor? Zeig doch mal!
Jedenfalls dürfte dann sehr häufig das Ownerdrawing aufgerufen werden, auch bei indirekten Abhängigkeiten.
Ich prüfe in meiner Zeichnen-Routine, welchen Status die Tabpage hat. Wenn sie disabled ist, geschieht nichts (ggf. von einem Neuzeichnen des Laschen-Textes abgesehen). Das wird über
abgefangen.
(Edit: Typo im Code korrigiert.)
Wozu sollte man XbpTabpages mit OWNERDRAWADVANCED nutzen? Dann muss man die komplette Tabpage selbst zeichnen. Sinnvoll ist das m.E. nur bei der "Lasche" (DrawMode OWNERDRAW). Oder was hast Du da vor? Zeig doch mal!
Jedenfalls dürfte dann sehr häufig das Ownerdrawing aufgerufen werden, auch bei indirekten Abhängigkeiten.
Ich prüfe in meiner Zeichnen-Routine, welchen Status die Tabpage hat. Wenn sie disabled ist, geschieht nichts (ggf. von einem Neuzeichnen des Laschen-Textes abgesehen). Das wird über
Code: Alles auswählen
IF !BAnd(aInfo[XBP_DRAWINFO_STATE],XBP_DRAWSTATE_DISABLED) == XBP_DRAWSTATE_DISABLED
* ZEICHNEN
ENDIF
(Edit: Typo im Code korrigiert.)
Zuletzt geändert von Tom am Fr, 08. Apr 2022 16:15, insgesamt 1-mal geändert.
Herzlich,
Tom
Tom
- ssemleit
- Rekursionen-Architekt
- Beiträge: 133
- Registriert: Di, 08. Mär 2016 11:32
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 9 Mal
Re: XbpTabPage mit owner-drawing
Hallo Tom,
genau. Mit OWNERDRAWADVANCED wollte ich die Möglichkeiten sondieren, die Lasche moderner zu zeichnen um das ganze etwas zeitgemäßer aussehen zu lassen. Würde wohl auch gehen, aber ohne das Antialiasing sehen die größere Rundungen eh antik und noch altbackener aus. Ich werde und unser Marketing werden uns wohl mit der XbpImageTabPage zufrienden geben müssen und das OWNERDRAWADVANCED verwerfen.
Eins schwirrt mir doch noch im Kopf rum...
Wenn ich ::tabHeight aller Tabs auf 0 setze, dann verschwinden alle Tabs.
Darüber könnte ich dann ein HtmlWindow mit "schönen" Schaltflächen für die Seitenumschaltung setzen.
Einen Versuch wert oder Zeitverschwendung?
Gruß
Stefan
genau. Mit OWNERDRAWADVANCED wollte ich die Möglichkeiten sondieren, die Lasche moderner zu zeichnen um das ganze etwas zeitgemäßer aussehen zu lassen. Würde wohl auch gehen, aber ohne das Antialiasing sehen die größere Rundungen eh antik und noch altbackener aus. Ich werde und unser Marketing werden uns wohl mit der XbpImageTabPage zufrienden geben müssen und das OWNERDRAWADVANCED verwerfen.
Eins schwirrt mir doch noch im Kopf rum...
Wenn ich ::tabHeight aller Tabs auf 0 setze, dann verschwinden alle Tabs.
Darüber könnte ich dann ein HtmlWindow mit "schönen" Schaltflächen für die Seitenumschaltung setzen.
Einen Versuch wert oder Zeitverschwendung?
Gruß
Stefan
Gruß
Stefan
Stefan
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9394
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 364 Mal
- Kontaktdaten:
Re: XbpTabPage mit owner-drawing
Hallo, Stefan.
Verstehe. Ja, wenn wenigstens GDI+ ginge. Ich mache sehr viel mit Ownerdrawing und ärgere mich seit Jahren darüber, keine wirklich runden Kreise zu bekommen. Aber die WebUI geht ja in die nächste Runde - vielleicht kommt da was.
Verstehe. Ja, wenn wenigstens GDI+ ginge. Ich mache sehr viel mit Ownerdrawing und ärgere mich seit Jahren darüber, keine wirklich runden Kreise zu bekommen. Aber die WebUI geht ja in die nächste Runde - vielleicht kommt da was.
Herzlich,
Tom
Tom
- ssemleit
- Rekursionen-Architekt
- Beiträge: 133
- Registriert: Di, 08. Mär 2016 11:32
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 9 Mal
Re: XbpTabPage mit owner-drawing
Hallo Tom,
dann hoffen wir mal, dass es mit der WebUI voran geht und Alaska zeitnah etwas hübsches bereitstellen kann,
Grüße
Stefan
dann hoffen wir mal, dass es mit der WebUI voran geht und Alaska zeitnah etwas hübsches bereitstellen kann,
Grüße
Stefan
Gruß
Stefan
Stefan