Seite 2 von 4
Re: PB-Tool: Namen der aktuellen Procedure ausgeben lassen
Verfasst: 21.08.2014 14:37
von bobobo
Schön
aber der Messagerequester ist unhandlich.
Wäre es nicht netter wenn die aktuelle Procedure als gehighlight in der Werkzeugtafel
angezeigt werden können sollte haben würde werden sein?
Dafür wäre es natürlich nett wenn man in den Tools neben den anderen
Triggern auch sowas wie "Quelltext geändert" angeben könnte.
Re: PB-Tool: Namen der aktuellen Procedure ausgeben lassen
Verfasst: 21.08.2014 16:18
von Sicro
Anstatt eines normalen MessageRequesters könnte man auch einen mit Timeout verwenden:
MessageRequester mit Timeout
Re: PB-Tool: Namen der aktuellen Procedure ausgeben lassen
Verfasst: 21.08.2014 16:30
von ts-soft
@Sicro
Dann wäre aber der schöne "Crossplattform" effekt wieder weg.
Re: PB-Tool: Namen der aktuellen Procedure ausgeben lassen
Verfasst: 21.08.2014 17:12
von NicTheQuick
Oder eher eine Art Overlay-Window, was nach einer kurzen Zeit wieder verschwindet. Dann müsste man sich nur noch überlegen, wo es erscheinen soll.
Re: PB-Tool: Namen der aktuellen Procedure ausgeben lassen
Verfasst: 21.08.2014 19:07
von Derren
ts-soft hat geschrieben:@Sicro
Dann wäre aber der schöne "Crossplattform" effekt wieder weg.
wieso? Ist doch nicht so schwer sich seinen eigenen "MessageRequester" zu basteln.
Ich hab echt keinen Plan von der IDE und den ganzen SDK's und Scintilla, aber kann man die Nachricht nicht in das Debugger-Gadget (i.d.R unter dem Quelltext) schreiben?
Re: PB-Tool: Namen der aktuellen Procedure ausgeben lassen
Verfasst: 21.08.2014 19:10
von RSBasic
Derren hat geschrieben:Ich hab echt keinen Plan von der IDE und den ganzen SDK's und Scintilla, aber kann man die Nachricht nicht in das Debugger-Gadget (i.d.R unter dem Quelltext) schreiben?
Das wäre auch eine Möglichkeit und ja, das geht selbstverständlich.
Re: PB-Tool: Namen der aktuellen Procedure ausgeben lassen
Verfasst: 21.08.2014 19:47
von c4s
RSBasic hat geschrieben:Derren hat geschrieben:Ich hab echt keinen Plan von der IDE und den ganzen SDK's und Scintilla, aber kann man die Nachricht nicht in das Debugger-Gadget (i.d.R unter dem Quelltext) schreiben?
Das wäre auch eine Möglichkeit und ja, das geht selbstverständlich.

Davon schreibe ich doch u.A.
hier die ganze Zeit. Wenn es dazu "selbstverständlich" eine Möglichkeit gibt, hätte ich mich schon viel früher auf eine weiterhelfende Antwort gefreut.
Re: PB-Tool: Namen der aktuellen Procedure ausgeben lassen
Verfasst: 21.08.2014 19:50
von RSBasic
Sorry, ich hab den vorherigen Beitrag von dir nicht gelesen/gesehen, sondern hab nur auf die Frage von Derren geantwortet.
Re: PB-Tool: Namen der aktuellen Procedure ausgeben lassen
Verfasst: 21.08.2014 20:16
von Kiffi
@c4s: Habe mal grade
den Code von Thomas im Parallelthread geklaut und einen Teil von Deinem Code injiziert:
Code: Alles auswählen
EnableExplicit
Procedure EnumChildProc(hWnd, *lParam.Integer)
Protected CName.s{128}
GetClassName_(hWnd, @CName, 128)
If CName = "ListBox"
*lParam\i = hWnd
ProcedureReturn #False
EndIf
ProcedureReturn #True
EndProcedure
Define hListBox.i, hWnd.i, msg.s
hWnd = FindWindow_(0, "PureBasic 5.30 (x86)") ; Hier dann später: Val( GetEnvironmentVariable("PB_TOOL_MainWindow") )
If hWnd
EnumChildWindows_(hWnd, @EnumChildProc(), @hListBox)
If hListBox
Debug hListBox
msg = "huhu"
SendMessage_(hListBox, #LB_ADDSTRING, 0, @msg)
SendMessage_(hListBox, #LB_SETTOPINDEX, SendMessage_(hListBox, #LB_GETCOUNT, 0, 0) -1, 0)
EndIf
EndIf
Probleme hier: Es wird die erstbeste Listbox verwendet. (Die Prozedurauflistung in der Sidebar ist beispielsweise auch eine Listbox) und die anderen OSler werden nicht erfreut sein.
Grüße ... Peter
Re: PB-Tool: Namen der aktuellen Procedure ausgeben lassen
Verfasst: 21.08.2014 20:30
von RSBasic
Bei mir nimmt er die ListBox aus der Prozedurenliste.
Ich würde es so machen:
Code: Alles auswählen
EnableExplicit
Define hListBox.i, hWnd.i, msg.s
hWnd = FindWindow_(0, "PureBasic 5.30 (x86)") ; Hier dann später: Val( GetEnvironmentVariable("PB_TOOL_MainWindow") )
If hWnd
hListBox = FindWindowEx_(hWnd, 0, "ListBox", 0)
If hListBox
msg = "huhu"
SendMessage_(hListBox, #LB_ADDSTRING, 0, @msg)
SendMessage_(hListBox, #LB_SETTOPINDEX, SendMessage_(hListBox, #LB_GETCOUNT, 0, 0) -1, 0)
EndIf
EndIf
Klappt es bei euch auch?
Bei mir ja. Laut ControlList gibt es in meiner PB-Benutzeroberfläche nur ein ListIconGadget auf der ersten Ebene. Die anderen ListIconGadgets sind ein paar Tiefen drunter, zum Beispiel im PanelGadget (SideBar von PB).