Page 1 sur 1

Image gadget

Publié : jeu. 27/août/2009 14:42
par gilles robert
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

Publié : jeu. 27/août/2009 16:04
par Anonyme
Des commandos ? :D
sans dec , essaye la 4.40 et dis nous si tu as le même soucis.

Publié : jeu. 27/août/2009 16:15
par Geo Trouvpatou
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.

Publié : jeu. 27/août/2009 17:03
par Jacobus
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.
M'est avis que c'est exactement ça.

Publié : ven. 28/août/2009 13:49
par gilles robert
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

Publié : ven. 28/août/2009 22:23
par Geo Trouvpatou
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.

Publié : mar. 01/sept./2009 13:23
par gilles robert
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

Publié : mar. 01/sept./2009 17:36
par Le Soldat Inconnu
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