Seite 1 von 1
Bild anzeigen
Verfasst: 05.10.2009 19:50
von Freizeitcoder
Hallo zusammen,
ich würde gerne bei einer Datenbank Bilder zu den angewählten Bauteilen einblenden. Ich will aber die Bilder nur optional hinzufügen, "IncludeBinary" fällt also aus. Ein eigenes kleines Screen für "Startdrawing" und "Enddrawing" wollte ich mir eigentlich auch nicht antun.
Gibt es eine Möglichkeit nur bei Bedarf ein Photo in meine Anwendung zu laden, und es einfach ganz billig dort abzulegen, ohne Flip, Refresh oder sonstigem Spielschleifenaufwand? Das Bild sollte zudem auswechselbar bleiben.
Wäre dankbar für Hilfe. Obwohl ich schon einige neue Befehle durchgelesen und teilweise ausprobiert habe, wäre langsam eine Lösung schon nicht schlecht.

Gruß
Re: Bild anzeigen
Verfasst: 05.10.2009 20:05
von ts-soft
Code: Alles auswählen
EnableExplicit
UsePNGImageDecoder()
UseJPEGImageDecoder()
Define PicPath.s
OpenWindow(0, #PB_Ignore, #PB_Ignore, 400, 440, "Bildviewer", #PB_Window_SystemMenu)
ImageGadget(0, 10, 10, 380, 380, 0, #PB_Image_Border)
ButtonGadget(1, 160, 410, 80, 20, "Bild laden")
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
Case #PB_Event_Gadget
If EventGadget() = 1
PicPath = OpenFileRequester("Bild laden", "*.bmp", "*.*", 0)
If PicPath
If LoadImage(0, PicPath)
ResizeImage(0, 380, 380)
SetGadgetState(0, ImageID(0))
EndIf
EndIf
EndIf
EndSelect
ForEver
Re: Bild anzeigen
Verfasst: 05.10.2009 20:57
von Freizeitcoder
Super Danke. Genau das hatte ich mir vorgestellt.
Hm...diese Funktion muß ich wohl als letztes einbauen. Bei jeder Generation des SourceCodes schreibt VD einen riesigen Ratenschwanz mit CatchImage, IncludeBinary usw. in den Code ;( Das hat mich dann auch auf den Holzweg geschickt!
Zwei Fragen habe ich noch zu der Lösung:
1) Wieso meckert der Debuger nicht, obwohl du bei "ImageGadget" eine 0 anstatt der "ImageID" angibst?
2) Zu welchem Zweck muß ich den Status des ImageGadgets ändern? Und wieso übergibst Du als Status die ImageID?
Code: Alles auswählen
If LoadImage(0, PicPath)
ResizeImage(0, 380, 380)
SetGadgetState(0, ImageID(0))
EndIf
Gruß
Re: Bild anzeigen
Verfasst: 05.10.2009 21:08
von ts-soft
Freizeitcoder hat geschrieben:Super Danke. Genau das hatte ich mir vorgestellt.
Hm...diese Funktion muß ich wohl als letztes einbauen. Bei jeder Generation des SourceCodes schreibt VD einen riesigen Ratenschwanz mit CatchImage, IncludeBinary usw. in den Code ;( Das hat mich dann auch auf den Holzweg geschickt!
Wie gesagt, versuch es lieber ohne VD, der ist Buggy und ohne lernste viel mehr.
Hab schon ewig kein VD mehr genutzt.
Freizeitcoder hat geschrieben:
1) Wieso meckert der Debuger nicht, obwohl du bei "ImageGadget" eine 0 anstatt der "ImageID" angibst?
Bei einer 0 weiß er das nichts einzufügen ist. Ist ja keine ImageID(0), sondern ein Händel, das kann nicht 0 sein.
Freizeitcoder hat geschrieben:
2) Zu welchem Zweck muß ich den Status des ImageGadgets ändern? Und wieso übergibst Du als Status die ImageID?
Code: Alles auswählen
If LoadImage(0, PicPath)
ResizeImage(0, 380, 380)
SetGadgetState(0, ImageID(0))
EndIf
Gruß
Mit SetGadgetState ändere ich das Bild im ImageGadget!
Der Rest steht in der Hilfe
Gruß
Thomas