A long list
A long list
I read the manual, i a create a little list full of suggestions:
* New Variable-Types!
LongLongs .ll, Double .d, Unsigned .ub, .uw, .ul, .ull
* DefType.w VariableName
Maybe a alias "Var.w VariableName" is usefull
* ReDim Name.Typ()
Same as dim, but don't clear the array
* Protected
I know this command as "Local". Maybe a alias is usefull
* DrawText([x,y,]Text$[,color[,FontId])
* GetDrawingFont() is missing
* GetBackColor() is missing
* GetDrawingMode() is missing
* GetFrontColor() is missing
* LineTo(x,y[,color]) - Draw a line from the last point (Line/LineXY/Plot/Locate)
* BackColor(R,G,B) or Backcolor(RGB)
* FrontColor(R,G,B) or FrontColor(RGB)
* FillArea(x,y,StopColor[,FillColor])
When Stopcolor=-1 the fill command should stop on any color which is diffrent the color under the start-point. (like every Fill-Command in any Paint-Program)
* TextHeight(Text$) is missing
* CDAudioLength([CDId])
* CDAudioName([CDid])
* CDAudioStatus([CDId]) - btw. why not called CDAudioState()?
* CDAudioTrackLength([CDId,]TrackNumber)
* CDAudioTrackSeconds([CDId])
* CDAudioTracks([CDId])
* EjectCDAudio([CDID,]Status)
* PauseCDAudio([CDId])
* PlayCDAudio([CDId,]StartTrack,EndTrack)
* ResumeCDAudio([CDID])
* StopCDAudio([CDiD])
* GetCurrentCDAudio() id missing
* FileSeek([#File,]NewPos)
* Loc([#File])
* Lof([#File])
* ReadByte([#File])
* ReadData([#File,]*Membuffer,Length)
* ReadFloat([#File])
* ReadLong([#File])
* ReadString([#File])
* ReadWord([#File])
* GetCurrentFile() is missing
* WriteByte([#File,]Byte)
* WriteData([#File,]*Membuffer,Length)
* WriteFloat([#File,]Float)
* WriteString([#File,]String)
* WriteStringN([#File,]StringN)
* WriteWord([#File,]Word)
* DirectoryEntryAttributes([#Dir])
* DirectoryEntryName([#Dir])
* DirectoryEntrySize([#Dir])
* DirectoryEntryDate([#Dir]) is missing
* GetFileDate(File$) is missing
* SetFileDate(File$,Date) is missing
* GetFileAttribute(File$) is missing
* SetFileAttribute(File$,Attribute) is missing
(And the Constants: #PB_FileAttribute_Archive/Hidden/ReadOnly/System/Directory)
* GetCurrentDirectory() is missing
* NextDirectoryEntry([#Dir])
* FontId([#Font])
* GetCurrentFont() is missing
* CheckBoxGadget()
I miss a flag (#PB_CheckBox_Set)
* EditorGadget(#Gadget, x, y, width, Height[,text$])
* GetGadgetAttribute()
I miss a #PB_Gadget_Hidden, #PB_Gadget_Active, #PB_Gadget_Disabled
* OptionGadget(#Gadget, x, y, width, height, Text$[,flag])
I miss a flag #PB_OptionGadget_Set)
* ProgressBarGadget(#Gadget, x, y, Breite, Höhe, Minimum, Maximum [,State, Flags])
* CaptureImage(#Image,x,y,w,h) - Grab from StartDrawing()
* ImageDepth([#Image])
* ImageHeight([#Image])
* ImageID([#Image])
* ImageOutput([#Image])
* ImageWidth([#Image])
* GetCurrentImage() is missing
* UseGifImageDecode/Encoder is missing(Gif is free! No patents in japan,europe and USA any more!)
* ExamineJoystick() - Return the count of allwayable Joysticks (and please-support of more than on Joysticks!)
* JoystickAxis(#Joy,Axis) is missing
And the Constants #PB_Joystic_AxisX/AxisY/AxisU/AxisV/AxisR/AxisZ)
* JoystickAvaiableAxis(#Joy) is missing
* JoystickAxisX([#Joy])
* JoystickAxisY([#Joy])
* JoyStickButtons([#Joy])
* JoyStickAvailableButtons(#Joy) is missing
* JoystickMapButtons(#Joy) - Return a long, Bit0=first button, Bit1=second button ...
* LibraryFunctionAddress([#Lib])
* LibraryFunctionName([#lib])
* NextLibtatyFunction([#lib])
Compiler-Commands:
DEG - Set all the cos/sin... to degre
RAD - Set all the cos/sin... to radiant
* PokeB,PokeL,PokeW,PokeS ... Other Basic-Dialekts know this as Poke(byte),LPoke,WPoke,...
* DisableMenuItem([#Menu,]Menuitem,Sate)
* DisplayPopupMenu(#Menu, WindowID [, x, y[,flag]])
Flag: #PB_DisplayPopupmenu_left/centre/right/up/down/mid)
* MenuHeight() - Don't take care, when a window is too small and the menu is two/three-lines
* SetMenuItemState()
Enable Always a Item, when it is disabled before!
* GetParentPathPart(Path$) is missing. "C:\test\test2\File.txt" should return "C:\Test\"
* ProgramParameter([#Index])
* ProgramParameterCount() is missing
* ProgramParameterComplete() - Complete String
* RandomF() is missing (return a float betwen 0 and 1 (without 1!)). Other Dialekt know this as RND()
* RandomSeed() is also known als "Randomize"
* RunProgram()
I miss: #PB_RunProgram_Hide,#PB_RunProgram_Wait
* MouseButton(#Button)
I miss: #PB_MouseButton_Left,#PB_MouseButton_Right,#PB_MouseButton_Centre
* MouseAvailableButtons() is missing
* GetErrorLineNR()
Return 0 for the first line (and IDE start with 1)
* AddPackTagData(*Data,Length) is missing
Add addition Data (unpacked!) in the File. With this command it is possible to store addition Information, like filenames...
* AddPackTagString(String)
A string should be store this way
Structure
Length.l
String.s
Endstructure
* AddPackTagByte/Word/Long...
* GetPackTagData/Byte/Word/Long/String is missing
* ColorRequester([StartColor[,*ColorTable[,flag]]])
Structure ColorTable
rgb.l[16]
EndStructure
#PB_ColorRequester_Extended
* InputRequester()
I miss a cancel-Button
* MessageRequester
I miss the "Return"-Constants #PB_MessageRequester_Yes,#PB_MessageRequester_No,#PB_MessageRequester_Cancel
* CloneSound(#NewSound,#OriginalSound) is missing
Make a "Clone" of a sound, so it is possible to load one sound and can it play more than on time at the same time (for example a long lase-shoot-sound) and with diffrent Pans,etc.
* GetSoundFrequency(#Sound) is missing
* GetSoundPan(#Sound) is missing
* GetSoundVolume(#Sound) is missing
* GetSoundLength(#Sound) is missing (in relationship with the Frequency)
* ChangeAlpaIntensity(r,g,b) and ChangeAlpaIntensity(RGB)
* ChangeGamma(R, G, B, Flags) and ChangeGamma(RGB, Flags)
* ClearScreen(r,g,b) and ClearScreen(RGB)
* ScreenClip(x,y,width,height)
All Spritecommands are cliped in this box of the screen. a ScreenClip(0,0,-1,-1) should set it to the maximum.
(It would be nice, when Sprite3D is also affect by this command)
* VAL() should support $123 and %100101
*DisableWindow(#Window,flag) is missing
*MaximizeWindow(#Window,flag) #true=maximize, #flaze=normal
*MinimizeWindow(#Window,flag) is missing
*IsMaximizeWindow(#window) is missing
*IsMinimizeWindow(#Window) is missing
*ActivateWindow([#Window])
*DetachMenu([#window])
*EventWindowID() - Name is wrong, better would be EventWindow() (for backward compatibility: take both! and in the manual/Calltip(IDE) only EventWindow())
*IsWindowHidden([#window]) is missing
*ISWindowDisable([#window]) is missing
*GetCurrentWindow() is missing
* Space(): Other Dialekt know this as SPC()
* inSTR([Startpos,]String,SearchString) same as StringField)
* Mirror$(String) is missing
* LCase() is also known as Lower()
* UCase() is also knwon as Upper()
Complete Miss of StreamSound() for Oggs (PlaySound load the complete sound in memory, for Background music it would be usefull, when not the comple sound is loaded. I know, that this is possible with the Movie-Lib, but this is original for movies...) Maybe this command should support .OGG,.Mid; maybe a combination with the modul-lib?
InitStreamSound()
LoadStreamSound(#StreamSound,Filename) - of course, don't load (ok, maybe init buffer)!
PlayStreamSound(#StreamSound[,flag])
PauseStreamSound(#StreamSound,flag) ;#true=pause #flase=unpause
SeekStreamSound(#StreamSound); Set Playposition
GetStreamSoundPosition(#StreamSound)
SetStreamSoundSpeed(#Streamsound,Speed); 100=normal 200=Double...
GetStreamSoundSpeed(#StreamSound)
FreeStreamSound(#StreamSound)
StremSoundState(#Streamsound)
#PB_StreamSound_Stop,#pb_StreamSound_Pause
StopStreamSound(#StreamSound) ;-1 stop all sounds
* Thread-Communication-Commands would be nice (to prevent problems like strings)
SendThreadMessage(ThreadId,Message,Param)
ThreadMessage()/WaitThreadMessage()
ThreadMessageFrom()
* New Variable-Types!
LongLongs .ll, Double .d, Unsigned .ub, .uw, .ul, .ull
* DefType.w VariableName
Maybe a alias "Var.w VariableName" is usefull
* ReDim Name.Typ()
Same as dim, but don't clear the array
* Protected
I know this command as "Local". Maybe a alias is usefull
* DrawText([x,y,]Text$[,color[,FontId])
* GetDrawingFont() is missing
* GetBackColor() is missing
* GetDrawingMode() is missing
* GetFrontColor() is missing
* LineTo(x,y[,color]) - Draw a line from the last point (Line/LineXY/Plot/Locate)
* BackColor(R,G,B) or Backcolor(RGB)
* FrontColor(R,G,B) or FrontColor(RGB)
* FillArea(x,y,StopColor[,FillColor])
When Stopcolor=-1 the fill command should stop on any color which is diffrent the color under the start-point. (like every Fill-Command in any Paint-Program)
* TextHeight(Text$) is missing
* CDAudioLength([CDId])
* CDAudioName([CDid])
* CDAudioStatus([CDId]) - btw. why not called CDAudioState()?
* CDAudioTrackLength([CDId,]TrackNumber)
* CDAudioTrackSeconds([CDId])
* CDAudioTracks([CDId])
* EjectCDAudio([CDID,]Status)
* PauseCDAudio([CDId])
* PlayCDAudio([CDId,]StartTrack,EndTrack)
* ResumeCDAudio([CDID])
* StopCDAudio([CDiD])
* GetCurrentCDAudio() id missing
* FileSeek([#File,]NewPos)
* Loc([#File])
* Lof([#File])
* ReadByte([#File])
* ReadData([#File,]*Membuffer,Length)
* ReadFloat([#File])
* ReadLong([#File])
* ReadString([#File])
* ReadWord([#File])
* GetCurrentFile() is missing
* WriteByte([#File,]Byte)
* WriteData([#File,]*Membuffer,Length)
* WriteFloat([#File,]Float)
* WriteString([#File,]String)
* WriteStringN([#File,]StringN)
* WriteWord([#File,]Word)
* DirectoryEntryAttributes([#Dir])
* DirectoryEntryName([#Dir])
* DirectoryEntrySize([#Dir])
* DirectoryEntryDate([#Dir]) is missing
* GetFileDate(File$) is missing
* SetFileDate(File$,Date) is missing
* GetFileAttribute(File$) is missing
* SetFileAttribute(File$,Attribute) is missing
(And the Constants: #PB_FileAttribute_Archive/Hidden/ReadOnly/System/Directory)
* GetCurrentDirectory() is missing
* NextDirectoryEntry([#Dir])
* FontId([#Font])
* GetCurrentFont() is missing
* CheckBoxGadget()
I miss a flag (#PB_CheckBox_Set)
* EditorGadget(#Gadget, x, y, width, Height[,text$])
* GetGadgetAttribute()
I miss a #PB_Gadget_Hidden, #PB_Gadget_Active, #PB_Gadget_Disabled
* OptionGadget(#Gadget, x, y, width, height, Text$[,flag])
I miss a flag #PB_OptionGadget_Set)
* ProgressBarGadget(#Gadget, x, y, Breite, Höhe, Minimum, Maximum [,State, Flags])
* CaptureImage(#Image,x,y,w,h) - Grab from StartDrawing()
* ImageDepth([#Image])
* ImageHeight([#Image])
* ImageID([#Image])
* ImageOutput([#Image])
* ImageWidth([#Image])
* GetCurrentImage() is missing
* UseGifImageDecode/Encoder is missing(Gif is free! No patents in japan,europe and USA any more!)
* ExamineJoystick() - Return the count of allwayable Joysticks (and please-support of more than on Joysticks!)
* JoystickAxis(#Joy,Axis) is missing
And the Constants #PB_Joystic_AxisX/AxisY/AxisU/AxisV/AxisR/AxisZ)
* JoystickAvaiableAxis(#Joy) is missing
* JoystickAxisX([#Joy])
* JoystickAxisY([#Joy])
* JoyStickButtons([#Joy])
* JoyStickAvailableButtons(#Joy) is missing
* JoystickMapButtons(#Joy) - Return a long, Bit0=first button, Bit1=second button ...
* LibraryFunctionAddress([#Lib])
* LibraryFunctionName([#lib])
* NextLibtatyFunction([#lib])
Compiler-Commands:
DEG - Set all the cos/sin... to degre
RAD - Set all the cos/sin... to radiant
* PokeB,PokeL,PokeW,PokeS ... Other Basic-Dialekts know this as Poke(byte),LPoke,WPoke,...
* DisableMenuItem([#Menu,]Menuitem,Sate)
* DisplayPopupMenu(#Menu, WindowID [, x, y[,flag]])
Flag: #PB_DisplayPopupmenu_left/centre/right/up/down/mid)
* MenuHeight() - Don't take care, when a window is too small and the menu is two/three-lines
* SetMenuItemState()
Enable Always a Item, when it is disabled before!
* GetParentPathPart(Path$) is missing. "C:\test\test2\File.txt" should return "C:\Test\"
* ProgramParameter([#Index])
* ProgramParameterCount() is missing
* ProgramParameterComplete() - Complete String
* RandomF() is missing (return a float betwen 0 and 1 (without 1!)). Other Dialekt know this as RND()
* RandomSeed() is also known als "Randomize"
* RunProgram()
I miss: #PB_RunProgram_Hide,#PB_RunProgram_Wait
* MouseButton(#Button)
I miss: #PB_MouseButton_Left,#PB_MouseButton_Right,#PB_MouseButton_Centre
* MouseAvailableButtons() is missing
* GetErrorLineNR()
Return 0 for the first line (and IDE start with 1)
* AddPackTagData(*Data,Length) is missing
Add addition Data (unpacked!) in the File. With this command it is possible to store addition Information, like filenames...
* AddPackTagString(String)
A string should be store this way
Structure
Length.l
String.s
Endstructure
* AddPackTagByte/Word/Long...
* GetPackTagData/Byte/Word/Long/String is missing
* ColorRequester([StartColor[,*ColorTable[,flag]]])
Structure ColorTable
rgb.l[16]
EndStructure
#PB_ColorRequester_Extended
* InputRequester()
I miss a cancel-Button
* MessageRequester
I miss the "Return"-Constants #PB_MessageRequester_Yes,#PB_MessageRequester_No,#PB_MessageRequester_Cancel
* CloneSound(#NewSound,#OriginalSound) is missing
Make a "Clone" of a sound, so it is possible to load one sound and can it play more than on time at the same time (for example a long lase-shoot-sound) and with diffrent Pans,etc.
* GetSoundFrequency(#Sound) is missing
* GetSoundPan(#Sound) is missing
* GetSoundVolume(#Sound) is missing
* GetSoundLength(#Sound) is missing (in relationship with the Frequency)
* ChangeAlpaIntensity(r,g,b) and ChangeAlpaIntensity(RGB)
* ChangeGamma(R, G, B, Flags) and ChangeGamma(RGB, Flags)
* ClearScreen(r,g,b) and ClearScreen(RGB)
* ScreenClip(x,y,width,height)
All Spritecommands are cliped in this box of the screen. a ScreenClip(0,0,-1,-1) should set it to the maximum.
(It would be nice, when Sprite3D is also affect by this command)
* VAL() should support $123 and %100101
*DisableWindow(#Window,flag) is missing
*MaximizeWindow(#Window,flag) #true=maximize, #flaze=normal
*MinimizeWindow(#Window,flag) is missing
*IsMaximizeWindow(#window) is missing
*IsMinimizeWindow(#Window) is missing
*ActivateWindow([#Window])
*DetachMenu([#window])
*EventWindowID() - Name is wrong, better would be EventWindow() (for backward compatibility: take both! and in the manual/Calltip(IDE) only EventWindow())
*IsWindowHidden([#window]) is missing
*ISWindowDisable([#window]) is missing
*GetCurrentWindow() is missing
* Space(): Other Dialekt know this as SPC()
* inSTR([Startpos,]String,SearchString) same as StringField)
* Mirror$(String) is missing
* LCase() is also known as Lower()
* UCase() is also knwon as Upper()
Complete Miss of StreamSound() for Oggs (PlaySound load the complete sound in memory, for Background music it would be usefull, when not the comple sound is loaded. I know, that this is possible with the Movie-Lib, but this is original for movies...) Maybe this command should support .OGG,.Mid; maybe a combination with the modul-lib?
InitStreamSound()
LoadStreamSound(#StreamSound,Filename) - of course, don't load (ok, maybe init buffer)!
PlayStreamSound(#StreamSound[,flag])
PauseStreamSound(#StreamSound,flag) ;#true=pause #flase=unpause
SeekStreamSound(#StreamSound); Set Playposition
GetStreamSoundPosition(#StreamSound)
SetStreamSoundSpeed(#Streamsound,Speed); 100=normal 200=Double...
GetStreamSoundSpeed(#StreamSound)
FreeStreamSound(#StreamSound)
StremSoundState(#Streamsound)
#PB_StreamSound_Stop,#pb_StreamSound_Pause
StopStreamSound(#StreamSound) ;-1 stop all sounds
* Thread-Communication-Commands would be nice (to prevent problems like strings)
SendThreadMessage(ThreadId,Message,Param)
ThreadMessage()/WaitThreadMessage()
ThreadMessageFrom()
Re: A long list
Try my OggStream library, next release will have mp3 support (through Mad).GPI wrote:I read the manual, i a create a little list full of suggestions:
Complete Miss of StreamSound() for Oggs (PlaySound load the complete sound in memory, for Background music it would be usefull, when not the comple sound is loaded. I know, that this is possible with the Movie-Lib, but this is original for movies...) Maybe this command should support .OGG,.Mid; maybe a combination with the modul-lib?
InitStreamSound()
LoadStreamSound(#StreamSound,Filename) - of course, don't load (ok, maybe init buffer)!
PlayStreamSound(#StreamSound[,flag])
PauseStreamSound(#StreamSound,flag) ;#true=pause #flase=unpause
SeekStreamSound(#StreamSound); Set Playposition
GetStreamSoundPosition(#StreamSound)
SetStreamSoundSpeed(#Streamsound,Speed); 100=normal 200=Double...
GetStreamSoundSpeed(#StreamSound)
FreeStreamSound(#StreamSound)
StremSoundState(#Streamsound)
#PB_StreamSound_Stop,#pb_StreamSound_Pause
StopStreamSound(#StreamSound) ;-1 stop all sounds
PS : it doesn't support for more than one stream at once, a complete rewritte is expected wich will allow that

um, that is a long list 8O
Variable types
the doubles were promised for 4.0 about the others: i don't know.
About the requested "alias" commands:
Where is the sense in having two ways to do the same thing? We have avoided this
kind of thing in the past, and it won't start now.
About all requests for adding an "#id" parameter to the functions
This is planned allready afaik.
About the GetCurrent...() commands
Why need a function to get the current object after you have set it yourself?
You should be aware of what you just did in your code, shouldn't you?
(I just don't see a use for this, do you have an example?)
About the menu item commands and a #Menu parameter
There is only one single list of menu items (on the OS side), so you can't
have one set of numbers for each menu anyway.
About window maximize/minimize commands
This is not possible with linux! (with gtk1.2, there is no way at all, and with
2.0, it only works if the windowmanager supports it, and few of them seem to do so.)
About the window enable/disable commands
Also haven't found a way to make this happen on linux.
About these:
)
About everything else
Dunno yet.
Variable types
the doubles were promised for 4.0 about the others: i don't know.
About the requested "alias" commands:
Where is the sense in having two ways to do the same thing? We have avoided this
kind of thing in the past, and it won't start now.
About all requests for adding an "#id" parameter to the functions
This is planned allready afaik.
About the GetCurrent...() commands
Why need a function to get the current object after you have set it yourself?
You should be aware of what you just did in your code, shouldn't you?
(I just don't see a use for this, do you have an example?)
About the menu item commands and a #Menu parameter
There is only one single list of menu items (on the OS side), so you can't
have one set of numbers for each menu anyway.
About window maximize/minimize commands
This is not possible with linux! (with gtk1.2, there is no way at all, and with
2.0, it only works if the windowmanager supports it, and few of them seem to do so.)
About the window enable/disable commands
Also haven't found a way to make this happen on linux.
About these:
done. (now that was quick, huh?* RunProgram()
I miss: #PB_RunProgram_Hide,#PB_RunProgram_Wait
* MessageRequester
I miss the "Return"-Constants #PB_MessageRequester_Yes,#PB_MessageRequester_No,#PB_MessageRequester_Cancel * MouseButton(#Button)
I miss: #PB_MouseButton_Left,#PB_MouseButton_Right,#PB_MouseButton_Centre

About everything else
Dunno yet.
quidquid Latine dictum sit altum videtur
-
- Enthusiast
- Posts: 613
- Joined: Tue May 06, 2003 2:50 pm
- Location: Germany
- Contact:
Not all here program for Linux or CrossPlatform, keep that in mind. Why not adding these commands for the Windows Programmers, stating that it won't work under Linux???freak wrote:About window maximize/minimize commands
This is not possible with linux! (with gtk1.2, there is no way at all, and with
2.0, it only works if the windowmanager supports it, and few of them seem to do so.)
About the window enable/disable commands
Also haven't found a way to make this happen on linux.
I don't like this assertion: "huh, it won't do under [your OS here] so better don't do it at all"
There are already one or two commands (SetWindowCallback etc.) that will never be ported to linux so why not add more?
Easier for beginners from other languages. For Example: You find InStr() in every other Basic-Language (ok, not in C64-Basic, but in every newer Version)freak wrote:About the requested "alias" commands:
Where is the sense in having two ways to do the same thing? We have avoided this
kind of thing in the past, and it won't start now.
And the rename of the "EventWindowID()" to "EventWindow()" make tense, because WindowId() is the Os-Handle. And both should be in the Lib, because of compatibility.
I write some procedures, which i use in diffrent projekt. When i there must set a current objekt, i will set at it at the end to the old objekt to prevent errors. At the moment it is total impossible. Thats why i write my own File-Handle with Api-Commands to prevent this.About the GetCurrent...() commands
Why need a function to get the current object after you have set it yourself?
You should be aware of what you just did in your code, shouldn't you?
(I just don't see a use for this, do you have an example?)
No, the same Menuitem can be in the Window-Menu, in the PopUp-Menu, and so on. And all the other Menu-Commands need the #Menu.About the menu item commands and a #Menu parameter
There is only one single list of menu items (on the OS side), so you can't
have one set of numbers for each menu anyway.
Maximize should be no problem: Simple use the Desktop-Resolution and maximize the Window manuell (and store the old position).About window maximize/minimize commands
This is not possible with linux! (with gtk1.2, there is no way at all, and with
2.0, it only works if the windowmanager supports it, and few of them seem to do so.)
About minimize: When this is really not possible in Linux: Why not include Dummy-Commands, so the compiler don't break on crossplattform code.
Simulate it: Disable/Enable all GadgetsAbout the window enable/disable commands
Also haven't found a way to make this happen on linux.
The discussion about the "alias" commands has been done a lot. I think our position is quite clear on that.
About Linux:
PureBasic is a cross platform language. That is the reason why many people bought it.
If you want to develop on windows only, why not use the EnableWindow_() command?
I don't know Fred's exact opinion here, but i'd like to keep platform specific
functions at a minimum.
Adding "dummy" commands is not good, because what is the use of a calling
a function if you don't really know if it does anything at all?
Timo
About Linux:
PureBasic is a cross platform language. That is the reason why many people bought it.
If you want to develop on windows only, why not use the EnableWindow_() command?
I don't know Fred's exact opinion here, but i'd like to keep platform specific
functions at a minimum.
Adding "dummy" commands is not good, because what is the use of a calling
a function if you don't really know if it does anything at all?
Timo
quidquid Latine dictum sit altum videtur
It's a fact, this list is huge. Fr34k basically answered all of them, and about the compatibility issue, if the command is very useful and mimic a general behaviour, it can be implemented safely (even if no commands are found in other OS, the behaviour probably can be emulated).
Just a note about aliases: v4.0 will have full Macro support so it will be possible to do such Aliases without code penality. As I discussed before on this topic (search the forums for more informations) I will never implement aliases in the official PureBasic package. Having 2 command name which does absolutely the same action is silly and will lead to confusion. I prefer rename the command if it's absolutely necessary. Of course you will be free to do what you want then and write some include files which mimic such or such langage.
Just a note about aliases: v4.0 will have full Macro support so it will be possible to do such Aliases without code penality. As I discussed before on this topic (search the forums for more informations) I will never implement aliases in the official PureBasic package. Having 2 command name which does absolutely the same action is silly and will lead to confusion. I prefer rename the command if it's absolutely necessary. Of course you will be free to do what you want then and write some include files which mimic such or such langage.
Re: A long list
> I read the manual, i a create a little list full of suggestions:
* GetFileDate(File$) is missing
* SetFileDate(File$,Date) is missing
* GetFileAttribute(File$) is missing
* SetFileAttribute(File$,Attribute) is missing
[Rest snipped]
When you saying "missing" you really mean "requested"... you made me think
that all the above commands existed but just weren't listed in the manual!
> v4.0 will have full Macro support
Woohoo!
Fred, I'd still love v4.0 to be able to NOT compile procedures that are
uncalled... that way I could have a single file full of procedures that act
like a library... and only the called ones get compiled into my exe. I've
written a pre-processor to do this, but if PureBasic did it natively...
* GetFileDate(File$) is missing
* SetFileDate(File$,Date) is missing
* GetFileAttribute(File$) is missing
* SetFileAttribute(File$,Attribute) is missing
[Rest snipped]
When you saying "missing" you really mean "requested"... you made me think
that all the above commands existed but just weren't listed in the manual!

> v4.0 will have full Macro support
Woohoo!

Fred, I'd still love v4.0 to be able to NOT compile procedures that are
uncalled... that way I could have a single file full of procedures that act
like a library... and only the called ones get compiled into my exe. I've
written a pre-processor to do this, but if PureBasic did it natively...

ah, pb, that's a good suggestion, and makes sense... it may mean dual pass compiling, but who cares... pass one would be to check any references, pass two to actually compile the thing excluding unused segments, or something similar, i'd be happy if it would be optional... hmm... didn't japbe include a cutter or something?
( PB6.00 LTS Win11 x64 Asrock AB350 Pro4 Ryzen 5 3600 32GB GTX1060 6GB)
( The path to enlightenment and the PureBasic Survival Guide right here... )
( The path to enlightenment and the PureBasic Survival Guide right here... )
-
- Enthusiast
- Posts: 202
- Joined: Sun Apr 27, 2003 4:44 am
- Location: Michigan, USA
- Contact:
Re: A long list
You have written a pre-processor and doesn't share it?!PB wrote:Fred, I'd still love v4.0 to be able to NOT compile procedures that are uncalled...
(btw.: For jaPBe-Users: Plugin Cutter do the same...)
One Speed-up-Suggestion:
The remove of the unneeded procedures is only needed for "Create executeable". For Compile/Run is this not necassary, because this should be only a fast test.
Re: A long list
> You have written a pre-processor and doesn't share it?!
I did, when it first came out.
It was part of my PBToolBox app that I made,
and one of its functions was to show the programmer the procedures that
weren't called. Unfortunately this app is no longer supported, and only works
with old versions of PureBasic. I might rewrite a standalone version of the
procedure info code, though.
I did, when it first came out.

and one of its functions was to show the programmer the procedures that
weren't called. Unfortunately this app is no longer supported, and only works
with old versions of PureBasic. I might rewrite a standalone version of the
procedure info code, though.
I compile using 5.31 (x86) on Win 7 Ultimate (64-bit).
"PureBasic won't be object oriented, period" - Fred.
"PureBasic won't be object oriented, period" - Fred.