Editbox/_GUICtrlRichEdit_Create keine Sondertasten möglich

  • ich bin ein wenig verwirrt, vielleicht könnt Ihr mir helfen.

    Es geht darum, ich schreibe ein Skript mit mehreren Schaltflächen/While´s/GUIS etc.

    Es geht darum eine Haupt While schleife zu benutzen.
    Und diese zu unterbrechen, um weitere schleifen ausführen zu können.

    Dabei habe ich festgestellt es gibt Problem mit der Editbox (auch mit _GUICtrlRichEdit_Create) getestet ohne Erfolg.

    Ablauf :

    1. Script Starten

    2. Menü>GUI 2> aufrufen dabei 1 While stoppen 2 While beginnen

    3. GUI 1 Disablen & verstecken

    4. GUI 2 Editbox ausfüllen & bearbeiten.

    Ich kann zwar die Editbox auswählen und etwas rein schreiben, aber ich kann kein Backspace/Tab/entf (Sondertasten) auslösen, bis auf die Pfeiltasten für links/pfeiltasterunter und rechts/pfeiltastehoch.
    Ich habe versucht den Fehler nachzustellen.

    Unten ist ein Beispielscript, leider tritt dort der Fehler nicht auf.

    Ich bin etwas ratlos, google zeigt mir leider nicht das was ich versuche zu finden.

    Weiß jemand warum sowas passiert und wie ich diesen Fehler mit dem Control-/Editbox/ beheben kann?

    Im Grunde ist das beispiel genau so von der Logik aufgebaut wie mein Hauptscript.
    Wieso kann ich in meinem beispielscript. Gui2 & Editbox2 lassen sich beschreiben und edititeren wie ich möchte, dort gibt es keinen Fehler oO?


    gruß mojoe

  • Du hast ein grundsätzliches Design-Problem - das gehört alles in eine einzige Schleife.

    Warum willst du in verschiedenen Schleifen GUIGetMsg abfragen?

    1. Alle GUI erstellen

    2. bei Bedarf mit GUISetState(@SW_SHOW, GUI-Handle) anzeigen lassen (verstecken mit @SW_HIDE)

    3. In einer Schleife alle Events abfragen, ggf, GuiGetMsg mit Parameter nutzen (s. Hilfe)

  • @hallo Bugfix,

    Das Design ist nicht das Problem, wie du sieht funktioniert mein beispiel.... warum auch immer?

    Aber du hast recht fürs erste sieht das Chaotische aus, aber mehrere einzelne Test zeigen mir das dies für mich funktioniert.

    Das meiste ist in der 1ten Schleife.

    Er Unterbricht nur die schleife 1 erstellt dann eine neue schleife, und löscht diese auch wieder nachdem das Fenster geschlossen wurde.
    Das habe ich im Grunde nur gemacht weil ich eine Installation Routine mit reinprogrammiert habe wo man sich alle Parameter fürs Programm zuweisen lassen kann wenn man nicht die von mir vorgegeben

    Standardwerte nutzen möchte.
    Im Test hat das sehr gut und einfach funktioniert.

    Deshalb dachte ich es wäre eine gute Idee so weiter mit andere Schleifen einbauen zu können wenn es benötigt wird und es ist meines Erachtens auch etwas leichter zu verstehen. ist aber Ansichtssache.

    Es nervt mit halt warum ist hier in meinem Beispiel kein Fehler drin, obwohl es genau gleich aufgebaut ist wie in meinem Hauptscript.

    Ich habe in gui 1 ein IE Einbindung. liegt es vielleicht daran? Das ich meine Editbox in gui 2 nicht richtig mit der Tastatur bearbeiten kann?

    Aber dafür Disable ich ja gui 1 ~_~


  • Deshalb dachte ich es wäre eine gute Idee so weiter mit andere Schleifen einbauen zu können wenn es benötigt wird und es ist meines Erachtens auch etwas leichter zu verstehen. ist aber Ansichtssache.

    Nicht wirklich. Es ist viel einfacher zu verstehen, das wenn ButtonX gedrückt wird, Y ausgelöst wird und das für alle Buttons in einer Schleife anstatt noch verstehen zu müssen wann welche Schleife und warum überhaupt eine getrennte Schleife etc. etc.

    Du kannst ja in dieser EINEN Schleife per Kommentar "Sektionen" definieren je GUI und somit eine optische Gruppirung vornehmen und trotzdem den einfachen und mit hoher Sicherheit funktionierenden Aufruf per einzelner Guigetmsg Schleife umsetzen.

  • Moin,

    wenn Du Hilfe bei einem konkreten Problem suchst, wäre es besser, wenn Du ein Beispiel lieferst, das den Fehler reproduziert.

    So wird das der berühmte Blick in die Glaskugel: :Glaskugel:

    Ich habe in gui 1 ein IE Einbindung. liegt es vielleicht daran? Das ich meine Editbox in gui 2 nicht richtig mit der Tastatur bearbeiten kann?

    Was passiert, wenn Du das auch in Dein Beispiel einbindest?

  • oke hat sich erledigt :)

    habe anstatt meheren While´s nun einfach

    func

    Switch
    ....
    EndSwitch

    endfunc

    und diese dann in die Hauptschleife eingebaut.
    falls wieder so etwas auftritt melde mich nochmals aber bisher ruhig. :)

    erstmal auf erledigt setzten.