Page 3 of 3

Posted: Sun May 22, 2005 5:07 pm
by Doobrey
Silly question time..
Which Gadget file does this replace ?
the one in purebasic/purelibraries/ or the one in purebasic/subsystems/carbon/purelibraries ?

Posted: Sun May 22, 2005 5:12 pm
by GreenGiant
I replaced the purebasic/purelibraries/ one and it works for me now.

Posted: Sun May 22, 2005 6:09 pm
by GreenGiant
Couple more things (sorry). Not really a bug, but had me puzzled for quite a while. The code won't compile properly if it has carriage returns instead of line feed at the end of a line (came accross this when trying to use some code from the forum).

Also, this code builds an application, but it 'quits unexpectedly' when it gets focus.

Code: Select all

Structure gauge
  imagegad.l
  imageid.l
  width.l
  height.l
  imagehwnd.l
  precision.l
  ticks.l
EndStructure

NewList led.gauge()

ProcedureDLL LEDgadget(number,x,y,width,height,display)
  AddElement(led())
  SelectElement(led(),number)
  led()\width=width
  led()\height=height
  led()\imageid=CreateImage(#PB_Any,led()\width,led()\height)
  StartDrawing(ImageOutput())
  Box(0,0,led()\width,led()\height,$000000)
  ledheight=led()\height-20
  boxwidth=(led()\width-10-1)/2
  secondx= 6+boxwidth
  tickcount=0
  For a=0 To led()\height-20 Step 4
    tickcount=tickcount+1
    Box(5,a,boxwidth,3,$7F00)
    Box(secondx,a,boxwidth,3,$7F00)
  Next 
  led()\ticks=tickcount
  Locate((led()\width/2)-10,led()\height-15)
  BackColor(0,0,0)
  FrontColor(0, $FF, 0)
  DrawText("0%")
  StopDrawing()
 
led()\imagegad=ImageGadget(#PB_Any,x,y,width,height,UseImage(led()\imageid),#PB_Image_Border)
  ProcedureReturn led()\imagegad
EndProcedure


ProcedureDLL setLEDstate(led,percent)
  SelectElement(led(),led)
  tickcount=led()\ticks
  perc.f=100/led()\ticks
  percents.f=(percent/100)
  finalpercent.f=percents*tickcount
  stringpercent.s=StrF(finalpercent)
  Result.f = Round(finalpercent, 1)
  finalresult=led()\ticks-Result
  ledheight=led()\height-20
  boxwidth=(led()\width-10-1)/2
  secondx=6+boxwidth
  UseImage(led()\imageid)
  StartDrawing(ImageOutput())
  tickcount=0
  For a=0 To led()\height-20 Step 4
    tickcount=tickcount+1
    If tickcount>=finalresult
      Box(5,a,boxwidth,3,$FF00)
      Box(secondx,a,boxwidth,3,$FF00)
    Else
      Box(5,a,boxwidth,3,$7F00)
      Box(secondx,a,boxwidth,3,$7F00)
    EndIf
  Next
  Box(0,led()\height-15,led()\width,15,$000000)
  Locate((led()\width/2)-10,led()\height-15)
  BackColor(0,0,0)
  FrontColor(0, $FF, 0)
  DrawText(Str(percent)+"%")
  StopDrawing()
  SetGadgetState(led()\imagegad,UseImage(led()\imageid))
EndProcedure

#WindowWidth  = 390
#WindowHeight = 350
If OpenWindow(0, 100, 200, #WindowWidth, #WindowHeight, #PB_Window_MinimizeGadget, "")
  If CreateGadgetList(WindowID(0))
  led=LEDgadget(0,50,50,75,200,0)
  EndIf
 
  Repeat
    temp=temp+1
    
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;THIS ONE WORKS
;    temp2=temp%100
;    setLEDstate(0,temp2)
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;THIS ONE DOESNT
     setLEDstate(0,temp%100)
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    EventID = WaitWindowEvent()
   
    If EventID = #PB_EventGadget
     
      Select EventGadgetID()
        Case led
         
      EndSelect
     
    EndIf
   
  Until EventID = #PB_EventCloseWindow

 
EndIf

End
I've put in comments showing which part of the code makes it stop working, but haven't managed to track down the bug any further yet.

Posted: Sun May 22, 2005 7:33 pm
by BinoX
Yay ^_^ *Pulls out the Mac again!*

Posted: Sun May 22, 2005 7:52 pm
by Polo
For those who have a mac, how is Purebasic ? It sounds like it'll be stable soon, since there's many people here who are improving it !
I hope one day I'll test a mac :)

Posted: Sun May 22, 2005 8:53 pm
by Fred
GreenGiant: thank you, nice report, it's now corrected :) (for the next release).

Posted: Mon May 23, 2005 5:34 pm
by GreenGiant
One more for you. This code

Code: Select all

MessageRequester("", "", 0)
Produces an empty messagebox. Whereas this one

Code: Select all

MessageRequester("", a$, 0)
produces nothing. Shouldn't the undeclared variable be initialised when its used? I figure these two should produce the same results.

Posted: Mon May 23, 2005 5:58 pm
by Fred
Of course, thanks again for this report, we are on it.

Posted: Fri May 27, 2005 3:10 pm
by GreenGiant
I've got no idea whether they're supposed to be working in this beta, but these things don't seem to work for me.

DesktopMouseX()
DesktopMouseY()
WindowMouseX()
WindowMouseY()

and StartDrawing(WindowOutput())

I can give more information about the errors (I think they were linker errors, can check later) if you like, but I wasn't sure whether they were supposed to be functional or not.

Posted: Fri May 27, 2005 7:44 pm
by akee
how does PB for Mac fair on a Mac mini?

Posted: Fri May 27, 2005 8:57 pm
by dell_jockey
akee wrote:how does PB for Mac fair on a Mac mini?
That would interest me too...

Posted: Sat May 28, 2005 10:40 pm
by Shannara
It should be no problem at all, you just need to watch out to make sure you have the minimum OSX version that PB/Mac requires.

Posted: Sun May 29, 2005 2:39 am
by Beach
I have PB working on my 400 MHz G3 based iMac that is running Panther OSX (10.3). It should work like a dream on the mini.

Posted: Mon May 30, 2005 7:40 pm
by Fred
Yes, PB is working quite quick on my iBook G3 900 mhz, so it should be even faster on a G4 1,24 ghz.