Restored from previous forum. Originally posted by ebs.
In my never-ending quest to figure out why the PureBasic Editor v3.42 doesn't show anything in the Procedure Browser under Win XP Pro, I DL'ed the source for v3.41 from the PureBasic Resources Site.
My question:
Why do the following statements (from PickColor.pb) cause an error during compilation? ("LSet() : Incorrect number of parameters.)
ProcedureReturn LSet(Str(Value),3,"0")
ProcedureReturn "$"+LSet(Hex(Value),2,"0")
According to the Help file, the syntax for the LSet keyword is correct.
Just for information sake, after I rewrote the two statements above to eliminate "LSet()", everything compiled correctly to an executable. Unfortunately, the compiled program still has an empty Procedure Browser.
I don't know why this code (from ProcedureParser.pb) doesn't find the procedures; it certainly seems like it should work.
CompareMemoryString(*WordStart, "procedure ", 1, 10)...
Has anyone else experimented with getting this to work under Win XP? From the messages I've seen in the Forums, other operating systems don't seem to have this problem, just XP.
Looking for help/suggestions,
Eric
Editor 3.42 and Win XP
-
BackupUser
- PureBasic Guru

- Posts: 16777133
- Joined: Tue Apr 22, 2003 7:42 pm
-
BackupUser
- PureBasic Guru

- Posts: 16777133
- Joined: Tue Apr 22, 2003 7:42 pm
-
BackupUser
- PureBasic Guru

- Posts: 16777133
- Joined: Tue Apr 22, 2003 7:42 pm
Restored from previous forum. Originally posted by ebs.
Fred,
I think i got it!!!
In UpdateProcedureList() (see below), the text is copied from the RichEditGadget into a buffer (TextBuffer). In my case, nothing is copied!
The statement I added after the SendMessage_() call shows that the byte at the start of the TextBuffer is zero. This prevents ProcedureParser() from doing anything, because of the loop statement:
While (*TextBuffer\b)
Now, as to WHY nothing is copied from the RichEditGadget...
I think it *might* have something to do with the version of RICHED20.DLL which is used to create the RichEditGadget. I have seen a few web sites that mention that certain versions of this component are buggy, including the one in Windows XP. Can you please tell me the date and exact size (in bytes) of RICHED20.DLL on your system? It's in the Windows\System32 directory.
I REALLY hope this it is the reason, because I want my Procedure Browser!!!
[/quote]
[quote]Originally posted by fred
I run XP all the day and it works fine here.. If you could trace back why nothing is displayed on your config, it would be very useful. See in 'ProcedureParser.pb' I guess. About LSet() it's because v3.40 has a bugged command.
Fred - AlphaSND
Fred,
I think i got it!!!
In UpdateProcedureList() (see below), the text is copied from the RichEditGadget into a buffer (TextBuffer). In my case, nothing is copied!
The statement I added after the SendMessage_() call shows that the byte at the start of the TextBuffer is zero. This prevents ProcedureParser() from doing anything, because of the loop statement:
While (*TextBuffer\b)
Now, as to WHY nothing is copied from the RichEditGadget...
I think it *might* have something to do with the version of RICHED20.DLL which is used to create the RichEditGadget. I have seen a few web sites that mention that certain versions of this component are buggy, including the one in Windows XP. Can you please tell me the date and exact size (in bytes) of RICHED20.DLL on your system? It's in the Windows\System32 directory.
I REALLY hope this it is the reason, because I want my Procedure Browser!!!
[/quote]
Code: Select all
Procedure UpdateProcedureList()
TextLength = SendMessage_(*RichEditGadget, #WM_GETTEXTLENGTH, 0, 0)
TextBuffer = AllocateMemory(#MEM_UPDATEPROCEDURELIST, TextLength+1, 0)
If TextBuffer
SendMessage_(*RichEditGadget, #WM_GETTEXT, TextLength, TextBuffer)
ChangeStatus("*TextBuffer = " + Str(*TextBuffer))
ProcedureParser(TextBuffer)
FreeMemory(#MEM_UPDATEPROCEDURELIST)
EndIf
EndProcedure
I run XP all the day and it works fine here.. If you could trace back why nothing is displayed on your config, it would be very useful. See in 'ProcedureParser.pb' I guess. About LSet() it's because v3.40 has a bugged command.
Fred - AlphaSND
-
BackupUser
- PureBasic Guru

- Posts: 16777133
- Joined: Tue Apr 22, 2003 7:42 pm
-
BackupUser
- PureBasic Guru

- Posts: 16777133
- Joined: Tue Apr 22, 2003 7:42 pm
-
BackupUser
- PureBasic Guru

- Posts: 16777133
- Joined: Tue Apr 22, 2003 7:42 pm
Restored from previous forum. Originally posted by fred.
TextBuffer and *TextBuffer aren't the same variable. so it's ok. could make more test to see if the *TextBuffer\b is really null in the ProcedureParser() procedure ? Or may be you can join IRC at:
irc.debian.org
port 6667
channel #PureBasic
I would like kill this bug ASAP.
Fred - AlphaSND
TextBuffer and *TextBuffer aren't the same variable. so it's ok. could make more test to see if the *TextBuffer\b is really null in the ProcedureParser() procedure ? Or may be you can join IRC at:
irc.debian.org
port 6667
channel #PureBasic
I would like kill this bug ASAP.
Fred - AlphaSND
-
BackupUser
- PureBasic Guru

- Posts: 16777133
- Joined: Tue Apr 22, 2003 7:42 pm
Restored from previous forum. Originally posted by ebs.
Fred,
Yes, when I examine *TextBuffer\b in ProcedureParser(), it *is* 0.
I'm still convinced that the text isn't being copied for some reason.
Eric
Fred,
Yes, when I examine *TextBuffer\b in ProcedureParser(), it *is* 0.
I'm still convinced that the text isn't being copied for some reason.
Eric
Originally posted by fred
TextBuffer and *TextBuffer aren't the same variable. so it's ok. could make more test to see if the *TextBuffer\b is really null in the ProcedureParser() procedure ? Or may be you can join IRC at:
irc.debian.org
port 6667
channel #PureBasic
I would like kill this bug ASAP.
Fred - AlphaSND