XbpPushButton und Grafiken

Klassen, Objekte, Methoden, Instanzen

Moderator: Moderatoren

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

XbpPushButton und Grafiken

Beitrag von Manfred »

Hi,

ich bin mir jetzt nicht sicher, ob das schon mal ein Thema hier war, aber ich finde nichts dazu.

Ist es kompliziert statt Text ein Icon, auf einen Pushbutton zu legen? Beispiel das Systemicon für den Drucker? Nur bevor ich jetzt anfang zu wüten und feststellen muß, dass es für den Anfang doch zu schwer ist. Dann nehme ich lieber Text, bis ich soweit bin das zu kapieren....

Ich habe mir das Beispiel von Olaf einmal angesehen, aber das verstehe ich so schnell nicht.
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
Jan
Marvin
Marvin
Beiträge: 14655
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Beitrag von Jan »

Hallo Manfred,

das geht natürlich über OwnerDrawing (Du erinnerst Dich an mein Beispiel von der XUG?). Also nicht wirklich mal eben schnell gemacht. Den Code kann ich Dir aber rübergeben, wenn Du Dich da rantrauen möchtest.

Olaf geht da in seinem Beispiel einen komplett anderen Weg. Der hat sein Klasse von XbpStatic abgeleitet, nicht von XbpPushButton. Und die dann auch noch extrem vielfältig gestaltet als Flat oder 3D, mit Farben, Text, Bildchen, etc. Dadurch ist das natürlich sehr umfangreich.

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

Beitrag von Manfred »

Hi Jan,

danke hat sich erledigt. Vielleicht nächstes Jahr...... :?
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: 16517
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hallo Manfred,
eigentlich musst Du doch nur die Ressource-ID Deines in der Ressourcedatei definierten Icons als Caption angeben...

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
AUGE_OHR
Marvin
Marvin
Beiträge: 12909
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Beitrag von AUGE_OHR »

hi,
Martin Altmann hat geschrieben: eigentlich musst Du doch nur die Ressource-ID Deines in der Ressourcedatei definierten Icons als Caption angeben...
... und wenn *.ICO nicht geht probiere mal *.BMP oder ein XbpBitmap()
Object. Das kannst du dann auch "resize"n (BMP2BMP) um die volle
Fläche des XbpPushbutton zu nutzen.
gruss by OHR
Jimmy
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21198
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Hi,

also doch so einfach wie es im Handbuch klingt.


Danke, werde ich mal probieren.
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
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21198
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Hm,

alles schön und gut, aber was muß denn dabei berücksichtigt werden? Im Handbuch steht ja recht viel darüber. Es erscheint kein Button auf dem Bildschirm.
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: 16517
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hallo Manfred,
was heißt was muß denn dabei berücksichtigt werden - hängt davon ab, was Du willst!
Ist die Grafik in Deiner Ressourcendatei, dann reicht die Angabe der Ressource-ID als Caption.
Ist es eine externe Grafik, dann muss sie vorher geladen werden.
Zeige doch mal Deinen source...

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
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21198
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Hi Martin,

also ich gehe mal davon aus, dass es drin ist.Ich habe alles angegeben und compiliert. Muß ich denn noch mehr angeben? Die Größe des Icons, oder so?

Code: Alles auswählen

oVt:oDruckerButton := pushbutton():new(oVt:oRahmenOben,,{620,oVt:oRahmenOben:currentSize()[2]-nYStatic},{80,20})
oVt:oDruckerButton:caption  := ICON_DRUCKER
oVt:oDruckerButton:create()
oVt:oDruckerButton:activate := {|| oVt:sucheDrucker("bkdrucker", oVt:oDialog)}
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!!
Günter Beyes
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 315
Registriert: Mo, 16. Okt 2006 13:04
Wohnort: Region Stuttgart

Beitrag von Günter Beyes »

Hallo Manfred,

Code: Alles auswählen

oVt:oDruckerButton:caption  := ICON_DRUCKER 
verwende statt einer Icon-Ressource eine Bitmap-Ressource.
Icons werden hier von Haus aus leider nicht unterstützt...

Viele Grüße,
Günter
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Beitrag von Rolf Ramacher »

Hi Manfred,

hier habe ich schon etwas dazu geschrieben. Schau's dir mal an.Bei
"programmierung allgemein" - Thema.
xbpbitmap() - load()
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21198
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Hi,

also es klappt nicht.

Code: Alles auswählen

//        This is a standard win32 exe.
//
//////////////////////////////////////////////////////////////////////

#include "common.ch"
#include "icon.ch"
#include "Xbp.ch"
#include "Appevent.ch"
/* Overloaded AppSys which does nothing
 */
PROCEDURE AppSys

   /* use the ANSI charset by default */
   SET CHARSET TO ANSI

   /* $TODO: create your application container here */
RETURN

/* This is our main procedure
 */
PROCEDURE Main
          LOCAL oXbp   := NIL
          LOCAL mp1    := 0
          LOCAL mp2    := 0
          LOCAL nEvent := 0
          LOCAL oDialog
          LOCAL oButton

          oDialog := XbpDialog():new(,, {550,530}, {300,200})
          oDialog:create()

          oButton := XbpPushButton():new(oDialog,, {5,5},{50,20})
          oButton:caption := ICON_SUCHEN
          oButton:create()

          DO WHILE nEvent <> xbeP_Close
             nEvent := AppEvent( @mp1, @mp2, @oXbp )
             oXbp:handleEvent( nEvent, mp1, mp2 )
          ENDDO
          RETURN
Der Button erscheint nicht. Was mache ich falsch?

icon.arc

Code: Alles auswählen

#include  "icon.ch"

ICON
   ICON_SUCHEN  =  "fernglas.ico"
icon.ch

Code: Alles auswählen

#define  ICON_SUCHEN    1
Einmal als Icon und einmal als Bitmap.
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: 16517
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hallo Manfred,
nicht oDialog, sondern die oDialog:drawingarea als Parent!!

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
AUGE_OHR
Marvin
Marvin
Beiträge: 12909
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Beitrag von AUGE_OHR »

Hi,
Manfred hat geschrieben:
also es klappt nicht.

icon.arc

Code: Alles auswählen

#include  "icon.ch"

ICON
   ICON_SUCHEN  =  "fernglas.ico"
icon.ch

Code: Alles auswählen

#define  ICON_SUCHEN    1
Einmal als Icon und einmal als Bitmap.
wo hast du den in der ICON.ARC den "Begriff" Bitmap ?


... man kann kein *.ICO als Caption auf einen Xbppushbutton laden
sondern nur *.BMP !
gruss by OHR
Jimmy
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21198
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

@Martin,

habe ich gemacht, klappt trotzdem nicht

@Jimmy,

in dem Beispiel nicht, aber in einem Test, deshalb habe ich ja unten geschrieben, das beides nicht klappt.

Langsam beiß ich mir 'ne Kerbe.
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: 16517
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hmm,
aber die Ressourcedatei hast Du schon mit Deiner EXE zusammen gelinkt, oder?

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
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21198
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Bevor ich jetzt hier Unsinn erzähle:

Das ist doch mit ARC Dateiname?

Zumindest habe ich das bisher immer so gemacht.

Ahhhh, MOment mal eben...

Edit:

Nee, alles klar. Sollte alles stimmen. Steht in der Projektdatei auch 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: 16517
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hallo Manfred,
und wo? Unter dem Abschnitt programname.exe?

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
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21198
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Code: Alles auswählen

[PROJECT]
    VERSION       = 2.0
    OPENFILES     = main.PRG
    Project.xpj

[Project.xpj]
    icon.EXE

[icon.EXE]
    COMPILE       = xpp
    COMPILE_FLAGS = /q /w /wi /wl /wu /ga
    DEBUG         = yes
    GUI           = yes
    LINKER        = alink
    LINK_FLAGS    = 
    RC_COMPILE    = arc
    RC_FLAGS      = /v
// $START-AUTODEPEND
    icon.res
    icon.ch
    main.obj
// $STOP-AUTODEPEND
    main.PRG

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
Jan
Marvin
Marvin
Beiträge: 14655
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Beitrag von Jan »

Manfred,

da sehe ich den arc-Compiler, aber nicht die Datei selber drin stehen...

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

Beitrag von Manfred »

Stop,

wenn ich ein Icon einbinde, das oben links in der Kopfzeile als Programm Icon erscheinen soll, dann geht das doch genauso, oder nicht?
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
Jan
Marvin
Marvin
Beiträge: 14655
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Beitrag von Jan »

Wie meinst Du das jetzt genau? jede Grafik, die Du in Dein programm einbinden möchtest, muß in der arc drinstzehen. Mit einer Recource-ID. Und diese ID kannst Du dann in Deinem Programm aufrufen und damit die Grafik einbinden.

Aber Du mußt die arc einbinden. Unter VX geht das genau so wie mit jeder anderen prg auch.

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

Beitrag von Manfred »

Ich meine das so, dass ich in den anderen Programmen ein Programmicon einbinde, aber nirgendwo explizit eine .Arc Datei angebe. (soweit ich weiß)

Edit:

nagut, in anderen habe ich es stehen. Aber ich habe es jetzt mit eingebunden und es klappt trotzdem nicht. In einer Datei mit Programmicon habe ich die Arc Datei nicht eingebunden, aber das Icon erscheint trotzdem oben links.
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: 16517
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hallo Manfred,
also ich habe in meiner Programm-Projektdatei nur die .RES-Datei stehen. Für das Erzeugen der .RES-Datei habe ich eine eigene Projektdatei, die ich manuell aufrufe, wann immer ich an der Ressourcedatei was geändert habe - klappt.
Wie aktuell ist denn Deine .RES-Datei?

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
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21198
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Hi Martin,

ich habe gerade erst das gesamte Projekt zum Testen gebaut. Also alles frisch.
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!!
Antworten