Page 1 of 1

PB and XP

Posted: Sun Jan 04, 2004 10:20 am
by alanuk
I have loaded XP professional on to another partition on the main computer. It runs OK with a dual boot with win98se on the primary partition.

But one problem I have noticed is that loaded images don't appear in the image gadgets all the time. Also I have some code that places text on images. The text appears on the image only very briefly in XP and then disappears.

In win98se no problem, it works fine. Is there something I need to do or watch for when running under Windows XP?

I thought it might be something to do where I place the jpeg encoder/decoder plugins but apparently not.

ie UseJPEGImageDecoder()

Alan

Posted: Sun Jan 04, 2004 12:08 pm
by Franky
Hi, exactly the same (xpprof and win98) and in some cases my code crashes ;no debuggermessage; the debugger closes too.

If I want to load a JPEGImage into an ImageButton, the Visualdesigner crashes, do you have the same Problem??(VD version 3.8 )

Posted: Sun Jan 04, 2004 5:56 pm
by Karbon
Can you post some code that shows the problem?

Posted: Sun Jan 04, 2004 7:04 pm
by alanuk
Mitch, here the code that is causing the problem. I have cut a lot out but hopefully there is enough to show you. It probably wont run as it is.

Alan

Code: Select all

UseJPEGImageDecoder()
UseJPEGImageEncoder() 

Enumeration
  #Window_PI
EndEnumeration

;- MenuBar Constants
;
Enumeration
  #MenuBar_0
EndEnumeration

Enumeration
  #MPI2
  #MPI3
  #MPI6
  #MPI4
  #GPI1
  #GPI2
EndEnumeration

Procedure BalloonTip(WindowID, Gadget, Text$ , Title$, Icon)
   ToolTip=CreateWindowEx_(0,"ToolTips_Class32","",#WS_POPUP | #TTS_NOPREFIX | #TTS_BALLOON,0,0,0,0,WindowID(WindowID),0,GetModuleHandle_(0),0)
   SendMessage_(ToolTip,#TTM_SETTIPTEXTCOLOR,GetSysColor_(#COLOR_INFOTEXT),0)
   SendMessage_(ToolTip,#TTM_SETTIPBKCOLOR,GetSysColor_(#COLOR_INFOBK),0)
   SendMessage_(ToolTip,#TTM_SETMAXTIPWIDTH,0,180)
   Balloon.TOOLINFO\cbSize=SizeOf(TOOLINFO)
   Balloon\uFlags=#TTF_IDISHWND | #TTF_SUBCLASS
   Balloon\hwnd=GadgetID(Gadget)
   Balloon\uID=GadgetID(Gadget)
   Balloon\lpszText=@Text$
   SendMessage_(ToolTip, #TTM_ADDTOOL, 0, Balloon)
   If Title$ > ""
      SendMessage_(ToolTip, #TTM_SETTITLE, Icon, @Title$)
   EndIf
EndProcedure

Procedure open_window_PI()
   If OpenWindow(#Window_PI, 0, 0, 538, 342,  #PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_ScreenCentered | #PB_Window_WindowCentered , "Prepare image")
      If CreateMenu(#MenuBar_0, WindowID())
         MenuTitle("File")
         MenuItem(#MPI2, "Load")
         MenuItem(#MPI3, "Save")
         MenuBar()
         MenuItem(#MPI6, "Quit")
      EndIf
      
      If CreateGadgetList(WindowID())
         ImageGadget(#GPI1, 10, 0, 250, 250, Image0, #PB_Image_Border)
         TrackBarGadget(#GPI2, 10, 250, 250, 30, 0, 10, #PB_TrackBar_Ticks)
         BalloonTip(WindowID(), #GPI2, "Move right for more compression", "Compression level", #TOOLTIP_INFO_ICON)
         ;TrackBarGadget(#GPI3, 260, -5, 30, 250, 0, 10, #PB_TrackBar_Ticks | #PB_TrackBar_Vertical)
         ;BalloonTip(WindowID(), #GPI3, "Move up for greater zoom", "Image zoom control", #TOOLTIP_NO_ICON)
         StringGadget(#GPI4, 335, 0, 160, 20, "", #PB_String_ReadOnly)
         StringGadget(#GPI5, 335, 20, 160, 20, "", #PB_String_ReadOnly)
         StringGadget(#GPI6, 325, 50, 190, 100, "",#PB_String_MultiLine)
         ButtonGadget(#GPI7, 330, 155, 80, 20, "Font")
         ButtonGadget(#GPI8, 440, 155, 70, 20, "Colour")
         ButtonGadget(#GPI10, 390, 270, 60, 20, "Clear Text")
         ButtonGadget(#GPI11, 330, 270, 50, 20, "Prepare")
         BalloonTip(WindowID(),#GPI11,"Prepares picture ready for transmission","", #TOOLTIP_NO_ICON)
         ButtonGadget(#GPI12, 460, 270, 50, 20, "Exit")
         StringGadget(#GPI14, 270, 255, 45, 20, "", #PB_String_ReadOnly)
         TextGadget(#GPI15, 245, 280, 75, 15, "% Compression")
         TextGadget(#GPI16, 290, 5, 40, 15, "Orig", #PB_Text_Right)
         TextGadget(#GPI17, 295, 25, 35, 15, "New", #PB_Text_Right)
         TextGadget(#GPI18, 500, 0, 30, 20, "bytes")
         TextGadget(#GPI19, 500, 20, 30, 20, "bytes")
         
         Frame3DGadget(#GPI13, 320, 40, 200, 216, "") : ; around posn buttons
         TextGadget(#GPI121, 336,240,100,14,"Text positions")
         LoadImage(81,"tl.bmp")
         ButtonImageGadget(#tl, 340, 180, 20, 20, UseImage(81))
         BalloonTip(WindowID(),#tl,"Positions text","", #TOOLTIP_NO_ICON)
         
         LoadImage(82,"tm.bmp")
         ButtonImageGadget(#tm, 360, 180, 20, 20, UseImage(82))
         BalloonTip(WindowID(),#tm,"Positions text","", #TOOLTIP_NO_ICON)
         
         LoadImage(83,"tr.bmp")
         ButtonImageGadget(#tr, 380, 180, 20, 20, UseImage(83))
         BalloonTip(WindowID(),#tr,"Positions text","", #TOOLTIP_NO_ICON)
         
         LoadImage(84,"ml.bmp")
         ButtonImageGadget(#ml, 340, 200, 20, 20, UseImage(84))
         BalloonTip(WindowID(),#ml,"Positions text","", #TOOLTIP_NO_ICON)
         
         LoadImage(85,"m.bmp")
         ButtonImageGadget(#m, 360, 200, 20, 20, UseImage(85))
         BalloonTip(WindowID(),#m,"Positions text","", #TOOLTIP_NO_ICON)
         
         LoadImage(86,"mr.bmp")
         ButtonImageGadget(#mr, 380, 200, 20, 20, UseImage(86))
         BalloonTip(WindowID(),#mr,"Positions text","", #TOOLTIP_NO_ICON)
         
         LoadImage(87,"bl.bmp")
         ButtonImageGadget(#bl, 340, 220, 20, 20, UseImage(87))
         BalloonTip(WindowID(),#bl,"Positions text","", #TOOLTIP_NO_ICON)
         
         LoadImage(88,"bm.bmp")
         ButtonImageGadget(#bm, 360, 220, 20, 20, UseImage(88))
         BalloonTip(WindowID(),#bm,"Positions text","", #TOOLTIP_NO_ICON)
         
         LoadImage(89,"br.bmp")
         ButtonImageGadget(#br, 380, 220, 20, 20, UseImage(89))
         BalloonTip(WindowID(),#br,"Positions text","", #TOOLTIP_NO_ICON)
         
         Frame3DGadget(#frame6, 325, 255, 190, 45, "")
         ButtonGadget(#styleN, 415, 180, 45, 20, "Normal")
         BalloonTip(WindowID(),#styleN,"Normal text","", #TOOLTIP_NO_ICON)
         ButtonGadget(#style1, 465, 180, 45, 20, "Style 1")
         BalloonTip(WindowID(),#style1,"Style 1 text","", #TOOLTIP_NO_ICON)
         ButtonGadget(#style2, 415, 200, 45, 20, "Style 2")
         BalloonTip(WindowID(),#style2,"Style 2 text","", #TOOLTIP_NO_ICON)
         ButtonGadget(#style3, 465, 200, 45, 20, "Style 3")
         BalloonTip(WindowID(),#style3,"Style 3 text","", #TOOLTIP_NO_ICON)
         ButtonGadget(#style4, 415, 220, 45, 20, "Style 4")
         BalloonTip(WindowID(),#style4,"Style 4 text","", #TOOLTIP_NO_ICON)
         ButtonGadget(#style5, 465, 220, 45, 20, "Style 5")
         BalloonTip(WindowID(),#style5,"Style 5 text","", #TOOLTIP_NO_ICON)
         TextGadget(#GPI20,20,300,200,20,"LOAD PICTURE FIRST !")
         If LoadImage(200,"windigi.ico")
            SendMessage_(WindowID(#Window_PI), #WM_SETICON, 0, UseImage(200))
         EndIf
      EndIf
   EndIf
EndProcedure

open_window_PI()   
   Repeat
      EventID=WaitWindowEvent()
      Select EventID
         Case #PB_Event_Gadget
            Select EventGadgetID()
               Case #GPI2
                  Gosub compression
               ;Case #GPI3
               ;   Gosub zoom
               Case #GPI7 ; font
                  Gosub TextFont
               Case #GPI8 ; colour
                  Gosub TextColor
               Case #GPI10 ; clear text
                  SetGadgetText(#GPI6,"")
                  result=LoadImage(2,filename$)
                  CopyImage(2,3)
                  ActivateGadget(#GPI6)
               Case #GPI11 ; prepare
                  ; copy picture to main screen
                  
               Case #tl
                  px=5
                  py=5
                  Gosub Position
               Case #tm
                  px=80
                  py=5
                  Gosub Position
               Case #tr
                  px=165
                  py=5
                  Gosub Position
               Case #ml
                  px=5
                  py=125
                  Gosub Position
               Case #m
                  px=80
                  py=125
                  Gosub Position
               Case #mr
                  px=165
                  py=125
                  Gosub Position
               Case #bl
                  px=5
                  py=220
                  Gosub Position
               Case #bm
                  px=80
                  py=220
                  Gosub Position
               Case #br
                  px=165
                  py=220
                  Gosub Position
               Case #styleN : ; normal
                  style=0
               Case #style1 : ; shadow
                  style=1
               Case #style2
                  style=2
               Case #style3
                  style=3
               Case #style4
                  style=4
               Case #style5
                  style=5
               Case #GPI12 ; exit
                  quit=1
            EndSelect
            Case #PB_Event_Menu
               Select EventMenuID()
                  Case #MPI2 ; load JPG file
                     Gosub loadpicture
                  Case #MPI3 ; save
                     Gosub savepicture
                  Case #MPI6 ; quit
                     quit=1
               EndSelect
      EndSelect
   Until (quit=1) Or (EventID = #PB_Event_CloseWindow)
Gosub clearpics
End
Return

; ____________ GOSUBS _______________

loadpicture:
Pattern$ = "Images (*.jpg)|*.jpg;*.jpg|All files (*.*)|*.*" 
Pattern=0
filename$=OpenFileRequester("Load picture","C:\WinDigi\",Pattern$,Pattern)
result=LoadImage(2,filename$)
CopyImage(2,3)
SetGadgetText(#GPI4,Str(ImageWidth())+"x"+Str(ImageHeight()))
ResizeImage(2,249,249)
ImageGadget(#GPI1,10,1,249,249,UseImage(2))
ActivateGadget(#GPI6)
Return

ResizeImage(2,249,249)
ImageGadget(#GPI1,10,1,249,249,UseImage(2))
ActivateGadget(#GPI6)
Return

Position:
   ; reload picture
   ;result=LoadImage(2,filename$)
   UseImage(3)
   ; load default font
   If fontid=0
      fontid=LoadFont(1,"Arial",12)
   EndIf
   SetGadgetText(#GPI4,Str(ImageWidth())+"x"+Str(ImageHeight()))
   ResizeImage(3,249,249)
   ImageGadget(#GPI1,10,1,249,249,UseImage(3))
   handle=StartDrawing(ImageOutput())
   DrawingMode(1)

   ; display font styles 
   If style=0
      FrontColor(Red(Color),Green(Color),Blue(Color))
      DrawingFont(fontid)
      UseFont(1)
      Locate(px,py)
      Text$=GetGadgetText(#GPI6)
      DrawText(Text$)
   EndIf
   If style=1
     
   EndIf
   If style=2
      
   EndIf
   If style=3
     
   EndIf
   If style=4
      
   EndIf
   If style=5
     
   EndIf
   StopDrawing()
   ActivateGadget(#GPI6)
Return

TextFont:
handle=StartDrawing(ImageOutput())
FontName$ = "Arial"   ; set initial font  
FontSize  = 20        ; set initial size
result.l = FontRequester(FontName$, FontSize,#PB_FontRequester_Effects )
fname$=SelectedFontName()
size=SelectedFontSize()
style=SelectedFontStyle()
Color=SelectedFontColor()
fontid=LoadFont(1,fname$,size,style)
DrawingFont(fontid)
FrontColor(Red(Color),Green(Color),Blue(Color))
SetGadgetFont(#GPI6,fontid)
StopDrawing()
ActivateGadget(#GPI6)
Return

TextColor:
Color.l = ColorRequester() 
ActivateGadget(#GPI6)
Return

clearpics:
For xpc=1 To 10
   DeleteFile("c:\windigi\temp"+Str(xpc)+".jpg")
Next xpc
Return

Posted: Mon Jan 05, 2004 2:05 pm
by Mr Tickle
Franky wrote:...If I want to load a JPEGImage into an ImageButton, the Visualdesigner crashes, do you have the same Problem??(VD version 3.8 )

YES :roll:

Posted: Mon Jan 05, 2004 2:36 pm
by Berikco
Mr Tickle wrote:
Franky wrote:...If I want to load a JPEGImage into an ImageButton, the Visualdesigner crashes, do you have the same Problem??(VD version 3.8 )

YES :roll:
You seem to use a very old version.
The new version is @ http://www.purebasic.be/download.htm
Don't forget to mention the build number in your posts, else it's for me impossible to check things.

I tested the 3 lastest releases, none of them chrash when loading a jpg.
Please try with the latest build, if still fails, mail me the project file.
If Fred finishes the upload script, Visual designer updates will be possible using the AutoUpdate tool.

Posted: Mon Jan 05, 2004 4:22 pm
by dontmailme
Berikco wrote:If Fred finishes the upload script, Visual designer updates will be possible using the AutoUpdate tool.
Good news :D

Posted: Wed Jan 07, 2004 7:36 pm
by alanuk
Incidentally, I checked to see if I had directX loaded. Yes I have. So it is not that that is causing it to not work in XP.

Any ideas anyone ?

Alan

Posted: Sun Jan 11, 2004 10:30 am
by Berikco
Franky wrote:If I want to load a JPEGImage into an ImageButton, the Visualdesigner crashes, do you have the same Problem??(VD version 3.8 )

Okay... i finaly found this bug.
New version online.
And .... 'Lazy Fred' did not yet finished the upload script, so you can't get the bugfix with the updatetool :twisted:

http://www.purebasic.be/download.htm
http://www.purebasic.be/german/download.htm