Treeview füllen und nutzen

  • Hallo!

    Die bisher gefundenen Beispiel bringen nicht die Lösung. Daher hier die Frage.

    Wie fülle ich ein Treeview aus CSV? Und wie wird das später verarbeitet?

    Hier mal mein VBA-Code (damit ihr euch vorstellen könnt was ich vorhabe).

    Zum Füllen:
    Hinweis: Der Inhalt für das Treeview steht in Spalte 5 der Tabelle

    Dieser Code wird bei Klick auf ein Node ausgeführt:
    Hinweis: Die Sprache wird beim Öffnen der Userform ausgelesen und der entsprechende Eintrag in der Combobox aktiviert. Bei Klick auf ein Note werden andere Labels gefüllt.


    Danke!

    Gruß, René

    P.S.: Gibt es für AutoIt ein vernünftiges Handbuch (Printmedium oder Online)? Nach Möglichkeit in deutscher Sprache.

    • Offizieller Beitrag

    Schau dir mal in der Hilfe die Befehle zur Treeview-UDF (GuiTreeView.au3) an. Dort sind auch ausreichend Beispiele zum Erstellen, Befüllen, etc. vorhanden.
    Erstelle ein lauffähiges Bsp., an dem du uns dann deine Probleme zeigst.
    Du findest die UDF-Hilfe auch online (https://www.autoitscript.com/autoit3/docs/libfunctions.htm), die TreeView-Funktionen beginnen alle mit: _GuiCtrlTreeView_

  • Danke! Nicht einfach, passenden Beipielcodes finde ich nicht. Da werde ich wohl länger zum Lernen brauchen als in VBA. ;)

    Also wenn du mal in die Hilfe schaust wirst du schon mal einiges an Beispielen finden - zu praktisch jedem Befehl.

    Dein Hauptproblem könnte sein: VBA ist objektorientiertes Programmieren, AutoIt ist "nur" prozedural.
    Es gibt zwar auch eine UDF um mit AutoIt Objektorientiert zu arbeiten ... sehe ich aber eher selten das die genutzt wird.

    Trotzdem lässt sich vieles aus VBA gut umsetzen

  • Trotzdem lässt sich vieles aus VBA gut umsetzen

    Aber leider keine Dialoge (Userformen). Der Kode Form Designer ist schlecht. Koda merkt sich die Einstellungen nicht. Wenn man die Form testen möchte muss man Koda beenden. Und wenn man Koda wieder startet und seine Form öffnet sind alle Einstellungen aller Elemente zurückgesetzt, man fängt also ganz von vorn an. Wirklich Spaß macht das so nicht. In "ISN AutoIt Studio" fehlt der Form-Designer, zumindest finde ich nirgens etwas womit ich zum Form-Designer komme.

    • Offizieller Beitrag

    Der Kode Form Designer ist schlecht.

    Würde ich so nicht unterschreiben. Er ist ein gutes Werkzeug um Anfängern zu Helfen, grafische Elemente anzuordnen. Je vertrauter man mit AutoIt ist, desto weniger nutzt man Koda.
    Wenn du fit bist, machst du die Anordnung eh im Kopf. Geht schneller und ist genauer (man weiß dann halt, dass ein Label vor einem Input 3 px tiefer sitzen muss um vertikal mittig vorm Input zu sein).
    Aber wenn du Koda nimmst, werden alle deine Settings auch im Code abgelegt. Speichere vor dem Einfügen in SciTE als "Koda-Form". Du darfst dann aber innerhalb des Bereiches:
    #Region ### START Koda GUI section ### Form=
    ...
    ...
    #EndRegion ### END Koda GUI section ###
    nach dem Einfügen in SciTe nichts per Hand verändern, sondern die Form neu laden und in Koda anpassen.

  • Naja, wenn man VBA gewohnt ist tut man sich schwer im Kopf zu zeichnen. ;) Leicht ist das manuelle Anpassen der Koordinaten nicht. Gemacht habe ich das aber schon bei meinem derzeitigen Projekt (das sind aber nur 3 Elemente).

    • Offizieller Beitrag

    Ich plane alle meine GUIs (mehr oder weniger) im Kopf.
    Meist setze ich die Control-Elemente erstmal irgendwo (so grob) auf die GUI und schaue dann, wie es aussieht.
    Wenn es mir nicht gefällt, dann werden die Werte (Left, Top, Width, Height) eben so lange geändert, bis es passt.
    Das mag der Ein oder Andere als umständlich ansehen, aber für mich ist das in all den Jahren so "normal" geworden, dass ich nicht mehr darüber nachdenke.
    Koda ist mir zu starr und ich muss hinterher mehr nacharbeiten (die Variablennamen sind so nichtssagend und ich brauche oft Arrays), als wenn ich das gleich nach meiner Methode mache.

    Koda ist für Einsteiger ein gutes Hilfsprogramm, um zu sehen, welche Control-Elemente zur Verfügung stehen und wie man sie am besten anordnet.
    Aber für eigene/größere Projekte kann ich es nicht empfehlen.

  • Ich leg mir immer globale Variablen für Breite und Höhe an und Berechne meistens alles relativ dazu. Die Positionen kommen dann alle in eine _resize Funktion. Dann kann ich auch, wenn sich die größe ändert alles Dynamisch anpassen.
    Ich schreib momentan auch an einem Layoutsystem, dann kann man in AutoIt sowas wie Horizontale-/Vertikale-/Grid-,... Layouts nutzen. Das dauert aber noch nen bisschen. Ist ziemlich komplex, wenn man mit Priority und dynamischen größen, Rechts/Mittig/Zentriert..., Spacing, ... alles bedenken will. Es soll dann aber auch nen Layout mit ner festen größe geben, wo controls beliebig platziert werden,... außerdem sollen automatisch scrollbars entstehen, uvm. Hab grad semesterferien, denke da werd ich nen bisschen Zeit haben, weiter zu machen :)


  • (...) Ist ziemlich komplex (...)

    Du sagst es. In AutoIt muss ich gewaltig umdenken. Allgemeine Module, Klassenmodule und Userformen gibt es ja in AutoIt nicht. Wenn man seit 19 Jahren nur in VBA arbeitet verlangt einem AutoIt schon viel ab. Aber ich lasse mich davon nicht abschrecken. Was ihr so alles in AutoIt auf die Beine stellt ist schon ein großes Lob wert. So weit bringe ich es nie, aber zum "Hausgebrauch" wird es reichen.