TBH, I'm not that worried about future, it will take some iteration to get something usable for everyone but we will get there !
Happy hacking, glad to see than some of you successfully compiled the IDE

About coding style, I'm seriously considering going OOP style for example the Recent Files management both for plain source code and projects look like this :Fred wrote:You posts are very well done Tristano, thanks for it. You are indeed right when you said it was done only for a small group of dev (actually only 2: Fr34k and me) and we indeed agreed on coding style and such. Feel free to continue your pull requests to make it better for everyone contributing, like puting a BOM for everyone, and using a .cfg instead of storing config at the end of file etc.
TBH, I'm not that worried about future, it will take some iteration to get something usable for everyone but we will get there !
Happy hacking, glad to see than some of you successfully compiled the IDE
Code: Select all
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; CODE GÉNÉRÉ AUTOMATIQUEMENT, NE PAS MODIFIER À
; MOINS D'AVOIR UNE RAISON TRÈS TRÈS VALABLE !!!
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; Code généré par : Dev-Object - V0.9.10
; Nom du projet : Le nom du projet ici
; Nom du fichier : Nom du fichier
; Version du fichier : 0.0.0
; Programmation : À vérifier
; Programmé par : StarBootics
; Date : 03-12-2019
; Mise à jour : 03-12-2019
; Codé pour PureBasic : V5.71 LTS
; Plateforme : Windows, Linux, MacOS X
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
DeclareModule RecentFiles
Interface RecentFiles
GetHistoricSize.a()
GetFileNames.s()
SetHistoricSize(P_HistoricSize.a)
SetFileNames(P_FileNames.s)
LinearSearchFileNames.l(P_FileNames.s)
AddFileNames()
SelectFileNames.i(P_Index.l)
FirstFileNames.i()
LastFileNames.i()
PreviousFileNames.i()
NextFileNames.i()
DeleteFileNames()
ResetFileNames()
ClearFileNames()
FileNamesIndex.l()
FileNamesSize.l()
ReadPrefs(P_GroupName.s)
WritePrefs(P_GroupName.s)
InsertNewFile(P_NewFileName.s)
Free()
EndInterface
Declare.i New(P_HistoricSize.a = 20)
EndDeclareModule
Module RecentFiles
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< Déclaration de la Structure <<<<<
Structure Private_Members
VirtualTable.i
HistoricSize.a
List FileNames.s()
EndStructure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< Les observateurs <<<<<
Procedure.a GetHistoricSize(*This.Private_Members)
ProcedureReturn *This\HistoricSize
EndProcedure
Procedure.s GetFileNames(*This.Private_Members)
ProcedureReturn *This\FileNames()
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< Les mutateurs <<<<<
Procedure SetHistoricSize(*This.Private_Members, P_HistoricSize.a)
*This\HistoricSize = P_HistoricSize
EndProcedure
Procedure SetFileNames(*This.Private_Members, P_FileNames.s)
*This\FileNames() = P_FileNames
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< L'opérateur(s) de fouille linéaire de liste chaînée <<<<<
Procedure.l LinearSearchFileNames(*This.Private_Members, P_FileNames.s)
IsFoundAtIndex.l = -1
ForEach *This\FileNames()
If P_FileNames = *This\FileNames()
IsFoundAtIndex = ListIndex(*This\FileNames())
Break
EndIf
Next
ProcedureReturn IsFoundAtIndex
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< L'operateur(s) d'ajout à la liste chaînée <<<<<
Procedure AddFileNames(*This.Private_Members)
AddElement(*This\FileNames())
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< L'operateur(s) de Sélection dans la liste chaînée <<<<<
Procedure.i SelectFileNames(*This.Private_Members, P_Index.l)
ProcedureReturn SelectElement(*This\FileNames(), P_Index)
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< L'operateur(s) Premier élément de la liste chaînée <<<<<
Procedure.i FirstFileNames(*This.Private_Members)
ProcedureReturn FirstElement(*This\FileNames())
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< L'operateur(s) Dernier élément de la liste chaînée <<<<<
Procedure.i LastFileNames(*This.Private_Members)
ProcedureReturn LastElement(*This\FileNames())
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< L'operateur(s) élément Précédent de la liste chaînée <<<<<
Procedure.i PreviousFileNames(*This.Private_Members)
ProcedureReturn PreviousElement(*This\FileNames())
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< L'operateur(s) élément Suivant de la liste chaînée <<<<<
Procedure.i NextFileNames(*This.Private_Members)
ProcedureReturn NextElement(*This\FileNames())
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< L'operateur(s) Supprimer l'élément courant de la liste chaînée <<<<<
Procedure DeleteFileNames(*This.Private_Members)
DeleteElement(*This\FileNames())
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< L'operateur(s) Reset de la liste chaînée <<<<<
Procedure ResetFileNames(*This.Private_Members)
ResetList(*This\FileNames())
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< L'operateur(s) Clear de la liste chaînée <<<<<
Procedure ClearFileNames(*This.Private_Members)
ClearList(*This\FileNames())
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< L'operateur(s) de numéro d'index de la liste chaînée <<<<<
Procedure.l FileNamesIndex(*This.Private_Members)
ProcedureReturn ListIndex(*This\FileNames())
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< L'operateur(s) de grandeur de la liste chaînée <<<<<
Procedure.l FileNamesSize(*This.Private_Members)
ProcedureReturn ListSize(*This\FileNames())
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< Lecture d'un groupe Préférences <<<<<
Procedure ReadPrefs(*This.Private_Members, P_GroupName.s)
PreferenceGroup(P_GroupName)
*This\HistoricSize = ReadPreferenceLong("HistoricSize", *This\HistoricSize)
FileNames_Max = ReadPreferenceLong("FileNames_Max", 0) - 1
For FileNamesID = 0 To FileNames_Max
AddElement(*This\FileNames())
*This\FileNames() = ReadPreferenceString("FileNames_" + Str(FileNamesID), *This\FileNames())
Next
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< Écriture d'un groupe de Préférences <<<<<
Procedure WritePrefs(*This.Private_Members, P_GroupName.s)
PreferenceGroup(P_GroupName)
WritePreferenceLong("HistoricSize", *This\HistoricSize)
WritePreferenceLong("FileNames_Max", ListSize(*This\FileNames()))
ForEach *This\FileNames()
WritePreferenceString("FileNames_" + Str(ListIndex(*This\FileNames())), *This\FileNames())
Next
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< L'opérateur InsertNewFile <<<<<
Procedure InsertNewFile(*This.Private_Members, P_NewFileName.s)
If LinearSearchFileNames(*This, P_NewFileName) = -1
ResetList(*This\FileNames())
AddElement(*This\FileNames())
*This\FileNames() = P_NewFileName
Else
DeleteElement(*This\FileNames())
ResetList(*This\FileNames())
AddElement(*This\FileNames())
*This\FileNames() = P_NewFileName
EndIf
If ListSize(*This\FileNames()) > *This\HistoricSize
LastElement(*This\FileNames())
DeleteElement(*This\FileNames())
EndIf
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< Le Destructeur <<<<<
Procedure Free(*This.Private_Members)
ClearStructure(*This, Private_Members)
FreeStructure(*This)
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< Le Constructeur <<<<<
Procedure.i New(P_HistoricSize.a = 20)
*This.Private_Members = AllocateStructure(Private_Members)
*This\VirtualTable = ?START_METHODS
*This\HistoricSize = P_HistoricSize
ProcedureReturn *This
EndProcedure
DataSection
START_METHODS:
Data.i @GetHistoricSize()
Data.i @GetFileNames()
Data.i @SetHistoricSize()
Data.i @SetFileNames()
Data.i @LinearSearchFileNames()
Data.i @AddFileNames()
Data.i @SelectFileNames()
Data.i @FirstFileNames()
Data.i @LastFileNames()
Data.i @PreviousFileNames()
Data.i @NextFileNames()
Data.i @DeleteFileNames()
Data.i @ResetFileNames()
Data.i @ClearFileNames()
Data.i @FileNamesIndex()
Data.i @FileNamesSize()
Data.i @ReadPrefs()
Data.i @WritePrefs()
Data.i @InsertNewFile()
Data.i @Free()
END_METHODS:
EndDataSection
EndModule
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< Code généré en : 00.001 secondes (284000.00 lignes/seconde) <<<<<
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< FIN DU FICHIER <<<<<
; <<<<<<<<<<<<<<<<<<<<<<<<<<
No, the IDE is a big project and the idea is to contribute by complying to the actual coding style and rule. We won't accept patchs which refactor files only to do it another way. BTW, PB is not an OOP language, it makes no sense to want to write a fully OOP app with it. It can be useful for some cases (like we did for the tool to be able to have a common way to load/use them) but it's not the rule.StarBootics wrote:About coding style, I'm seriously considering going OOP style for example the Recent Files management both for plain source code and projects look like this :Fred wrote:You posts are very well done Tristano, thanks for it. You are indeed right when you said it was done only for a small group of dev (actually only 2: Fr34k and me) and we indeed agreed on coding style and such. Feel free to continue your pull requests to make it better for everyone contributing, like puting a BOM for everyone, and using a .cfg instead of storing config at the end of file etc.
TBH, I'm not that worried about future, it will take some iteration to get something usable for everyone but we will get there !
Happy hacking, glad to see than some of you successfully compiled the IDE
But I'm not sure if everybody are willing to re-code the entire IDE that way. And it's kind of an announcement but I'm about to release the source code of "Dev-Object" even if it's far from completed. Actually I'm considering to add the XML file support to it in the near future, maybe this week.Code: Select all
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ; CODE GÉNÉRÉ AUTOMATIQUEMENT, NE PAS MODIFIER À ; MOINS D'AVOIR UNE RAISON TRÈS TRÈS VALABLE !!! ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ; Code généré par : Dev-Object - V0.9.10 ; Nom du projet : Le nom du projet ici ; Nom du fichier : Nom du fichier ; Version du fichier : 0.0.0 ; Programmation : À vérifier ; Programmé par : StarBootics ; Date : 03-12-2019 ; Mise à jour : 03-12-2019 ; Codé pour PureBasic : V5.71 LTS ; Plateforme : Windows, Linux, MacOS X ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< DeclareModule RecentFiles Interface RecentFiles GetHistoricSize.a() GetFileNames.s() SetHistoricSize(P_HistoricSize.a) SetFileNames(P_FileNames.s) LinearSearchFileNames.l(P_FileNames.s) AddFileNames() SelectFileNames.i(P_Index.l) FirstFileNames.i() LastFileNames.i() PreviousFileNames.i() NextFileNames.i() DeleteFileNames() ResetFileNames() ClearFileNames() FileNamesIndex.l() FileNamesSize.l() ReadPrefs(P_GroupName.s) WritePrefs(P_GroupName.s) InsertNewFile(P_NewFileName.s) Free() EndInterface Declare.i New(P_HistoricSize.a = 20) EndDeclareModule Module RecentFiles ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ; <<<<< Déclaration de la Structure <<<<< Structure Private_Members VirtualTable.i HistoricSize.a List FileNames.s() EndStructure ; <<<<<<<<<<<<<<<<<<<<<<<<<<<< ; <<<<< Les observateurs <<<<< Procedure.a GetHistoricSize(*This.Private_Members) ProcedureReturn *This\HistoricSize EndProcedure Procedure.s GetFileNames(*This.Private_Members) ProcedureReturn *This\FileNames() EndProcedure ; <<<<<<<<<<<<<<<<<<<<<<<<< ; <<<<< Les mutateurs <<<<< Procedure SetHistoricSize(*This.Private_Members, P_HistoricSize.a) *This\HistoricSize = P_HistoricSize EndProcedure Procedure SetFileNames(*This.Private_Members, P_FileNames.s) *This\FileNames() = P_FileNames EndProcedure ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ; <<<<< L'opérateur(s) de fouille linéaire de liste chaînée <<<<< Procedure.l LinearSearchFileNames(*This.Private_Members, P_FileNames.s) IsFoundAtIndex.l = -1 ForEach *This\FileNames() If P_FileNames = *This\FileNames() IsFoundAtIndex = ListIndex(*This\FileNames()) Break EndIf Next ProcedureReturn IsFoundAtIndex EndProcedure ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ; <<<<< L'operateur(s) d'ajout à la liste chaînée <<<<< Procedure AddFileNames(*This.Private_Members) AddElement(*This\FileNames()) EndProcedure ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ; <<<<< L'operateur(s) de Sélection dans la liste chaînée <<<<< Procedure.i SelectFileNames(*This.Private_Members, P_Index.l) ProcedureReturn SelectElement(*This\FileNames(), P_Index) EndProcedure ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ; <<<<< L'operateur(s) Premier élément de la liste chaînée <<<<< Procedure.i FirstFileNames(*This.Private_Members) ProcedureReturn FirstElement(*This\FileNames()) EndProcedure ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ; <<<<< L'operateur(s) Dernier élément de la liste chaînée <<<<< Procedure.i LastFileNames(*This.Private_Members) ProcedureReturn LastElement(*This\FileNames()) EndProcedure ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ; <<<<< L'operateur(s) élément Précédent de la liste chaînée <<<<< Procedure.i PreviousFileNames(*This.Private_Members) ProcedureReturn PreviousElement(*This\FileNames()) EndProcedure ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ; <<<<< L'operateur(s) élément Suivant de la liste chaînée <<<<< Procedure.i NextFileNames(*This.Private_Members) ProcedureReturn NextElement(*This\FileNames()) EndProcedure ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ; <<<<< L'operateur(s) Supprimer l'élément courant de la liste chaînée <<<<< Procedure DeleteFileNames(*This.Private_Members) DeleteElement(*This\FileNames()) EndProcedure ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ; <<<<< L'operateur(s) Reset de la liste chaînée <<<<< Procedure ResetFileNames(*This.Private_Members) ResetList(*This\FileNames()) EndProcedure ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ; <<<<< L'operateur(s) Clear de la liste chaînée <<<<< Procedure ClearFileNames(*This.Private_Members) ClearList(*This\FileNames()) EndProcedure ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ; <<<<< L'operateur(s) de numéro d'index de la liste chaînée <<<<< Procedure.l FileNamesIndex(*This.Private_Members) ProcedureReturn ListIndex(*This\FileNames()) EndProcedure ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ; <<<<< L'operateur(s) de grandeur de la liste chaînée <<<<< Procedure.l FileNamesSize(*This.Private_Members) ProcedureReturn ListSize(*This\FileNames()) EndProcedure ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ; <<<<< Lecture d'un groupe Préférences <<<<< Procedure ReadPrefs(*This.Private_Members, P_GroupName.s) PreferenceGroup(P_GroupName) *This\HistoricSize = ReadPreferenceLong("HistoricSize", *This\HistoricSize) FileNames_Max = ReadPreferenceLong("FileNames_Max", 0) - 1 For FileNamesID = 0 To FileNames_Max AddElement(*This\FileNames()) *This\FileNames() = ReadPreferenceString("FileNames_" + Str(FileNamesID), *This\FileNames()) Next EndProcedure ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ; <<<<< Écriture d'un groupe de Préférences <<<<< Procedure WritePrefs(*This.Private_Members, P_GroupName.s) PreferenceGroup(P_GroupName) WritePreferenceLong("HistoricSize", *This\HistoricSize) WritePreferenceLong("FileNames_Max", ListSize(*This\FileNames())) ForEach *This\FileNames() WritePreferenceString("FileNames_" + Str(ListIndex(*This\FileNames())), *This\FileNames()) Next EndProcedure ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ; <<<<< L'opérateur InsertNewFile <<<<< Procedure InsertNewFile(*This.Private_Members, P_NewFileName.s) If LinearSearchFileNames(*This, P_NewFileName) = -1 ResetList(*This\FileNames()) AddElement(*This\FileNames()) *This\FileNames() = P_NewFileName Else DeleteElement(*This\FileNames()) ResetList(*This\FileNames()) AddElement(*This\FileNames()) *This\FileNames() = P_NewFileName EndIf If ListSize(*This\FileNames()) > *This\HistoricSize LastElement(*This\FileNames()) DeleteElement(*This\FileNames()) EndIf EndProcedure ; <<<<<<<<<<<<<<<<<<<<<<<<<< ; <<<<< Le Destructeur <<<<< Procedure Free(*This.Private_Members) ClearStructure(*This, Private_Members) FreeStructure(*This) EndProcedure ; <<<<<<<<<<<<<<<<<<<<<<<<<<< ; <<<<< Le Constructeur <<<<< Procedure.i New(P_HistoricSize.a = 20) *This.Private_Members = AllocateStructure(Private_Members) *This\VirtualTable = ?START_METHODS *This\HistoricSize = P_HistoricSize ProcedureReturn *This EndProcedure DataSection START_METHODS: Data.i @GetHistoricSize() Data.i @GetFileNames() Data.i @SetHistoricSize() Data.i @SetFileNames() Data.i @LinearSearchFileNames() Data.i @AddFileNames() Data.i @SelectFileNames() Data.i @FirstFileNames() Data.i @LastFileNames() Data.i @PreviousFileNames() Data.i @NextFileNames() Data.i @DeleteFileNames() Data.i @ResetFileNames() Data.i @ClearFileNames() Data.i @FileNamesIndex() Data.i @FileNamesSize() Data.i @ReadPrefs() Data.i @WritePrefs() Data.i @InsertNewFile() Data.i @Free() END_METHODS: EndDataSection EndModule ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ; <<<<< Code généré en : 00.001 secondes (284000.00 lignes/seconde) <<<<< ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ; <<<<<<<<<<<<<<<<<<<<<<<<<< ; <<<<< FIN DU FICHIER <<<<< ; <<<<<<<<<<<<<<<<<<<<<<<<<<
Best regards
StarBootics
Fred, it would be nice to list the must-have (unavoidable) rules for future contributions.Fred wrote: No, the IDE is a big project and the idea is to contribute by complying to the actual coding style and rule.
That thread looks like it's about one error, which is already marked Solved. I wonder if we need a big common thread for all build issues? Or should I add other issues to your thread?IceSoft wrote:Yes.kenmo wrote:Has anyone successfully got the IDE to build yet?
viewtopic.php?f=5&t=74155
+1Denis wrote:Fred, it would be nice to list the must-have (unavoidable) rules for future contributions.Fred wrote: No, the IDE is a big project and the idea is to contribute by complying to the actual coding style and rule.
PureBasic IDE.pbp is loaded with succes.#BUILD_DIRECTORY=D:\PureBasic_Ide\purebasic-master\Build\x64\ide\
#PureBasicPath=G:\PureBasic\PureBasic_5_71_x64\
Code: Select all
Procedure CloseSplashScreen()
Static IsClosed = 0
If IsClosed = 0 And NoSplashScreen = 0
IsClosed = 1
CloseWindow(#WINDOW_Startup) <--- ici
FreeImage(#IMAGE_Startup)
EndIf
EndProcedure
I set debugger off and try to compile again but now i get this error[10 :52 :39] Attente du démarrage du programme...
[10 :52 :39] Type d'exécutable: Windows - x64 (64bit, Unicode, Thread)
[10 :52 :39] Exécutable démarré.
[10 :52 :40] [ERREUR] PureBasic.pb (Ligne: 278)
[10 :52 :40] [ERREUR] Le #Window spécifié n'est pas initialisé.
Any idea ?cannot initialise scintilla engine!
Make sure the "scintilla.dll" is placed in the compiler subdirectory of your Purebasic setup
Ok, ThanksFred wrote:You need to define PureBasicPath$ to a purebasic installation in WindowsMisc.pb line 100
Code: Select all
Procedure.s GetIndentContinuationPrefix(Previous$)
; Use this for a simple "block mode" indentation
;ProcedureReturn GetIndentPrefix(Previous$) + " "
Code: Select all
Procedure.s GetIndentContinuationPrefix(Previous$)
; Use this for a simple "block mode" indentation
ProcedureReturn GetIndentPrefix(Previous$) + Space(TabLength)
You have a most recent version installed of Windows SDK.ChrisR wrote:Should be another topic, placed maybe in a New PureBasic Opensource Section
No worries for UnxUtils unzipped in "Program Files (x86)"
Same for the installation of en_visual_studio_community_2013_with_update_5_x86_6816332.exe
But when installing Windows 7 SDK, I get the message :
Some components cannot be installed - Some Windows SDK compopnents require the RTM .Net Framework 4. Setup detect a pre-release version... these components will not be installed...
And if I try to install .NET Framework 4 or 4.8 Runtime, it tells me that it is already part of this operating system.
I am on Windows 10 x64 1909 and latest Windows 10 SDK 18362 is already installed.
Any idea what my problem was?