• In SciTE - Farbig hervorheben: Aktuelles Tab Item lese ich gerade, wie BugFix die beliebte IDE für AutoIt modifiziert hat.
    Mit dem Gedanken SciTE auch für andere Anwendungen einsetzen zu wollen habe ich mich auch schon getragen. Nur ist mir das ganze Prozedere noch nicht so richtig, d.h. eigentlich gar nicht klar. Deshalb würde ich mich sehr freuen, wenn jemand mit diesbezüglichen Erfahrungen -> BugFix (?) für SciTE ein ausführliches Tutorial (in deutsch) erstellt.

    Eine Alternative wäre vielleicht auch das hier -> Dll erstellen und mit AutoIt nutzen - FreeBasic Tutorial genannte FreeBasic mit Editor/IDE -> https://www.freebasic-portal.de/downloads/ides…dit-ide-30.html. Nur habe ich dort keinen Hinweis gefunden, daß auch die COM-Technologie unterstützt wird, was ja bei AutoIt mit SciTE der Fall ist.

    Ansonsten wünsche ich allen "AutoIt`ern" schöne Feiertage und alles Gute im neuen Jahr

    Grüsse aus Berlin

    PSblnkd

  • Was für "andere Anwendungen" hast du denn so im Kopf?

    Na ja, nicht nur im Kopf, sondern viel auch auf Papier/Datei ... Es gibt da so'n Buchprojekt -> http://ps-blnkd.de/SDK_Inh.pdf und http://ps-blnkd.de/SDK-T2_Inh.pdf.
    In TurboCAD war bis zur Version 10.5 eine VBA-IDE integriert. In den nachfolgenden Versionen konnte man sich dann nur noch mit EXCEL-VBA behelfen. Neuerdings haben sie jetzt eine "Ruby-Console" als Ersatz integriert - ist wirklich ein "toller Ersatz". Deshalb suche ich schon lange nach einer adäquaten Ersatzlösung. Wenn man SciTE mit IntelliSense dort integrieren könnte - das wär's vielleicht ...
    Mit AutoIt habe ich Standalone-Lösungen programmiert, weil auch mit der VBA-IDE so etwas nicht möglich ist, z.B. einen Stücklisten-Generator -> https://ww3.cad.de/foren/ubb/Forum229/HTML/000010.shtml (ganz am Ende des Threads) ...

    Grüsse aus Berlin

    PSblnkd

  • weil auch mit der VBA-IDE so etwas nicht möglich ist

    So richtig klar ist mir dein Ziel noch nicht.
    In erster Linie ist SciTE ein Editor. Durch den Lua-basierten Unterbau ist ScITE auch sehr gut als IDE für viele Programmiersprachen geeignet.
    Konkretisiere bitte mal, was SciTE können soll und ich mach mir Gedanken, wie man dazu eine allgemeine Anleitung formuliert.

  • BugFix

    Danke für Deine Erklärung. Mir schwebt halt vor, für die ehemals in TurboCAD (Prof.) integrierte VBA-IDE einen adäquaten Ersatz mit gleicher o. ähnlicher Funktionalität zu finden.
    Was bei SciTE aber z.B. fehlt, sind die bei VB(A) vorhandenen Debugger-Funktionen, z.B.:

    - Schrittbetrieb mit Anzeige der Variablen-Inhalte,
    - Haltepunkte setzten/löschen und Abarbeitung bis dahin,
    - Prozedur-Abarbeitung usw.

    Der Schrittbetrieb ist sehr wichtig und könnte vielleicht mit der Einzeilen-Funktionalität von
    (-> https://www.autoitscript.com/autoit3/docs/intro/running.htm)
    Run a single line of code:
    AutoIt3.exe [/ErrorStdOut] /AutoIt3ExecuteLine "command line"
    Execute one line of code.
    realisiert werden.
    Wie man dabei Haltepunkte setzt/löscht oder gar eine Prozedur-Abarbeitung realisiert - momentan (noch) keine Ahnung.
    Die Frage ist halt:
    Kann man in die Menü-Struktur von SciTE die o.g. genannten Elemente zusätzlich einbauen, d.h. zusätzlich zu den derzeit bereits vorhandenen:
    - "Go" (Interpreter-Funktion mit AutoIt3.exe),
    - "Compile" (Erzeugung einer lauffähigen exe-Datei mit Aut2exe.exe)
    und dabei das Syntax-HighLighning entsprechnend der neuen Funktionalität anpassen. Irgendwie muß das ja gehen, sonst wäre es auch für AutoIt nicht anpassbar gewesen ...

    Deshalb wäre ich (wir?) an einer ausführlichen Erklärung (Tutorial) für SciTE sehr interessiert.

    Grüsse aus Berlin verbunden mit den besten Wünschen für's neue Jahr

    PSblnkd

  • Also du möchtest VB mit SciTE als IDE nutzen.

    Ich hatte vor ca. 20 Jahren letztmalig mit VB Programme geschrieben. Wie ich beim Googeln feststellte, hat sich zumindest bei der VB-Version nichts verändert. Nach wie vor aktuell die 6. VB habe ich damals zusammen mit Visual Studio gekauft. Fand diese Umgebung auch als sehr gelungen. Das wirklich gute Layout von VS wird mit SciTE nicht simuliert werden können.

    Die von dir gewünschten Punkte sind aus meiner Sicht nicht umsetzbar (zumindest habe ich im Moment nicht die geringste Vorstellung, wie ich da herangehen sollte) . Das Ausführen von AutoIt Skriptzeilen lässt sich nicht auf VB übertragen. Compile und Go sind möglich und vorgesehen. Syntaxhighlighting für VB ist bereits integriert, die Properties-Datei dafür muss nur mit geladen werden.

    Was machbar ist, muss aber erst als weiteres Tool geschrieben werden: das Vervollständigen von Objekten mit .Methode / .Property aus einer Liste beim Einfügen des Punktes.

    Aber ganz ehrlich: es gibt VS und das ist eine top IDE. Warum ein Kinderdreirad neu erfinden, wenn es schon ein Karbon-Rennrad gibt.

  • BugFix

    Da habe ich mich wohl doch noch nicht verständlich genug ausgedrückt und dann bist Du mir auch noch zuvor gekommen ...

    Wie ich weiter oben schrieb, geht es mir vordergründig darum einen komfortablen Ersatz für die ehemals in TurboCAD Prof. integrierte IDE zur SDK-Programmierung zu finden. Das hat nun nicht unbedingt was mit VB(A) zu tun, weil ich in AutoIt zwar eine annehmbare Alternative fand, aber in der SciTE-IDE eben noch Wünsche offen sind ... hatte ich oben aufgeführt. Für die Integration in TurboCAD wäre dann auch eine bestimmte DLL-Variante zweckmäßiger.

    Nun warst Du schon fleißig und hast erste Ansätze zu einem SciTE-Tutorial in deutsch auf Github veröffentlicht. Leider habe ich momentan keine Zeit das gründlich durchzuarbeiten ... habe nur mal diagonal drüber geschaut. Das seht schon mal recht gut aus und später wird es auch Anmerkungen/Fragen meinerseits dazu geben ...

    So viel für heute ... alles Gute noch für's neue Jahr!

    Grüsse aus Berlin

  • @BugFix

    Trotz gelegentlich wiederholtem Lesens in https://github.com/BugFix/AutoIt-…y_playground.md - leider muß ich mich auch noch mit anderen Problemen rumschlagen - Ist mir die Verfahrensweise immer noch nicht "einleuchtend" genug. Und dann ist da der Satz: "Die Menüleiste ist nicht über eine Windows Fensterklasse implementiert und dadurch nicht mit der WinAPI manipulierbar." - Meinst Du damit die mit "ToolbarWindow32" benannte, oder die Menüs im "SciTEWindow"? Aber gerade das wäre interessant, weil dort (vllt.) unter "Extras" die Funktionalität "Compile | Build | Go ua. " zugänglich ist (?). In meiner SciTE-Version 1.79 sieht das zwar etwas anders aus: "File | Edit | Search | View | Tools | Options | Language | Buffers | Help" ist dort das Menü, aber in "Extras" oder "Tools" wünsche ich mir die bereits o.g. Funktionalitäts-Ergänzung:
    - Schrittbetrieb mit Anzeige der Variablen-Inhalte,
    - Haltepunkte setzten/löschen und Abarbeitung bis dahin,
    - Prozedur-Abarbeitung usw.

    Wenn ich das richtig verstanden habe, müßte das Basis-Programm "SciTE" mit entsprechenden Ergänzungen nach dem Muster "SciTE_Starter.au3" -> https://github.com/BugFix/AutoIt-…iTE_Starter.au3 in eine neue exe gebracht werden, um dann als angepasste Version z.B. als "SciTE_spez.exe" verwendet werden zu können. Aber da ist dann noch das Problem der "Beiwerks"-Dateien, die ggf. ebenfalls noch angepasst sicherlich mit installiert werden müssen - von evtl. notwendigen Einträgen in die Registry mal ganz zu schweigen ...

    So viel für heute ...

    Grüsse aus Berlin

    PSblnkd

  • Meinst Du damit die mit "ToolbarWindow32" benannte, oder die Menüs im "SciTEWindow"?

    Ich hab doch extra alle erreichbaren Fensterklassen aufgezählt ("ToolbarWindow32" gehört dazu). Die Menüleiste, wenn du nicht die Lokalisierungsdatei eingefügt hast, sieht das, wie von dir benannt aus:

    In meiner SciTE-Version 1.79 sieht das zwar etwas anders aus: "File | Edit | Search | View | Tools | Options | Language | Buffers | Help"

    - gehört nicht zu den erreichbaren Fensterklassen.

    Wenn ich das richtig verstanden habe, müßte das Basis-Programm "SciTE" mit entsprechenden Ergänzungen nach dem Muster "SciTE_Starter.au3" -> https://github.com/BugFix/AutoIt-…iTE_Starter.au3 in eine neue exe gebracht werden, um dann als angepasste Version z.B. als "SciTE_spez.exe" verwendet werden zu können.

    Das könnte man machen - alle Änderungen in der Source vornehmen und ein eigenes SciTE kompilieren. Aber das ist für mich nicht praktikabel.
    Ich versuche lieber AddOns zu erstellen, die zusätzliche Funktionalität für die von den meisten Usern genutzte SciTE-Version bringt, aber eben nur wenn jemand dies explizit möchte auch aktiviert wird.
    Ein direkter Eingriff in die Menüleiste ist daher nicht realisierbar.

    Aber auch die greifbaren Fenster haben ihre Tücken. Du kannst z.B. mit der Toolbar-UDF aus AutoIt einen eigenen Button hinzufügen - aber den bekommst du nur beim Drüberfahren mit der Maus in Umrissen zu sehen und nach dem Neuzeichnen des SciTE Fensters ist er kpl. verschwunden. Man müsste wohl Prepaint und Postpaint Events abfangen und ein Neuzeichnen initialisieren. Da habe ich mich jetzt aber noch nicht reingekniet.

    Meine SciTE_Starter.au3 ist eigentlich nur eine Hilfe, um verschieden SciTE-Varianten auszuprobieren ohne sich dabei die SciTEUser.properties zu zerschießen (Es gibt nur einen Pfad für diese Datei, der von jeder (installierten) SciTE-Variante/Version genutzt wird.)

  • BugFix

    Es hat nun doch eine ganze Weile gedauert, daß ich mich wieder mit der Problematik beschäftigen konnte. - Folgende Überlegungen und einige Versuche (alles zur Vorbereitung von "StepByStep" für SciTE):
    Zunächst soll zur Beobachtung der Variablen-Veränderung eine Inhalts-/Werte-Ausgabe programmiert werden. Dazu wird die Skript-Zeile eingelesen, wo die Variablen deklariert sind - also z.B.

    Global $a, $b, $c ...
    mit

    $line = FileReadLine($file, $i) ; Einlesen der i-ten Zeile, ggf. mit Vorbestimmung von $i

    $line dann in ein Array bringen, um die einzelnen Variablen zu separieren und ggf. nur die interessierenden auszuwählen (über MsgBox Ja/nein)

    $varArray = StringSplit($line, ",") ; Aufspalten des Strings in einzelen Elemente, die Komma-getrennt sind

    Wenn ich mir aber über

    GUICtrlSetData($inpVar, $varArray[$z])

    die aktuellen Daten einer der jeweilen Variablen in der GUI anzeigen lassen will, funktioniert das so nicht.
    Es wird immer nur der Variablenname anzeigt, nicht der Inhalt/Wert. Ein programmierbaren Zugriff auf den Inhalt (Wert) einer der Variablen ist mir nicht gelungen.

    Was mache ich falsch, bzw. wo ist mein Denkfehler?

    Das gesamte Skript hier zu posten, erachte ich als zu unübersichtlich, weil viel zu viel Tempöräres drin ist, wegen den vielen Versuchen ...
    Zu Weiterem komme ich dann später.


    Grüsse aus Berlin

    PSblnkd

  • Hallo BugFix,

    eigentlich wollte ich Dich direkt kontaktieren (eMail), habe aber leider keine Kontaktmöglichkeiten hier im Forum gefunden.
    Wollte Dir das komplette Skript (Arbeitsversion) und den dazugehörenden Entwicklungsbericht schicken. Das mit dem Entwicklungsbericht mache ich immer, weil ich mich nach ein paar Tagen Untätigkeit am Thema (ich habe auch noch andere "Baustellen") nicht mehr erinnern kann, was ich mir bei diesem oder jenem gedacht hatte, bzw. was geht und was nicht geht).

    Bitte um Kontaktaufnahme über meine eMal-Adresse -> Impressum meiner HP.

    Grüsse aus Berlin

    PSblnkd
    Homepage von PS

  • Was mache ich falsch, bzw. wo ist mein Denkfehler?

    Der Denkfehler: AutoIt Programme werden nicht Zeile für Zeile ausgeführt, sondern insgesamt übersetzt und dann ausgeführt.

    Dadurch kannst du nicht nach einzelnen Momenten die Werte von Variablen abfragen. Bisherige Lösungen basieren, soweit ich bisher gesehen habe deshalb darauf, die Skripte in einem separaten Programm Zeile für Zeile auszuführen.

    Also einzelne Werte auszugeben ist ja kein Problem, aber man kann keine Haltepunkte setzen.