Grafik (logo.jpg) in einem Window (TGadget) anzeigen??

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

 

Pyrael

Betreff: Grafik (logo.jpg) in einem Window (TGadget) anzeigen??

BeitragMi, Jun 29, 2011 13:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Aloha zusammen,

ich bin absoluter Neuanfänger in Blitzmaxh und habe nun meine ersten Gehversuche in Blitzmax machen können.
Nutzen möchte/werde ich Blitzmax "nur" um mir unter Microsoft-Windows kleinere Tools zu schreiben, die mir den Arbeitsalltag erleichtern sollen.
Nun habe ich es bereits geschafft via TGadget ein Fenster zu erstellen und darin einige Textfelder und Buttons anzeigen zu lassen.

Nun möchte ich jedoch in dem Fenster am unteren Rand eine kleines Bild (Grafik/Firmenlogo) anzeigen lassen und finde leider keinen "einfachen" Befehl.
Zwar habe ich einen Hinweis auf "canvas" bekommen, jedoch steht in der Dokumentation, das dies eigentlich für richtige" Grafikausgabe gedacht sei und man für ein reines anzeigen lassen einer Grafik was anderes nutzen soll - aber leider steht in der Dokumentation nicht was man nutzen kann.

kann mir da jemand helfen??

PS: es soll übrigens in einem Fenster (640 x 480) eine grafik von 253x113 angezeigt werden. - also zusätzlich zu den textfeldern und buttons und einem HTML-view


danke!!

mpmxyz

BeitragMi, Jun 29, 2011 13:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Nimm ein "Panel" und setze das Bild über "SetPanelPixmap" hinein! Smile
Wenn du ein TImage-Objekt hast, kommst du über LockImage an das entsprechende TPixmap-Objekt.
mfG
mpmxyz
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer

Midimaster

BeitragMi, Jun 29, 2011 13:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier hilft Dir das TPanel-Gadget:

BlitzMax: [AUSKLAPPEN]
ButtonBild:TPixmap = LoadPixmapPNG("logo.png")
Button:TGadget = CreatePanel(...)
SetGadgetPixmap Button, ButtonBild, PANELPIXMAP_CENTER


alerdings erwartet es eine TPixMap und nicht eine TImage-Bild. Deshalb auch die LoadPixMapPNG()-Funktion!
 

jsp

BeitragMi, Jun 29, 2011 16:39
Antworten mit Zitat
Benutzer-Profile anzeigen
SetGadgetPixmap ist wohl das Richtige, ob das Pixmap dann auf einem Button oder einem Panel gesetzt wird ist wahrscheinlich nur von dem Erscheinungsbild abhängig.
Beim Panel hat man den Vorteil, das es auch Container für weitere Gadgets sein kann und das sich das Betriebsystem darum kümmert wenn das Bild neu gezeichnet werden muss (Panel wie Button, im Gegensatz zum Canvas, wo du das selber machen musst).
Wenn du einen Button benutzt ist normalerweise ein Rand um das Bild, der Highlighted wenn man mit der Maus drüberfährt, das kann manchmal gewollt sein, machmal stört das. Beim Panel kannst du zwischen randlos, rein- oder rausgedrückt unterscheiden.
Bei Button und auch Panel kann man abfragen, ob drauf geclickt wurde (Button etwas einfacher...) und somit z.B. zur HomePage springen.
Logic Gui Professional a Gui Designer for MaxGui
 

Pyrael

BeitragMi, Jun 29, 2011 16:47
Antworten mit Zitat
Benutzer-Profile anzeigen
*Ufff*

ok wie gesagt - ich bin absoluter Neuling!!

also wirklich verstanden hab ich das jetzt zwar noch nicht alles, aber ich habe es nun mal hinzugefügt und es funzt....!!!

klasse, nun muss ich nur noch genau verstehen, was der da macht.........nunja ein Schritt nach dem anderen....sieht aber klasse aus...danke dafür!!!
 

Pyrael

BeitragMi, Jun 29, 2011 17:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Pyrael hat Folgendes geschrieben:
*Ufff*

ok wie gesagt - ich bin absoluter Neuling!!

also wirklich verstanden hab ich das jetzt zwar noch nicht alles, aber ich habe es nun mal hinzugefügt und es funzt....!!!

klasse, nun muss ich nur noch genau verstehen, was der da macht.........nunja ein Schritt nach dem anderen....sieht aber klasse aus...danke dafür!!!



NACHTRAG: *uahhh* komisch.......das geht ja nur solange die JPG/PNG dtei im Verzeichnis liegt. Kann mann die Grafik nicht "fest" in der EXE verankern???
 

jsp

BeitragMi, Jun 29, 2011 17:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Fest 'verankern' geht mit IncBin.

edit: hier mit einem Bild in einem Unterordner der gfx heisst, falls das nicht klar ist

Code: [AUSKLAPPEN]
SuperStrict

Import MaxGui.Drivers

'IncBin
Incbin "gfx/DeinBild.png

Local Window1:TGadget = CreateWindow:TGadget("Window1",203,177,632,426,Null,WINDOW_TITLEBAR|WINDOW_RESIZABLE |WINDOW_STATUS |WINDOW_CLIENTCOORDS )
   Local DasPanel:TGadget = CreatePanel:TGadget(200,143,253,113,Window1:TGadget,Null,"")
      Local Pixmap_DasPanel:TPixmap = LoadPixmapPNG:TPixmap ( "IncBin::gfx/DeinBild.png" )
      SetPanelPixmap( DasPanel:TGadget , Pixmap_DasPanel:TPixmap ,PANELPIXMAP_CENTER )

Repeat
   WaitEvent()
   Select EventID()
      Case EVENT_WINDOWCLOSE
         Select EventSource()
            Case Window1   Window1_WC( Window1:TGadget )
         End Select

   End Select
Forever

Function Window1_WC( Window:TGadget )
   DebugLog "Window Window1 wants to be closed"
   End
End Function
Logic Gui Professional a Gui Designer for MaxGui
 

Pyrael

BeitragMi, Jun 29, 2011 21:24
Antworten mit Zitat
Benutzer-Profile anzeigen
ja das nenne ich ja megasupport!!

es funktioniert...und ich habs sogar im Prinzip (glaub ich) verstanden Smile

vielen Dank!!!

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group