DCPUSHBUTTON mit Bitmap Caption

Moderator: Moderatoren

Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21192
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

DCPUSHBUTTON mit Bitmap Caption

Beitrag von Manfred »

Hi,

ich habe DCPUSHBUTTON, die als Caption 7755 haben. Diese Türe passt jetzt irgendwie von der Höhe nicht 100%ig auf den Button (ist zu hoch). Das sieht blöde aus hat man mir gestern beim Treffen in OS dezent direkt ins Gesicht gesagt. Gibt es eine Möglichkeit das Bitmap der Höhe des Button abzupassen? Scalebitmap passt alles an und zieht mir das Teil wie Gummi. Das ist also nicht die ideale Lösung. Ich möchte schon gerne einen länglichen Button habe, der mitten drin die Türe hat. Aber dann halt nur so hoch, wie der Button auch ist.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2935
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: DCPUSHBUTTON mit Bitmap Caption

Beitrag von Wolfgang Ciriack »

Hallo Manfred,
nimm mal DCPUSHBUTTONXP, da kannst du das Bitmap mit den ALIGN Optionen und einem OFFSET "verschieben",
außerdem kannst du auch Text und Bitmap zusammenpacken.
Gut ist in dem Zusammenhang das Beispielprogramm BUTTPICKER unter samples\buttonxp, das erzeugt dir gleich den benötigten Code.
Viele Grüße
Wolfgang
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: DCPUSHBUTTON mit Bitmap Caption

Beitrag von AUGE_OHR »

hi,

wie wäre DCPUSHBUTTONXP ... da gibt es doch die Optionen

Code: Alles auswählen

                [BITMAP <xBitMap>                                           ;
                  [ALIGN <nBMAlign>] [OFFSET <nBMOffset>] [SCALE <nBmpScale>]] ;
gruss by OHR
Jimmy
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21192
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: DCPUSHBUTTON mit Bitmap Caption

Beitrag von Manfred »

Hi Wolfgang,

ich meine ich hätte das schonmal damit versucht, aber irgendwie sahen die Buttons dann recht merkwürdig aus. Aber ich kann es ja nochmal versuchen.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2935
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: DCPUSHBUTTON mit Bitmap Caption

Beitrag von Wolfgang Ciriack »

Hallo Manfred,
am Besten legst du einmal ein "Schema" fest, wie deine Buttons aussehen sollen und setzt dann dieses global für alle bisherigen DCPUSHBUTTON.

Code: Alles auswählen

oConfig1 := DC_XbpPushButtonXPConfig():new()
oConfig1:bitmapOffset := 3
oConfig1:captionOffset := 0
oConfig1:fgColorMouse := GraMakeRGBColor({0,0,0})
oConfig1:bgColorMouse :=  GraMakeRGBColor({255,204,153})
oConfig1:fgColor := GraMakeRGBColor({0,0,0})
oConfig1:bgColor := GraMakeRGBColor({255,255,255})
...... usw.

DC_PushButtonStyle( oConfig1 )
Dasselbe kannst du auch für Popup- und Express-Button festlegen:

Code: Alles auswählen

DC_PopupButtonStyle( oConfig2 )
DC_ExpressButtonStyle( oConfig3 )
Der Vorteil ist, das deine Buttons immer gleich aussehen, egal ob WinXP, Win7, Manifestdatei etc.
Viele Grüße
Wolfgang
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21192
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: DCPUSHBUTTON mit Bitmap Caption

Beitrag von Manfred »

aaahhh,

interessant. Danke für den Hinweis.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: DCPUSHBUTTON mit Bitmap Caption

Beitrag von brandelh »

Hallo Manfred,

eventuell passt auch das Bitmap einfach nicht, wie wäre es mit eigenem Bitmap und einbinden über Resource (ARC-Datei)

;-)
Gruß
Hubert
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9361
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: DCPUSHBUTTON mit Bitmap Caption

Beitrag von Tom »

Ich würde ohnehin empfehlen, anstelle von Bitmaps Icons einzubinden. Die skalieren sauberer, sind quasi automatisch transparent und werden auch bei "Legacy Buttons" seit Build 257 unterstützt.
Herzlich,
Tom
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: DCPUSHBUTTON mit Bitmap Caption

Beitrag von brandelh »

Tom hat geschrieben:Die skalieren sauberer, sind quasi automatisch transparent und werden auch bei "Legacy Buttons" seit Build 257 unterstützt.
Hallo Tom,
auch bei normalen XbpButtons oder nur von Express ?
Gruß
Hubert
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21192
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: DCPUSHBUTTON mit Bitmap Caption

Beitrag von Manfred »

Naja,

ich habe einfach nur auf die Schnelle die Möglichkeit genutzt Caption 7755. Und das war es dann.

Wie würde dann ein ICON eingebunden werden? Ich kann jetzt keinen Befehl dazu erkennen.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9361
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: DCPUSHBUTTON mit Bitmap Caption

Beitrag von Tom »

@Hubert: Das geht nur mit Ownerdrawing, also in diesem Fall DCPUSHBUTTONXP.

@Manfred: Einfach ein Icon laden und dieses Objekt statt der Bitmap-Ressource angeben, feddisch.
Herzlich,
Tom
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: DCPUSHBUTTON mit Bitmap Caption

Beitrag von brandelh »

Manfred hat geschrieben: Wie würde dann ein ICON eingebunden werden? Ich kann jetzt keinen Befehl dazu erkennen.
Guckst du in Handbuch ... unter
"Deklarieren von Resourcen - Die ARC-Datei"

Code: Alles auswählen

   BITMAP     110 = "Logo.bmp"        // Bitmap 
   ICON       120 = "Folder.ico"      // Icon 
   POINTER    130 = "Arrow.ptr"       // Pointer 
   CHARACTER  200 = "Question."       // String resource 
Offensichtlich wurde in Express++ etwa solches eingebaut:

Code: Alles auswählen

   
BITMAP 7755 = "BigDoor.bmp"        // Bitmap 
Gruß
Hubert
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9361
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: DCPUSHBUTTON mit Bitmap Caption

Beitrag von Tom »

Icons kann man auch zur Laufzeit - irgendwoher - laden:

Code: Alles auswählen

oIcon := XbpIcon():New():Create()
oIcon:Load('MeineIconDll.DLL',<nIconIndex>,24,24) // Lädt aus der DLL Icon No. <nIconIndex> in der Größe 24 x 24
* aus der Ressourcendatei:
oIcon:Load(,<nIconRessourcenNummer>,24,24) // dito, aber aus der .RES
Und dann bei DCPUSHBUTTONXP einfach "oIcon" als Bild angeben. Variante 1 geht mit EXEn, DLLs usw. Wir liefern beispielsweise eine riesige Icon-Bibliothek als DLL aus, aus der dann auch Symbole für diverse Sachen gewählt werden können.
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21192
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: DCPUSHBUTTON mit Bitmap Caption

Beitrag von Manfred »

Ich meinte auch nur, wie man express++ beibiegt, das es kein Bitmap, sondern ein icon ist. Wie die eingebunden werden ist mir schon geläufig.

@Tom,

also einfach nur statt der Bitmap Nummer angeben? Werde ich mal versuchen.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9361
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: DCPUSHBUTTON mit Bitmap Caption

Beitrag von Tom »

eXpress++ erkennt das automatisch. Bei einer Ressource ohnehin, weil da die Art der Ressource bestimmt, worum es sich handelt. Wie gesagt: Build 257, wenn ich mich recht erinnere. Kann aber sein, dass es schon mit 256 geht.
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21192
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: DCPUSHBUTTON mit Bitmap Caption

Beitrag von Manfred »

Tatsächloch. =D>

Jetzt habe ich das Icon drin, aber es ist immer noch zu hoch.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9361
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: DCPUSHBUTTON mit Bitmap Caption

Beitrag von Tom »

Wie erzeugst Du den Pushbutton? Bei einem "Legacy"-DCPUSHBUTTON solltest Du wie Wolfgang oben beschrieben hat vorgehen, bei einem DCPUSHBUTTONXP gibt es (wie in der Konfig-Klasse) die Klauseln "OFFSET" für die horizontale (!) Bitmapposition und "ALIGN" für Text-/Bitmappositionierung. Über die Größe entscheiden die Angaben beim Ladevorgang des Icons.

Edit: Schau Dir mal den "BUTTPICKER" in ..\Samples\Buttonxp an. Der erzeugt Dir auch gleich den Code für den Button, wenn Du willst.
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21192
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: DCPUSHBUTTON mit Bitmap Caption

Beitrag von Manfred »

Hm,

dann bin ich wohl im falschen Film. Ich habe das in der .CH Datei drin als #Define.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9361
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: DCPUSHBUTTON mit Bitmap Caption

Beitrag von Tom »

Geht doch auch. Die Definition verpasst der Ressource doch lediglich einen Identifier, den Du dann verwenden kannst - statt der Nummer beispielsweise MANFREDS_ICON, was wiederum auf c:\Manfred\MeinIcon.ico verweist (oder so - in der ARC). Gibst Du diese Identifikation an, erfolgt das implizite Laden des Icons in der Buttonklasse. Du kannst dieses Icon aber auch als Klassenobjekt erzeugen und dort die Größe angeben, schließlich liegen Icons zumeist in verschiedenen Größen vor, wenn man nicht explizit eine Größe in der ICO erzeugt hat. Aber auch dann kann man das Icon in einer anderen Größe laden. Das funktioniert aber nur, wenn Du dann das Klassenobjekt als Bild im Button angibst - und nicht mehr die ID aus der Ressource.
Herzlich,
Tom
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16516
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: DCPUSHBUTTON mit Bitmap Caption

Beitrag von Martin Altmann »

Moin,
was Manfred will, ist ein Autosize des Icons auf dem Pushbutton, so dass es an der Stelle mit dem wenigsten Platz (in seinem Fall die Höhe) den maximal möglichen Wert hat, um gerade noch in den Pushbutton zu passen.
Die Grafik soll gleichmässig skaliert werden - nicht verzerrt.

Viele Grüße,
Martin
:grommit:
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.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9361
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: DCPUSHBUTTON mit Bitmap Caption

Beitrag von Tom »

@Martin: Da Manfred auch die Hoheit über die Höhe der Buttons hat, kann er bei Icons über die Ladegröße festlegen, welche Höhe sie einnehmen werden. Mit den ALIGN-Klauseln der Buttons kann er sie zusätzlich zentrieren. Und etwas wie "Skalierung" gibt es bei Bitmaps nicht wirklich. :wink:
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21192
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: DCPUSHBUTTON mit Bitmap Caption

Beitrag von Manfred »

Hm,

aber wo lade ich die denn? Das habe ich noch nicht verstanden.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9361
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: DCPUSHBUTTON mit Bitmap Caption

Beitrag von Tom »

Irgendwo. Beispielsweise im Dialog, direkt vor der Erzeugung des Pushbuttons:

Code: Alles auswählen

oMyIcon:XbpIcon():New():Create()
oMyIcon:Load(...)

@ 1,1 DCPUSHBUTTONXP CAPTION 'Test' BITMAP oMyIcon ....
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21192
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: DCPUSHBUTTON mit Bitmap Caption

Beitrag von Manfred »

Ach so,

das bedeutet aber, dass ich das ICON getrennt mitliefern muß? Ich habe das jetzt alles in der EXE mit drin.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16516
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: DCPUSHBUTTON mit Bitmap Caption

Beitrag von Martin Altmann »

Moin,
Tom hat geschrieben:Und etwas wie "Skalierung" gibt es bei Bitmaps nicht wirklich. :wink:
nun ja - bei XClass++ gibt es die Methode :BitmapAutosize( .t. ) bei den Pushbuttons() - die macht dort das gewünschte.

Viele Grüße,
Martin
:grommit:
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.
Antworten