Verliere mein Bild... [Gelöst]

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
winduff
Beiträge: 879
Registriert: 10.02.2006 21:05
Wohnort: Gießen
Kontaktdaten:

Verliere mein Bild... [Gelöst]

Beitrag von winduff »

Hey ;-)

Folgendes Problem: Mein Programm erstellt ein Bild, (drawimage()).

Nun, wenn ich das Fenster minimiere, ein anderes drüber ziehe o.Ä. verschwindet das Bild, bis ich es nochmal "malen" lasse - mit drawimage...

Wie kann ich das Ändern?!

Liebe Grüße
Chris
Zuletzt geändert von winduff am 02.05.2006 14:03, insgesamt 1-mal geändert.
Bild
AND51 hat geschrieben:...und ich würde dein Programm aus Wut zwei mal installieren, um eines genüsslicher löschen zu können, als das andere...
Benutzeravatar
DrShrek
Beiträge: 1970
Registriert: 08.09.2004 00:59

Beitrag von DrShrek »

Zeig deinen code.
Siehste! Geht doch....?!
PB*, *4PB, PetriDish, Movie2Image, PictureManager, TrainYourBrain, ...
Benutzeravatar
winduff
Beiträge: 879
Registriert: 10.02.2006 21:05
Wohnort: Gießen
Kontaktdaten:

Beitrag von winduff »

lol :-)

Geht schlecht, aber hier der code wo das Bild erstellt wird:

Code: Alles auswählen

Procedure make_image()
  CreateImage(#Signatur,350,19)

  StartDrawing(ImageOutput(#Signatur))

  DrawImage(ImageID(background),0,0)

  DrawAlphaImage(ImageID(diagonal),0,0)  
  
  If transparent = 1   
    DrawAlphaImage(ImageID(#userimage),imagex,imagey)
  Else   
    DrawImage(ImageID(#userimage),imagex,imagey)
  EndIf   
  DrawAlphaImage(ImageID(spiegelung),0,0)
  If ramen = 1
    DrawAlphaImage(ImageID(hintergrund_rahmen),0,0)
  Else : EndIf
  DrawingMode(#PB_2DDrawing_Transparent)
  DrawingFont(FontID(1))
  farbe = Val(farbe$)
  DrawText(xText,yText,text$,farbe)
  StopDrawing() 
  StartDrawing(WindowOutput(#main_window))
  DrawImage(ImageID(#Signatur),50,250,350,19)
  
  StopDrawing()
  
EndProcedure
Bild
AND51 hat geschrieben:...und ich würde dein Programm aus Wut zwei mal installieren, um eines genüsslicher löschen zu können, als das andere...
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Code: Alles auswählen

StartDrawing(WindowOutput(#main_window))  
Nimm hier lieber ein Imagegadget

Windows sendet beim wiederherstellen usw. , WM_PAINT , das heisst
das Fenster wird in dem Bereich neugezeichnet und dein Bild uebermalt.
Entweder malst du bei jedem #PB_Event_Repaint das Bild neu , besser
waere wm_paint in einem callback , oder , wie oben schon geschrieben,
du nimmst ein ImageGadget , was wohl anfaengerfreundlicher ist.
Benutzeravatar
winduff
Beiträge: 879
Registriert: 10.02.2006 21:05
Wohnort: Gießen
Kontaktdaten:

Beitrag von winduff »

hey hallodri,

vielen dank ;-) Hab ich mir vorher beim Kaffeetrinken auch gedacht, ein Imagegadget dürfte es auch tun ;-)

Mal schaun auf welche Weise ich das Löse, im Notfall dann ImageGadget ;-)

Liebe Grüße
Chris
Bild
AND51 hat geschrieben:...und ich würde dein Programm aus Wut zwei mal installieren, um eines genüsslicher löschen zu können, als das andere...
Gesperrt