new Edit readonly - Alles wird markiert

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

User avatar
bichlepa
Posts: 183
Joined: 15 Aug 2014, 06:44
Location: Germany
Contact:

new Edit readonly - Alles wird markiert

28 Aug 2015, 15:09

Ich wundere mich, wieso beim Einfügen eines Edit mit dem Parameter readonly der gesamte Text markiert wird. Kann man das unterbinden?
Ich habe das mal umgangen, indem ich nach dem Erstellen die Taste {right} an das Control gesendet habe. Aber es muss doch etwas besseres geben.
Hier ein Beispielcode:

Code: Select all

gui,add,edit,readonly,hello I am some text.
gui,show,
return
guiclose:
ExitApp
So sieht es aus, wenn der Skript gestartet wird:
Image
Hintergrund: ich versuche gerade in AutoHotFlow die Aktion Message Box intelligenter machen. Und im Falle, dass ein sehr großer Text angezeigt werden soll, der nicht auf das Fenster passt, soll statt dem Text ein Edit, readonly Control verwendet werden, sodass man darin scrollen kann.
Scripting is too complicated? Try AutoHotFlow, the graphical automation tool! Written in AutoHotkey.
Alibaba
Posts: 480
Joined: 29 Sep 2013, 16:15
Location: Germany

Re: new Edit readonly - Alles wird markiert

28 Aug 2015, 18:04

Die Auswahl geschieht, weil Gui, Show dem neuen Fenster den Fokus gibt und dieses wiederum das Edit als einzigstes Control gezwungenermaßen aktiviert.
Lösung des Problems wäre es zum Beispiel, dem Fenster keinen Fokus zu geben, was bei dem von dir beschriebenem Zweck auch nicht weiter problematisch sein dürfte:

Code: Select all

gui,add,edit, ve1 readonly,hello I am some text.
gui,show, NA
return
guiclose:
ExitApp
"Nothing is quieter than a loaded gun." - Heinrich Heine
just me
Posts: 9442
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: new Edit readonly - Alles wird markiert

29 Aug 2015, 02:36

Eine weitere Möglichkeit ist es, im Fenster zuerst ein unsichtbares fokussierbares Control zu definieren. Dann landet der Fokus dort, ohne dass man ihn sieht.

Code: Select all

#NoEnv
Gui, Add, Edit, w0 h0
Gui, Add, Edit, xp yp ReadOnly, Hello, I am some text.
Gui, Show
Return
GuiClose:
ExitApp
Wenn Du allerdings ohnehin vorhast, Deinem MsgBox-Ersatz immer auch Buttons hinzuzufügen, kannst Du den Fokus per GuiControl, Focus gezielt auf einen Button legen.
User avatar
bichlepa
Posts: 183
Joined: 15 Aug 2014, 06:44
Location: Germany
Contact:

Re: new Edit readonly - Alles wird markiert

29 Aug 2015, 02:56

Danke euch beiden.
Ich habe erst jetzt gemerkt, dass die readonly Edits immer ausgewählt werden, sobald sie Fokus bekommen. Das kann man auch sehen, wenn man im geöffneten Fenster die Tab Taste drückt, bis das Edit fokussiert ist.
Ich habe es mit dem nachträglichen Fokussieren des Buttons probiert. Es klappt! :-)
Scripting is too complicated? Try AutoHotFlow, the graphical automation tool! Written in AutoHotkey.
just me
Posts: 9442
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: new Edit readonly - Alles wird markiert

29 Aug 2015, 03:45

Wenn Du Deinen MsgBox-Ersatz immer in der Reihenfolge Edit -> Buttons erstellst, verhindert auch schon die Option -Tabstop, dass das Edit den Fokus bekommt. Er landet dann immer auf dem ersten Button. Das hat auch den Nebeneffekt, dass das Edit beim 'Tabben' nicht angesprungen wird, sich also wie ein Text-Control verhält.

Code: Select all

#NoEnv
Gui, Add, Edit, ReadOnly -Tabstop, Hello, I am some text.
Gui, Add, Text, , Hello, I am some text.
Gui, Add, Button, , O.K.
Gui, Show
Return
GuiClose:
ExitApp
Du kannst den Fokus aber trotzdem auch gezielt setzen.
User avatar
bichlepa
Posts: 183
Joined: 15 Aug 2014, 06:44
Location: Germany
Contact:

Re: new Edit readonly - Alles wird markiert

29 Aug 2015, 05:02

Ich bleibe beim Fokussieren vom Button. Es ist eine gute Lösung. Und ich denke, es ist besser, wenn der Text über die Tab-Taste weiterhin fokussierbar bleibt.
Scripting is too complicated? Try AutoHotFlow, the graphical automation tool! Written in AutoHotkey.

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 24 guests