Image gadget
-
- Messages : 24
- Inscription : jeu. 15/avr./2004 14:56
Image gadget
Bonjour,
J'ai fait un programme en version 3.94 avec des affichages d'images en ImageGadget.
Après la conversion en version 4.31 les images sont bien trouvées mais ne restent pas affichées si une autre fenêtre est ouverte.
Y as t'il des nouveaux commandos que j'ygnore pour laisser les images affichées?
Merci d'avance,
Gilles
J'ai fait un programme en version 3.94 avec des affichages d'images en ImageGadget.
Après la conversion en version 4.31 les images sont bien trouvées mais ne restent pas affichées si une autre fenêtre est ouverte.
Y as t'il des nouveaux commandos que j'ygnore pour laisser les images affichées?
Merci d'avance,
Gilles
-
- Messages : 471
- Inscription : dim. 23/déc./2007 18:10
M'est avis que c'est exactement ça.Geo Trouvpatou a écrit :Salut.
Un bout de code aiderait.
Et attention quand l'autre fenêtre s'ouvre, que certaines énumérations ne soient pas identiques à celles de ta 1ère fenêtre.
Genre un Gadget de ta 2ème fenêtre qui pique l'Enum d'un ImageGadget de ta 1ère fenêtre.
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
-
- Messages : 24
- Inscription : jeu. 15/avr./2004 14:56
Voici les commandos
Code : Tout sélectionner
;Versie 27/08/2009 in PB4
;// C'est un programme qui permet de visionner l'étiquette principale, la contre étiquette et la bouteille
;// des vins que je veux présenter.
;// Vu que toutes les étiquettes ne sont pas présentes ni toutes les photos des bouteilles j'ai pensé
;// présenter les images séparément.
;// Il faut bien sur que les images soient dans les bons fichiers.
UseJPEGImageDecoder()
Global FontID1
FontID1 = LoadFont(1, "Arial", 24, #PB_Font_Bold)
Global FontID2
FontID2 = LoadFont(1, "Arial", 10)
Gosub init
init:
bx=0 : fx=0 : rr=0 : infoflag.b=0
fl$="x:\"
f$="P:\kwaliteitsdienst\info\"
datum$=FormatDate("%dd-%mm-%yyyy", Date())
nummer$=InputRequester("Afbeelding tonen","Vul het artikelnummer in","")
front$=f$+nummer$+" front.jpg"
back$=f$+nummer$+" back.jpg"
info$=f$+nummer$+".TXT"
Gosub front
Gosub back
Gosub beeld
Return
front:
r=ExamineDirectory(0, f$, "*.JPG")
If LoadImage(0,front$)
fw=ImageWidth(0)
fh=ImageHeight(0)
OpenWindow(0,10,10,fw+20,fh+20,nummer$+" Frontlabel",#PB_Window_SystemMenu| #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget| #PB_Window_SizeGadget); And CreateGadgetList(WindowID(1))
ImageGadget(0,10,10,fw+10,fh+10,ImageID(0),#PB_Image_Border)
wflag0=1
Else
fx=1
wflag0=0
EndIf
Return
back:
r=ExamineDirectory(0, f$, "*.JPG")
If LoadImage(1,back$)
bw=ImageWidth(1)
bh=ImageHeight(1)
OpenWindow(1,fw+40,10,bw+20,bh+20,nummer$+" Back label",#PB_Window_SystemMenu| #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget| #PB_Window_SizeGadget); And CreateGadgetList(WindowID(2))
ImageGadget(1,10,10,bw+10,bh+10,ImageID(1),#PB_Image_Border)
wflag1=1
Else
bx=1
wflag1=0
EndIf
Return
text:
rr=0 : rrr=0 : stam$=""
rr=ExamineDirectory(0, f$,"*.TXT")
bb$=Left(nummer$,5)
r3=ExamineDirectory(0, fl$,bb$+"*.JPG")
OpenWindow(4,1,635,720,80,nummer$+" Info",#PB_Window_SystemMenu| #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget| #PB_Window_SizeGadget); And CreateGadgetList(WindowID(4))
wflag4=1
If ReadFile(0,info$)
a$=ReadString(0)
stam$=Left(StringField(info$,4,"\"),5)
CloseFile(0)
infoflag.b=1
d_ate$=StringField(a$,1,"#")
text$=StringField(a$,2,"#")
StringGadget(4,10,10,700,20,text$)
TextGadget(1,10,35,200,20,"Datum info: "+d_ate$)
TextGadget(2, 450, 35, 510, 20, "LET OP ARTIKEL MET INFO")
If stam$<>"" And infoflag<>1
TextGadget(3, 450, 55, 510, 60, "Info op andere jaargang")
EndIf
SetGadgetFont(2, FontID1)
ButtonGadget(306,350,35,80,20,"Clean info")
Else
stam$=Left(StringField(info$,4,"\"),5)
rrr=ExamineDirectory(0,f$,stam$+"*.TXT")
StringGadget(4,10,10,700,20,"Geen info aanwezig")
If rrr<>0 And infoflag=0
TextGadget(3, 470, 35, 510, 60, "Info op andere jaargang")
ButtonGadget(310,640,35,70,20,"Tonen")
EndIf
SetGadgetFont(3, FontID1)
If r3<>0
TextGadget(3, 220, 35, 510, 20, "Afbeelding andere jaargang aanwezig")
EndIf
SetGadgetFont(3, FontID1)
EndIf
ButtonGadget(305,150,35,60,20,"Opslaan")
Return
beeld:
bld3.b=0:bld2.b=0 : d_ate$="" : beeldflag=0
wflag1=0 : wflag2=0 : wflag3=0 : wflag4=0 : wflag5=0
beeld$=fl$+nummer$+".jpg"
; Gosub text
r=ExamineDirectory(0, fl$, "*.JPG")
If LoadImage(2, beeld$)
beeldflag=1
w=ImageWidth(2)
h=ImageHeight(2)
If infoflag=1
OpenWindow(2,980-w,10,w+20,h+100,nummer$+" fles",#PB_Window_SystemMenu| #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget| #PB_Window_SizeGadget); And CreateGadgetList(WindowID(3))
TextGadget(2,10,h+76,200,25, "LET OP INFO")
SetGadgetFont(2, FontID1)
wflag2=1
Else
OpenWindow(3,980-w,10,w+20,h+90,nummer$+" fles",#PB_Window_SystemMenu| #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget| #PB_Window_SizeGadget); And CreateGadgetList(WindowID(3))
wflag3=1
EndIf
ImageGadget(2,10,10,w+10,h+10,ImageID(2),#PB_Image_Border)
ButtonGadget(301, 10, h+20, 30, 20, "Quit")
ButtonGadget(302, 50, h+20, 50, 20, "Nog een",#PB_Button_Default)
If fx=1
TextGadget(1,10,h+44,200,18,"Geen nieuwe frontlabel aanwezig")
Else
ButtonGadget(304,10, h+44, 120, 18, "Clean label")
EndIf
If bx=1
TextGadget(1,10,h+64,200,18,"Geen nieuwe backlabel aanwezig")
Else
ButtonGadget(307,10, h+64, 120, 18, "Clean back label")
EndIf
Else
beeldflag=0
OpenWindow(5,850,655,160,60,nummer$+" fles",#PB_Window_SystemMenu| #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget| #PB_Window_SizeGadget); And CreateGadgetList(WindowID(3))
TextGadget(6,10,10,160,20,"Geen afbeelding aanwezig")
h+15
ButtonGadget(301, 10, 35, 60, 20, "Sluiten")
ButtonGadget(302, 90, 35, 60, 20, "Nog een")
wflag5=1
EndIf
Gosub text
r=0
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_Gadget
Select EventGadget()
Case 301
End
Case 302
If wflag0=1
CloseWindow(0)
EndIf
If wflag1=1
CloseWindow(1)
EndIf
If wflag2=1
CloseWindow(2)
EndIf
If wflag3=1
CloseWindow(3)
EndIf
If wflag4=1
CloseWindow(4)
EndIf
If wflag5=1
CloseWindow(5)
EndIf
Gosub init
Case 304
r1=MessageRequester("Clean","Deze optie verwijderd de front label."+Chr(10)+"Deze wordt opgeslagen in een Oud folder"+Chr(10)+"Te gebruiken als de fles is gefotografeerd met de nieuw label",#PB_MessageRequester_YesNo)
If r1=6
RenameFile(front$,f$+"oud\"+nummer$+" front.JPG")
CloseWindow(1)
EndIf
Case 305
nwinfo$=GetGadgetText(4)
If nwinfo$<>""
OpenFile(1,f$+nummer$+".TXT")
WriteString(1,datum$+"#"+nwinfo$)
CloseFile(1)
EndIf
CloseWindow(4): CloseWindow(5)
Case 306
r1=MessageRequester("Clean","Deze optie verwijderd de info over dit artikel."+Chr(10)+"Deze worden opgeslagen in een Oud folder",#PB_MessageRequester_YesNo)
If r1=6
RenameFile(info$,f$+"oud\"+nummer$+".TXT")
CloseWindow(4): CloseWindow(5)
EndIf
Case 307
r1=MessageRequester("Clean","Deze optie verwijderd de back label."+Chr(10)+"Deze wordt opgeslagen in een Oud folder"+Chr(10)+"Te gebruiken als de fles is gefotografeerd met de nieuw label",#PB_MessageRequester_YesNo)
If r1=6
RenameFile(back$,f$+"oud\"+nummer$+" back.JPG")
CloseWindow(2)
EndIf
Case 310
voir$=OpenFileRequester("Info zoeken",f$+stam$+"*.TXT","*.TXT",0)
voir2$=StringField(voir$,4,"\")
ReadFile(1,voir$)
toon$=ReadString(1)
d1$=StringField(toon$,1,"#")
d2$=StringField(toon$,2,"#")
OpenWindow(14,10,10,2,2," ",#PB_Window_Invisible ); And CreateGadgetList(WindowID(4))
TextGadget(11,10,60,500,20,"Info op: "+voir2$+" datum: "+d1$+" Inhoud: "+d2$)
ButtonGadget(311,640,60,70,20,"Overnemen")
Case 311
StringGadget(4,10,10,700,20,d2$)
EndSelect
EndIf
Until EventID = #PB_Event_CloseWindow
CloseWindow(1) : CloseWindow(2) : CloseWindow(3) : CloseWindow(4)
Return
-
- Messages : 471
- Inscription : dim. 23/déc./2007 18:10
Salut.
Ben déjà avec des énumérations plus claires tu serais sûr de ne pas avoir de problèmes :
Entre : ButtonGadget(301, 10, h+20, 30, 20, "Quit")
Et : ButtonGadget(#Button_Quit, 10, h+20, 30, 20, "Quit")
Pour moi c'est plus clair et surtout je suis sûr de ne pas utiliser 2 fois la même énumération pour le même type de gadget.
Ensuite désolé mais entre la barrière de la langue de ton soft et les médias manquants, pas facile de faire tourner tout ça.
Un petit .zip et le soft en français aiderait peut-être.
A moin qu'un courageux ne passe par-là.
Bye.
Ben déjà avec des énumérations plus claires tu serais sûr de ne pas avoir de problèmes :
Entre : ButtonGadget(301, 10, h+20, 30, 20, "Quit")
Et : ButtonGadget(#Button_Quit, 10, h+20, 30, 20, "Quit")
Pour moi c'est plus clair et surtout je suis sûr de ne pas utiliser 2 fois la même énumération pour le même type de gadget.
Ensuite désolé mais entre la barrière de la langue de ton soft et les médias manquants, pas facile de faire tourner tout ça.
Un petit .zip et le soft en français aiderait peut-être.
A moin qu'un courageux ne passe par-là.
Bye.
-
- Messages : 24
- Inscription : jeu. 15/avr./2004 14:56
Bonjour,
J'ai bien regardé mon code et j'ai trouvé d'ou venait l'erreur.
Plusieurs textgadget avaient le même numéro.
J'ai suivis les suggestions de Geo et ai nommé mes textgadgets avec des variables définies.
Ca marche merci encore.
Ce qui est bizzare c'est que le problème ne se posait pas dans la version 3.94
Gilles
J'ai bien regardé mon code et j'ai trouvé d'ou venait l'erreur.
Plusieurs textgadget avaient le même numéro.
J'ai suivis les suggestions de Geo et ai nommé mes textgadgets avec des variables définies.
Ca marche merci encore.
Ce qui est bizzare c'est que le problème ne se posait pas dans la version 3.94
Gilles
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
Sur 3.94, le rafraichissement des images n'était pas au top donc Windows pouvait "gardé en mémoire" l'image sur la fenêtre sans chercher à la redessiner.
C'est de mémoire.
J'avais eu des soucis de ce type
C'est de mémoire.
J'avais eu des soucis de ce type
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]