Buttons mit Symbol

Moderator: Moderatoren

Antworten
Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
Beiträge: 1418
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

Buttons mit Symbol

Beitrag von Rudolf »

Hallo,
ich brauche Symbole auf DCPUSHBUTTONXP mit transparenten Hintergrund. Im Beispiel für BUTTONXP funktioniert das ganz gut, auch wenn die Qualität des Käfers durch das Scalieren sehr verliert. Nur bei meinen Buttons funktioniert das nicht, ich habe den grauen Hintergrund, also nicht transparent. Ich verwenden die selbe bug.gif wie Roger in seinem Beispiel. Soweit ich weiss muss der Hintergrund {192,192,192} sein damit es klappt, aber anscheinend nicht immer. Bei manchen bmp's funkioniert es wiederum.
Grüße
Rudolf





Code: Alles auswählen

DC_BitmapTransparentColor({192,192,192})

oConfig1 := DC_XbpPushButtonXPConfig():new()
oConfig1:bitmapOffset    := 5
oConfig1:gradientStep    := 3
oConfig1:gradientReverse := .t.
oConfig1:outline         := .f.
oConfig1:font            := "8.Arial"
oConfig1:mouseOverScale  := 1.02
oConfig1:outline         := .f.
oConfig1:Gradientstep    := 1.0
oConfig1:Gradientstyle   := 9
oConfig1:borderColor     := 0
oConfig1:shadowtype      := 0
oConfig1:textShadowColor := 0
oConfig1:textShadowOffset:= 2
oConfig1:radius          := BUTTON_RADIUS
oConfig1:gradientStep    := 1
oConfig1:gradientreverse := .f.
oConfig1:fgColor         := GraMakeRGBColor({0,0,102})
oConfig1:bgColor         := GraMakeRGBColor({185,209,239})
oConfig1:fgColorMouse    := GraMakeRGBColor({  0,  0,  0})
oConfig1:bgColorMouse    := GraMakeRGBColor({245,215,100})
oConfig1:fgColorClick    := GraMakeRGBColor({  0,  0,  0})
oConfig1:bgColorClick    := GraMakeRGBColor({245,215,100})
oConfig1:disabledfgcolor := GraMakeRGBColor({150,150,150})
oConfig1:disabledbgcolor := GraMakeRGBColor({215,215,215})
oConfig1:bordercolor     := GraMakeRGBColor({83,123,173})

@ 1,_1 DCPUSHBUTTONXP CAPTION "Test"     ACTION {||piep()}  CONFIG oConfig1 SIZE 90,28 BITMAP addpath(al_path,"img\BUG.gif")  ALIGN XBPALIGN_HCENTER+XBPALIGN_VCENTER

Dateianhänge
Zwischenablage02.jpg
Zwischenablage02.jpg (15.55 KiB) 7243 mal betrachtet
Zwischenablage01.jpg
Zwischenablage01.jpg (2.41 KiB) 7243 mal betrachtet
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9356
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Buttons mit Symbol

Beitrag von Tom »

Hallo, Rudolf.

Eigentlich verfügen GIFs über immanente Transparenz, falls diese gewählt ist. Ich weiß nicht genau, wie es sich in diesem Fall verhält, da ich keine GIFs verwende, aber bei nicht vorhandener Bitmaptransparenz kann man DC_BitmapTransparentColor(<naColor>) setzen, und bei Bitmaps wird dann diese (Hintergrund)Farbe ausgespart. Funktioniert jedenfalls bei BMPs einwandfrei, bei JPGs auch.
Herzlich,
Tom
Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
Beiträge: 1418
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

Re: Buttons mit Symbol

Beitrag von Rudolf »

Hallo Tom,
mich wundert nur dass das selbe gif bei Roger funktioniert und bei meinen Buttons nicht. Er steht den Transparenten Hintergrund genau wie ich. Ich versuche gerade auf Fonts statt Images umzusteigen, das funktioniert viel besser,vor allem beim Scalieren. Aber Wingdings und Webdings sind zu wenig, ich muss eigene TTF Fonts erstellen, habe aber noch kein Freeware Tool dazu gefunden. Ich habe einiges gefunden, z.B. http://icomoon.io/app/, hier kann man sich die svg Dateien runterladen, daraus könnte man mit den richtigen Tool wahrscheinlich Fonts mit Symbolen machen anstatt Images als Hintergrund zu verwenden.
Grüße
Rudolf
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9356
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Buttons mit Symbol

Beitrag von Tom »

Hallo, Rudolf.

In BUTTPICKER.PRG wird die Bitmaptransparenz auf RGB 192,192,192 gesetzt, Zeile 19. Wenn Du das auf 192,192,193 änderst, ist auch Dein GIF nicht mehr transparent. Das bedeutet umgekehrt, dass Du bei solchen Buttons für all Deine Bilder eine einheitliche Hintergrundfarbe wählen musst, die Du dann irgendwo in der App mit:

Code: Alles auswählen

DC_BitmapTransparentColor({R,G,B}) 
bekanntgibst. Dann sind alle Bilder - BMP, GIF, PNG, sogar JPG - an solchen Stellen auch transparent.
Herzlich,
Tom
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9356
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Buttons mit Symbol

Beitrag von Tom »

Ach so. Diese Einstellung wirkt sich dann aber auf alle Bilder aus, die Du mit eXpress++ irgendwo darstellst. :wink:
Herzlich,
Tom
Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
Beiträge: 1418
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

Re: Buttons mit Symbol

Beitrag von Rudolf »

Hall Tom,
aber ich habe es richtig gesetzt alles auf 192. Vielleicht liegt es an gradient oder anderem Parameter in der Konfiguration.

Grüße
Rudolf
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9356
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Buttons mit Symbol

Beitrag von Tom »

Hast Du das mal in einem kleinen Testprogramm versucht, das nur aus diesem Button besteht? Was antwortet DC_BitmapTransparentColor(), wenn Du es auf die Button-Action legst (es sollte "29409472" antworten, wenn RGB 192/192/192 gewählt ist)?

Ich verwende eine ganz ähnliche Konfiguration für ButtonXP und habe keine Probleme mit Transparenzen.
Herzlich,
Tom
Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
Beiträge: 1418
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

Re: Buttons mit Symbol

Beitrag von Rudolf »

Hallo Tom,
danke für den Tip, werde es in einem extra Programm testen.
Für meine Symbole in Fonts habe ich die perfekte Lösung, ich importiere in CorelDraw ein Symbol und speichere es in eine eigene Truetype Schrift, damit habe ich kein Probleme mehr mit Transparenz und Skalierung. Zumindest für meine Symbolbuttons ist es die optimale Lösung. Und in Netz gibt es Plattformen wo an schon einiges an Vorlagen als SVG zum Downloaden findet ,z.B: http://icomoon.io
Grüße
Rudolf
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9356
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Buttons mit Symbol

Beitrag von Tom »

Hallo, Rudolf.

Und ich habe mehrere Icon-Bibliotheken zusammengekauft, die insgesamt mehrere tausend Bildchen enthalten, die ich als DLL (gruppiert und in verschiedenen Auflösungen) mit der Software ausliefere (natürlich die entsprechenden Lizenzbedingungen beachtend), in der außerdem Dutzende Icons enthalten sind, die wir von unserer Agentur haben erzeugen lassen. Daraus lade ich nicht nur die Icons für sämtliche Schaltflächen, sondern auch solche, die ich anderswo - etwa in Browses, auch per Ownerdrawing - anzeige. Außerdem können die Benutzer über einen eigenen Iconbrowser ihre Symbole für eigene Zwecke wählen, von der Beschriftung für Haftnotizen beginnend und längst nicht endend bei der Konfiguration von Buttonleisten. Wer will, kann sich auch Sammlungen von Lieblingsicons zusammenstellen, Icons beschriften oder mit Textnotizen versehen. Damit ist fast alles, was die Applikation an grafischen Elementen der Kategorie "Bildchen" benötigt, zentralisiert, äußerst leicht wartbar und von jedem Installationszwang unabhängig. Den Ansatz mit den Schriftarten findet ich aber auch originell.
Herzlich,
Tom
Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
Beiträge: 1418
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

Re: Buttons mit Symbol

Beitrag von Rudolf »

Hallo Tom,
hast Du keine Probleme mit der Skalierung ? Ich muss die Größe oft anpassen, beim Runterscalieren schauen die Icons dann unmöglich aus.
Grüße
Rudolf
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9356
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Buttons mit Symbol

Beitrag von Tom »

Hallo, Rudolf.

Die Icons sind in den Größen 16x16, 32x32, 48x48 und 256x256 eingebunden, die wähle/lade ich dann abhängig von der Skalierung. Außerdem ist jedes Icon zusätzlich als PNG enthalten, das explizit gewählt werden kann. Beim Herunterskalieren habe ich mit 48x48 die besten Erfahrungen gesammelt, aber Du hast recht, wirklich bildschön sieht das selten aus - da bist Du mit Deinem Schriftartenmodell vorne. Bei wesentlichen Elementen achte ich allerdings auf die passendste Vorlage, und anderswo - beispielsweise beim Ownerdrawing in Browses - fällt es praktisch nicht auf.

Tatsächlich kann die Rendering-Engine von Xbase++ nicht vernünftig skalieren. Das muss man einfach wissen.
Herzlich,
Tom
Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
Beiträge: 1418
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

Re: Buttons mit Symbol

Beitrag von Rudolf »

Hallo Tom,
danke für die Infos, ich werde dann je nach Anforderung Bitmap oder Schrift verwenden.
Grüße
Rudolf
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: Buttons mit Symbol

Beitrag von AUGE_OHR »

Rudolf hat geschrieben:Ich verwenden die selbe bug.gif wie Roger
hm ... bin mir nicht sicher welches Beispiel du damit meinst aber :

Frage : hast du irgend ein anderes GIF aus dem Verzeichnis ausprobiert ? ... die sind doch alle nur 8 bit !
Rudolf hat geschrieben:Soweit ich weiss muss der Hintergrund {192,192,192} sein damit es klappt, aber anscheinend nicht immer. Bei manchen bmp's funkioniert es wiederum.
wie "lädst" du die Bitmaps ? mit DC_GetBitMap() ?

die "Farbe" {192,192,192} wird nur dann verwendet wenn das BMP / PNG / GIF "selbst" keine Transparenzinformationen enthält und o:transparentClr dann GRA_CLR_INVALID entspricht.

dies triff IHMO für ältere Formate von BMP / PNG / GIF zu welche noch keine Transparenz haben.

wer mehr zu "Transparenz" wissen will sollte sich mal diesen Thread ansehen
http://www.xbaseforum.de/viewtopic.php?f=23&t=4464
gruss by OHR
Jimmy
Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
Beiträge: 1418
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

Re: Buttons mit Symbol

Beitrag von Rudolf »

Hallo Jimmy,
ich erstell die bmp icons mit Corel Draw und setze den Hintergrund hier auf 192,192,192. Hier werden die Farben aber anscheinend beim Exportieren verändert, mit Photopaint funktioniert es aber. Liegt also bei meinen Buttons am Bitmap das die richtige Hintergrundfarbe hat.
Grüße
Rudolf
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9356
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Buttons mit Symbol

Beitrag von Tom »

Hallo, Rudolf.

Wenn Du in CorelDraw mit dem hauseigenen Format arbeitest und dann in einem anderen speicherst, findet häufig eine Konvertierung der Farbpalette statt, außerdem werden Layer zusammengefasst u.v.a.m. Dadurch kann es zu Verschiebungen kommen. Du musst erst im Fremdformat (PNG, JPG o.ä.) speichern und dann diese Datei bearbeiten. Das Problem hatte ich auch mal.
Herzlich,
Tom
Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
Beiträge: 1418
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

Re: Buttons mit Symbol

Beitrag von Rudolf »

Hallo Tom,
momentan mache ich die Buttons mit PhotoPaint, damit funktioniert es einwandfrei, kann die Corel Dateien problemlos reinkopieren, die Farben bleiben dann richtig erhalten. Ich hole mir die Icons überigends als svg Dateien von icomoon.io, mit denen mache ich auch meine spezielle Schrift. Bin hier auch über ein paar lästige Dinge gestolpert, z.B. muss man beim Export als ttf in Corel die richtige Postion auf der Seite herausfinden, man braucht ein Zusatzprogramm um die Schriften zumindest temporär in Windwos zu laden, sonst muss man immer neu booten etc. Aber bin momentan sehr zufrieden mit den Ergebnissen, die Bitmaps für Buttons brauche ich dann nur mehr sehr selten.
Grüße
Rudolf
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: Buttons mit Symbol

Beitrag von AUGE_OHR »

Rudolf hat geschrieben:... 192,192,192.
... die richtige Hintergrundfarbe hat.
NO NO NO ! das ist keine Transparenz !!! das ist Rogers (16bit) "workaround" !!!

die Windows API hat

Code: Alles auswählen

#define CLR_NONE                0xFFFFFFFF
und "das" ist die richtige Transparenz ! ( und nicht XBPSYSCLR_TRANSPARENT )
gruss by OHR
Jimmy
Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
Beiträge: 1418
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

Re: Buttons mit Symbol

Beitrag von Rudolf »

Hallo Jimmy,
da ich mit eXpress++ arbeite ist es für mich die richtige Transparenz, funktioniert sehr gut sein workaround, z.B. auch auf Buttuns mit Gradient Hintergrund
Grüße
Rudolf
Antworten