XbpStatic und :type
Moderator: Moderatoren
- Jan
- Marvin
- Beiträge: 14658
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
XbpStatic und :type
Ich hab da mal eine Verständnisfrage: Ich kann ja unter :type u. a. verschiedenste Rechtecke oder Linien angeben. Aber in wie weit lassen die sich modifizieren?
Ich habe damit 2 Probleme: Linien gehen anscheinend nur waagerecht. Senkrecht werden die in 3 unterschiedliche Abschnitte unterteilt, was ziemlich daneben aussieht. Und die Rechtecke lassen sich anscheinend farbig überhaupt nicht einstellen (die Fläche in dem Rechteck), egal welcher Typ und egal wie ich die Farbe einstellen möchte, es passiert garnichts.
Ist das tatsächlich so, hat das einen bestimmten Grund, oder mache ich da etwas verkehrt?
Ich könnte mir natürlich die Linien und Rechtecke auch über die Gra...-Funktionen zusammenbasteln. Aber wenn es doch über die XbpStatic einfacher geht? Wenn es denn geht.
Jan
Ich habe damit 2 Probleme: Linien gehen anscheinend nur waagerecht. Senkrecht werden die in 3 unterschiedliche Abschnitte unterteilt, was ziemlich daneben aussieht. Und die Rechtecke lassen sich anscheinend farbig überhaupt nicht einstellen (die Fläche in dem Rechteck), egal welcher Typ und egal wie ich die Farbe einstellen möchte, es passiert garnichts.
Ist das tatsächlich so, hat das einen bestimmten Grund, oder mache ich da etwas verkehrt?
Ich könnte mir natürlich die Linien und Rechtecke auch über die Gra...-Funktionen zusammenbasteln. Aber wenn es doch über die XbpStatic einfacher geht? Wenn es denn geht.
Jan
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo Jan,
die senkrechten sind oft nicht wirklich senkrecht! War aber eigentlich ein Bug in einer älteren Version...
Gab es aber einen Workaround zu - suche mal in der Knowledgebase...
Hmm - die 4667 ist noch immer offen, aber nur für eine gepunktete Linie...
Ich glaube ich hatte mir mit einer Box statt einer Linie beholfen - und die halt entsprechend schmal gemacht...
Viele Grüße,
Martin
die senkrechten sind oft nicht wirklich senkrecht! War aber eigentlich ein Bug in einer älteren Version...
Gab es aber einen Workaround zu - suche mal in der Knowledgebase...
Hmm - die 4667 ist noch immer offen, aber nur für eine gepunktete Linie...
Ich glaube ich hatte mir mit einer Box statt einer Linie beholfen - und die halt entsprechend schmal gemacht...
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: XbpStatic und :type
hi,
C:\ALASKA\XPPW32\SOURCE\samples\basics\XBPSTYLE\Static.prg
hin das er meine Farben zeigt ... nur Schwarz, Dunkelgrau und Weiss ...
... aber ich weiss das man Transparent nehmen kann um ein Hintergrund
BMP in einem solchen Rahmen durchsheinen zu lassen.
gruss by OHR
Jimmy
hm ... eigendlich sollte es geht bei :Jan hat geschrieben: Und die Rechtecke lassen sich anscheinend farbig überhaupt nicht einstellen (die Fläche in dem Rechteck), egal welcher Typ und egal wie ich die Farbe einstellen möchte, es passiert garnichts.
aber ich bekomme es nicht mit dem SampleXBPSTATIC_TYPE_FGNDRECT Viereck, gefüllt mit Vordergrundfarbe
XBPSTATIC_TYPE_BGNDRECT Viereck, gefüllt mit Hintergrundfarbe
XBPSTATIC_TYPE_HALFTONERECT Rahmen, gefüllt mit Hintergrundfarbe des Desktop Fensters
C:\ALASKA\XPPW32\SOURCE\samples\basics\XBPSTYLE\Static.prg
hin das er meine Farben zeigt ... nur Schwarz, Dunkelgrau und Weiss ...
... aber ich weiss das man Transparent nehmen kann um ein Hintergrund
BMP in einem solchen Rahmen durchsheinen zu lassen.
gruss by OHR
Jimmy
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Hallo,
ich habe mal im XppFD nachgesehen und da ist es mir (auf-)eingefallen:
KEIN TYPE Eintrag = TEXT- Da funktioniert es wunderbar:
gibt blaue Schrift auf rotem Grund. Ein rotes Rechteck habe ich bei Bitmap erhalten, solange man keine angibt.
dieses sollte zwar FG= Blau sein, es ist und bleibt aber nur schwarz.
Die Querlinien sind wohl nicht zu gebrauchen. Wenn man GROUB_BOX wählt, kann man übrigens oben die Überschrift einfärben
Einfach experimentieren bis es passt. Dafür passt der XppFD ganz gut.
PS: wenn man außen einen schönen (raised oder pressed) Rahmen haben will, oder einfach eine andere Farbe, nimmt man 2 XbpStatic.
Der äußere Rahmen muss nur zuerst CREATEd werden und sollte die siblings clippen (andere Controls aussparen).
ich habe mal im XppFD nachgesehen und da ist es mir (auf-)eingefallen:
KEIN TYPE Eintrag = TEXT- Da funktioniert es wunderbar:
Code: Alles auswählen
::Static1 := XbpStatic():new( ::drawingArea, , {12,276}, {276,108}, { { XBP_PP_BGCLR, GRA_CLR_RED }, { XBP_PP_FGCLR, GRA_CLR_BLUE } } )
::Static1:caption := "Gruppe"
::Static1:clipSiblings := .T.
Code: Alles auswählen
::Static2 := XbpStatic():new( ::drawingArea, , {12,156}, {276,108}, { { XBP_PP_BGCLR, GRA_CLR_RED }, { XBP_PP_FGCLR, GRA_CLR_BLUE } } )
::Static2:caption := "Gruppe"
::Static2:clipSiblings := .T.
::Static2:type := XBPSTATIC_TYPE_FGNDRECT
Die Querlinien sind wohl nicht zu gebrauchen. Wenn man GROUB_BOX wählt, kann man übrigens oben die Überschrift einfärben
Einfach experimentieren bis es passt. Dafür passt der XppFD ganz gut.
PS: wenn man außen einen schönen (raised oder pressed) Rahmen haben will, oder einfach eine andere Farbe, nimmt man 2 XbpStatic.
Der äußere Rahmen muss nur zuerst CREATEd werden und sollte die siblings clippen (andere Controls aussparen).
Gruß
Hubert
Hubert
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo Jan,
noch mal zu Deinen Linien:
Wie ich bereits schrieb - bei mir geht das problemlos so:
Viele Grüße,
Martin
noch mal zu Deinen Linien:
Wie ich bereits schrieb - bei mir geht das problemlos so:
Code: Alles auswählen
::line2 := xbpStatic():new( ::drawingArea,, {90,396}, {1,51}, { { XBP_PP_FGCLR, GRA_CLR_BLACK } } )
::line2:caption := ""
::line2:clipSiblings := .T.
::line2:type := XBPSTATIC_TYPE_FGNDFRAME
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Jan
- Marvin
- Beiträge: 14658
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Hallo Hubert,
ja, genau das ist auch meine Beobachtung. Das innere Rechteck bleibt immer schwarz oder in den Systemfarben. Ein Static darin hat die Hintergrundfarbe, die dem Text-Type-Static mitgegeben wird. Ich hab deswegen schon mal versucht, einfach einen Text-Static ohne Text einzubauen in der inneren Größe des Rechteck-Static. Aber das kann ja auch nur ein Workaround sein, und nicht das, wie es eigentlich funktionieren sollte.
Hallo Martin,
ja, das funktioniert bei mir auch. Aber ich hätte doch gerne die Linienarten, die XbpStatic mir anbietet, also erhaben oder eingerückt. Dein Vorschlag gibt mir aber einfach nur einen Strich. Auch wenn ich daraus natürlich die gewünschte Linienart basteln könnte: Einfach den entsprechenden Static-Type zu nutzen ist doch wesentlich einfacher.
Ich überleg mal, ob ich Till frag, ob es da irgendeinen Bug gibt.
Jan
ja, genau das ist auch meine Beobachtung. Das innere Rechteck bleibt immer schwarz oder in den Systemfarben. Ein Static darin hat die Hintergrundfarbe, die dem Text-Type-Static mitgegeben wird. Ich hab deswegen schon mal versucht, einfach einen Text-Static ohne Text einzubauen in der inneren Größe des Rechteck-Static. Aber das kann ja auch nur ein Workaround sein, und nicht das, wie es eigentlich funktionieren sollte.
Hallo Martin,
ja, das funktioniert bei mir auch. Aber ich hätte doch gerne die Linienarten, die XbpStatic mir anbietet, also erhaben oder eingerückt. Dein Vorschlag gibt mir aber einfach nur einen Strich. Auch wenn ich daraus natürlich die gewünschte Linienart basteln könnte: Einfach den entsprechenden Static-Type zu nutzen ist doch wesentlich einfacher.
Ich überleg mal, ob ich Till frag, ob es da irgendeinen Bug gibt.
Jan
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo Jan,
nimm doch einfach die entsprechende Box als type - aber dann in der Breite 2...
Viele Grüße,
Martin
nimm doch einfach die entsprechende Box als type - aber dann in der Breite 2...
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Von VO her weiß ich noch, dass Windows da insgesamt sehr unflexibel wurde als auf 3D Darstellung umgestellt wurde (vorher war alles bunt, danach dominierten die Systemfarben.). Dennoch ist es sicher, dass eine Box mit erhöhter Linie oder eine eingedrückte im Rahmenbereich die Systemfarben braucht und im inneren Bereich nunmal keine Auswahl hat.Jan hat geschrieben:... einfach einen Text-Static ohne Text einzubauen in der inneren Größe des Rechteck-Static. Aber das kann ja auch nur ein Workaround sein, und nicht das, wie es eigentlich funktionieren sollte.
Die 2 Boxen übereinander zu legen wird ja z.B. auch bei Groupboxen mit SLE etc gemacht. Ob Workaraound oder nicht, was sollst hauptsache es geht. Wenn die Figur dann komplexer wird, muss man halt ein eigenes Bitmap benutzen und als Hintergrund verwenden.
Gruß
Hubert
Hubert
- Jan
- Marvin
- Beiträge: 14658
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Ich habe gerade eine Mail von Till bekommen.
Jan
Damit ist die Sache also geklärt. Wenn auch natürlich nicht so, wie ich mir das erhofft hatte.Till Warweg an Jan persönlich hat geschrieben:du hast Recht: die Dokumentation ist etwas unpräzise! Sowohl bei
den Box- als auch bei den Linientypen ist immer eine Systemfarbe
gemeint, wenn von Vorder- und Hintergrundfarbe gesprochen wird.
Du müßtest also ins Control Panel gehen, um die Farben zu
ändern . Die Static-Typen waren dazu gedacht, dem Entwickler
eine einfache Schnitstelle für den 3D-Look des Betriebsystems
an die Hand zu geben.
Für Linien und Rechtecke mit einstellbaren Farben würde ich lieber
den XBPSTATIC_TYPE_TEXT-Typ wählen und die Caption einfach
leer lassen. Über :SetColorBG() läßt sich die Farbe wählen. Ich
gehe einfach mal davon aus, dass Du auf den 3D-Look keinen Wert
legst, richtig? Wäre also ein Typ XBPSTATIC_TYPE_SIMPLELINE
oder XBPSTATIC_TYPE_SIMPLEFRAME eine gute Idee, um die
Sache für den Entwickler zu vereinfachen?
Auch bei den Linientypen hast Du einen Punkt: diese werden
tatsächlich falsch gemalt, wenn das Static-Objekt vertikal angeordnet
ist. Ich werden mir das ansehen!
Jan