Werkzeug-Wünsche für PureBasic/SpiderBasic

Du brauchst Grafiken, gute Programme oder Leute die dir helfen? Frag hier.
Benutzeravatar
Josh
Beiträge: 1028
Registriert: 04.08.2009 17:24

Re: Werkzeug-Wünsche für PureBasic/SpiderBasic

Beitrag von Josh »

RSBasic hat geschrieben:Nur frage ich mich, wenn ich es eh in einem separaten Fenster bereitstellen kann, dann könnte man auch zwei PB-IDEs gleichzeitig nebeneinander laufen lassen oder? Oder gibt es einen Nachteil?
Das hat folgende Nachteile:
  • Mit dem Splitter kann man die Codeausschnitte schön untereinander sehen, was bei einem zweiten Fenster nicht der Fall ist.
  • Mit dem Splitter ändert sich der Code im zweiten SCI Fenster automatisch mit, da beide mit dem gleichen Dokumenten Zeiger arbeiten.
  • Zwei Ide's mit dem gleichen Quelltext zu öffnen ist eine Schuss ins eigene Knie (mach ich trotzdem auch öfter mal :). Da machst die ganzen Änderungen in der einen Ide, speicherst, schließt die Ide und aus irgendeinen blöden Grund speicherst du dann aus der zweiten Ide noch mal. Alles futsch :(
Glaube auch nicht, dass das so einfach zu verwirklichen ist, da der Splitter, soweit ich weiß, keine Funktion von SCI ist. Wünschen würde ich mir es trotzdem :D
Benutzeravatar
Kurzer
Beiträge: 1614
Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg

Re: Werkzeug-Wünsche für PureBasic/SpiderBasic

Beitrag von Kurzer »

Moin RSBasic,

sorry, ich meinen den Rechner gestern auf Energiesparen geschaltet statt herunterzufahren, von daher war ich vermutlich im DiscordChat noch als angemeldet angezeigt worden. Ich habe deine Nachricht in Discord daher nicht ignoriert, ich war schlicht nicht mehr am Rechner. :oops:

Wegen des Splitviews: Ja, das hattest Du oder jemand anderes schon mal erwähnt, dass es nicht geht sich so tief in die IDE zu hacken, dass man dort ein Splitter Gadget installieren könnte.

Mir fallen dazu folgenden Überlegungen ein:

1) Du hast ja in Deinem Multicolor Prozedur List Tool bereits einen Tab im Werkzeugpanel vom PB "hijacken" können. Wäre es denkbar das zweite Scintilla Gadget in das Panel zu legen in dem die IDE eigene Debugausgabe liegt? Also direkt unter dem jetzigen Scintillagadget des Editors. Evtl. kannst Du dort auch eine Buttonleiste platzieren, mit der man zwischen Debugausgabe und Splitview umschalten kann?

Bild

2) Eine andere Möglichkeit wäre ein borderless Window, welches sich exakt über der unteren Hälfte des PB eigenen ScintillaGadgets platziert. Dies würde allerdings voraussetzen, dass Du in der Lage bist die Höhe des PB eigenen Scintillagadgets zu verkleinern, so dass das Gadget nur noch bis zum Anfang deiner Overlay-Fensters reicht.

Bei genauer Überlegung wird es hier aber vermutlich Fokusprobleme mit der IDE geben. Wenn Dein Fenster den Fokus hat, dann hat die IDE ihn nicht. Kurz mal F5 zum compilieren drücken wird dann nicht funktionieren. Hmmm.

Bild

Gruß Kurzer
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2023: 56 Jahre.
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Werkzeug-Wünsche für PureBasic/SpiderBasic

Beitrag von RSBasic »

Hi Kurzer,

danke für deine Vorschläge. Ich werde heute Abend mal schauen, prüfen und testen, was ich machen kann.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Kurzer
Beiträge: 1614
Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg

Re: Werkzeug-Wünsche für PureBasic/SpiderBasic

Beitrag von Kurzer »

Supi.

Die Höhe des PB eigenen Scintillas zu verändern geht zumindest Nebenwirkungsfrei.
Ich habe das gerade mal mit dem WinSpy Tool getestet:

Bild
Zuletzt geändert von Kurzer am 25.06.2019 14:52, insgesamt 1-mal geändert.
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2023: 56 Jahre.
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Werkzeug-Wünsche für PureBasic/SpiderBasic

Beitrag von RSBasic »

Was passiert, wenn du den Tab wechselst oder die Fenstergröße änderst oder die Splitter-Leiste benutzt? Ich glaube, spätestens dann wird die ScintillaGadget-Größe resetet.
Das müsste mein Tool dann abfragen und die Größe automatisch neu setzen.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Kurzer
Beiträge: 1614
Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg

Re: Werkzeug-Wünsche für PureBasic/SpiderBasic

Beitrag von Kurzer »

Ja, das stimmt. Sobald Du den Tab wechselst oder die Fenstergröße änderst oder den Splitter unten bewegst, wird das Scintillagadget wieder angepasst. Das könnte ne flackerige Angelegenheit werden. Wirklich zu schade, dass Fred das nicht nativ einbaut.

Aber mal sehen, bei manchen Dingen kam es dann ja doch klammheimlich, nachdem einige User sich Behelfslösungen gebaut hatten. Siehe z.B. BindEvent(). Da haben sich einige vorher auch diverse Eventmanager programmiert (mich eingeschlossen) und irgendwann *plopp* gabs dann BindEvent() nativ. <)
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2023: 56 Jahre.
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Werkzeug-Wünsche für PureBasic/SpiderBasic

Beitrag von RSBasic »

Hi Kurzer,

ich habe angefangen, das Projekt "SplitView" umzusetzen und ist inzwischen größtenteils fertig und es sieht derzeit so aus:
Bild

Grundsätzlich funktioniert es ganz gut und besser, als ich dachte. Man kann es jederzeit verkleinern und vergrößern.
ScintillaGadget inkl. Syntax Highlighting mit den PB-Farben bzw. aus den PB-Einstellungsdatei ist fertig vorbereitet.

Das einzige, was noch fehlt, ist die Implementierung des ScintillaGadgets, was grundsätzlich kein Problem ist, aber ich habe leider was festgestellt.
Ich wollte gerade #SCI_GETDOCPOINTER und #SCI_SETDOCPOINTER benutzen, aber es funktioniert nicht mit fremden Prozessen.
Wenn man zwei ScintillaGadgets auf einem eigenen Fenster hat, dann kann man den DocPointer problemlos ermitteln und setzen, aber wenn ich versuche, den DocPointer von PB auf mein ScintillaGadget zu setzen, dann stürzt mein Werkzeug ohne Fehler ab. Ich bekomme nur die Fehlermeldung "Das mit dem Debugger getestete Executable endete unerwartet", mehr nicht. :evil:
Wenn ich da keine Lösung finde, siehts schlecht aus. Die einzige Alternative wäre, wenn ich den Quellcode manuell ermittle und dort einfüge und mit dem PB-ScintillaGadget manuell syncronisiere, aber die saubere und direkte Lösung wäre schon SCI_SETDOCPOINTER.
Hat jemand von euch eine Idee?
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Werkzeug-Wünsche für PureBasic/SpiderBasic

Beitrag von RSBasic »

Ich habe jetzt einen Thread im englischen Forum erstellt: https://www.purebasic.fr/english/viewto ... 0&p=538501
Ich hoffe, jemand kann mir helfen.
Sonst kann ich höchstens nur so machen, dass ich den Quellcode ermittle und im zweiten ScintillaGadget einfüge und auf ReadOnly setze. Es wäre natürlich cool, wenn #SCI_SETDOCPOINTER funktionieren könnte, denn dann wärs perfekt.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Kurzer
Beiträge: 1614
Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg

Re: Werkzeug-Wünsche für PureBasic/SpiderBasic

Beitrag von Kurzer »

Moin RSBasic,
ich habe den englischen Thread gesehen. Schade, dass das mit dem DOC-Pointer nicht prozessübergreifend funktioniert.

Mit persönlich würde ein ReadOnly-Gadget reichen (ich hoffe, dass man das in Scintilla so einstellen kann, damit man nicht versehentlich in deinem Gadget zu tippen anfängt). Du musst auch keine Klimmzüge machen, um festzustellen, ob sich der Code im PB eigenen Scintilla verändert hat. Ein simpler "Update" Button würde reichen, der den Code in deinem Scintilla Gadget aktualisiert.
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2023: 56 Jahre.
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Werkzeug-Wünsche für PureBasic/SpiderBasic

Beitrag von RSBasic »

Es gibt Neuigkeiten.
Der User #NULL hat im englischen Forum eine Idee gepostet.
Seine Idee war, dass man ein ScintillaGadget aus einem neuen Tab nimmt und dieses für die SplitView missbraucht.
Das habe ich ausprobiert und es funktioniert gut:
Bild

Jetzt muss ich nur schauen, wie ich im PB-Prozess ein neues ScintillaGadget erstelle oder einen neuen Tab erstelle und verstecke. Auf die Tableiste habe ich mit WinAPI keinen Zugriff, weil das selbstgezeichnet ist. (CanvasGadget)
Vielleicht gibt es eine Möglichkeit, eine interne Funktion/Prozedur im PB-Prozess auszuführen, um ein neues ScintillaGadget zu erstellen.
Wenn ich keine Möglichkeit finde, ein ScintillaGadget erstellen zu lassen, dann kann ich alternativ den Menü-Eintrag (Datei > Neu) simulieren. Muss ich mal schauen.
Wenn das alles nicht geht, dann kann ich nur so machen, dass der User selber einen Tab öffnet, der dann für SplitView verwendet wird.
Oder dafür sorgen, dass beim PB-Start immer eine spezielle PB-Datei aus meinem Werkzeug-Ordner geladen wird.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Antworten