Seite 3 von 4

Re: PB-Tool: Namen der aktuellen Procedure ausgeben lassen

Verfasst: 21.08.2014 20:37
von Kiffi
RSBasic hat geschrieben:Klappt es bei euch auch?
Leider nicht. Das ist abhängig davon, welches 'Layout' man in der IDE eingestellt hat. Mit dem Problem hat auch STARGÅTE im englischen Forum gepostet.

Grüße ... Peter

Re: PB-Tool: Namen der aktuellen Procedure ausgeben lassen

Verfasst: 21.08.2014 20:39
von RSBasic
Hm schade. Du kannst bei dir mal WinSpy ausführen und schauen (wenn du Zeit hast^^), was für Gadgets bei dir gefunden werden, die du mit Hilfe von WinAPI gezielt ansteuern kannst. Aber wenn sich das Layout je Version und/oder je Einstellung ändert, dann ist das schwieriger.

Re: PB-Tool: Namen der aktuellen Procedure ausgeben lassen

Verfasst: 21.08.2014 20:50
von ts-soft
Der Code von RSBasic versagt leider, beim Auffinden.
Ansonsten wird kein Text eingefügt.

Die Sidebar ist ja flexibel, also "Proceduren" muß nicht vorhanden sein, ausserdem könnte sich dort noch
ein zweites Element befinden, welches "ListBox" nutzt, zumindest in späteren Versionen.

Bisher also zu unsicher das ganze, aber es gibt bestimmt noch anderen Möglichkeiten.

Gruß
Thomas

Re: PB-Tool: Namen der aktuellen Procedure ausgeben lassen

Verfasst: 21.08.2014 21:10
von RSBasic
@Kiffi & @ts-soft
Klappt es jetzt bei euch?

Code: Alles auswählen

EnableExplicit

Define Handle
Define msg.s = "huhu"

Handle = FindWindow_(0, "PureBasic 5.30 (x86)") ; Hier dann später: Val( GetEnvironmentVariable("PB_TOOL_MainWindow") )
Handle = FindWindowEx_(Handle, 0, "PureSplitter", 0)
Handle = FindWindowEx_(Handle, 0, "PureSplitter", 0)
Handle = FindWindowEx_(Handle, 0, "ListBox", 0)
If Handle
  SendMessage_(Handle, #LB_ADDSTRING, 0, @msg)
  SendMessage_(Handle, #LB_SETTOPINDEX, SendMessage_(Handle, #LB_GETCOUNT, 0, 0) -1, 0)
EndIf

Re: PB-Tool: Namen der aktuellen Procedure ausgeben lassen

Verfasst: 21.08.2014 21:14
von Kiffi
@RSBasic: ja, das funktioniert bei mir jetzt. Wie sieht's bei den anderen aus?

Das größte Problem sehe ich allerdings darin, dass selbst wenn wir einen Weg finden, diese Information irgendwo zuverlässig in der IDE anzuzeigen, einen unverhältnismäßig großen Aufwand betreiben müssen, um den Code auf allen OS lauffähig zu bekommen.

Eigentlich halte ich nach wie vor die MessageRequester-Lösung noch immer für die einfachste (auch wenn sie dröge anmutet). Das Ding kann man so lange offen lassen, wie man will und via 'Return', 'Space' oder 'Escape' quittieren (die Hände sind ja ohnehin an der Tastatur).

Ich habe jetzt den Code im ersten Posting mit dem Tipps von Sicro (vielen Dank dafür :allright:) aktualisiert.

Grüße ... Peter

Re: PB-Tool: Namen der aktuellen Procedure ausgeben lassen

Verfasst: 21.08.2014 21:24
von ts-soft
RSBasic hat geschrieben:@Kiffi & @ts-soft
Klappt es jetzt bei euch?
Jetzt klappt es. Aber ehrlich gesagt, EnumChildWindow_ ist der empfohlene Weg von MS und
FindWindowEx_ sollte man vermeiden (gilt natürlich auch für FindWindow_).

"huhu" sehe ich auch, hatte vorher auf die falsche ListBox geschielt (in der SideBar) :oops:

Re: PB-Tool: Namen der aktuellen Procedure ausgeben lassen

Verfasst: 21.08.2014 21:26
von Derren
RSBasic hat geschrieben:@Kiffi & @ts-soft
Klappt es jetzt bei euch?
Klappt bei mir nicht. PB 5.22
Oder läuft das nur als Tool und nicht direkt ausgeführt?

Re: PB-Tool: Namen der aktuellen Procedure ausgeben lassen

Verfasst: 21.08.2014 21:30
von ts-soft
@Derren
Hast Du den String angepaßt, damit er Deine IDE findet?

Code: Alles auswählen

Handle = FindWindow_(0, "PureBasic 5.22 (x86)")
wahrscheinlich

Re: PB-Tool: Namen der aktuellen Procedure ausgeben lassen

Verfasst: 21.08.2014 21:31
von RSBasic
Man könnte auch den anderen Code verwenden, aber im Enum-Code muss aber auf jeden Fall besser abgefragt werden, weil sonst passieren kann, dass er die falsche ListBox nimmt, wie bei mir vorhin. Also auch nicht so ganz sicher.
Mal schauen, ob es eine andere Möglichkeit gibt.

@Derren
Falls es nach der Titelanpassung immernoch nicht klappt, dann ist möglicherweise die interne Gadget-Struktur in der von dir verwendete Version anders. Versuche den folgenden Code: http://purebasic.fr/german/viewtopic.ph ... 50#p324950
Ich hatte vorhin auch eine ältere Version (5.21) und da wars anders.

Re: PB-Tool: Namen der aktuellen Procedure ausgeben lassen

Verfasst: 21.08.2014 21:57
von Derren
@ts-soft: Ne -_- :coderselixir:
Ging trotzdem nicht

@RSBasic: Jop, der Code geht :)


Am besten wär's doch, wenn man Tools in der Sidebar einfügen könnte. So Widget-mäßig. Fred, Freak? :mrgreen:
(dann hab ich auch das Wetter im Blick ohne die IDE verlassen zu müssen :lol: )