Ist eine Variable mit einem Steuerelement verknüpft?

Post a reply


In an effort to prevent automatic submissions, we require that you complete the following challenge.
Smilies
:D :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :| :mrgreen: :geek: :ugeek: :arrow: :angel: :clap: :crazy: :eh: :lolno: :problem: :shh: :shifty: :sick: :silent: :think: :thumbup: :thumbdown: :salute: :wave: :wtf: :yawn: :facepalm: :bravo: :dance: :beard: :morebeard: :xmas: :HeHe: :trollface: :cookie: :rainbow: :monkeysee: :monkeysay: :happybday: :headwall: :offtopic: :superhappy: :terms: :beer:
View more smilies

BBCode is ON
[img] is OFF
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Ist eine Variable mit einem Steuerelement verknüpft?

Re: Ist eine Variable mit einem Steuerelement verknüpft?

by gregster » 31 May 2021, 03:41

Die Möglichkeit des false positives bezog sich auf meinen ersten Lösungsversuch, in dem ich nicht das subcommand name verwendet habe. Dort kann outputvar u. U. auch Namen/ControlIDs enthalten, die nicht als Variablen existieren.

Das wirkliche Problem ist für mich der Name des GUI.
Mmmhja, ich nehm an, das funktioniert nur für das (aktuelle) Default GUI, wenn man keinen Gui-Namen spezifiziert. Aber die Anzahl an GUIs ist ja meistens kleiner als die Anzahl der vVariablen - die GUI-Namen muss man dann wohl noch selber nachhalten, und alle GUIs durchgehen. Oder man findet einen anderen Weg... :)

Edit: Man könnte vielleicht erstmal ListVars gegen die gesuchte Variable checken (z. B. mit Hilfe von lexikos' ScriptInfo()-Funktion).
Wenn die gesuchte Variable dort als globale Variable vorkommt, dann reicht das vielleicht schon als Info - oder man nimmt diese Info zum Anlass, genauer in den einzelnen (bekannten) GUIs nachzuforschen.
Aber wenn die Variable dort nicht vorkommt, dann wurde sie auch keinem Kontrollelement zugewiesen - jedenfalls noch nicht zum Zeitpunkt der Abfrage.

Re: Ist eine Variable mit einem Steuerelement verknüpft?

by just me » 31 May 2021, 03:20

gregster wrote:weil GuiControlGet anscheinend auch noch den Text von Kontrollelementen abfragt, wenn es keine entsprechende vVariable findet - könnte also false positives geben.
Wenn in OutputVar der Name geliefert wird, der als ControlID übergeben wurde, gibt es diese Variable. ControlID wird deshalb als Variablenname betrachtet. Ob der Wert irgendwo als Text existiert, ist in diesem Fall egal.

Das wirkliche Problem ist für mich der Name des GUI.

Re: Ist eine Variable mit einem Steuerelement verknüpft?

by Rohwedder » 31 May 2021, 02:55

Vielen herzlichen Dank!
So funktioniert es.

Re: Ist eine Variable mit einem Steuerelement verknüpft?

by gregster » 30 May 2021, 05:47

Um wirklich sicher zu gehen, müsste man wahrscheinlich den Namen des gefundenen Steuerelements checken, also:

Code: Select all

GuiControlGet, outputvar, name, meinText
if (outputvar = "meinText")
weil GuiControlGet anscheinend auch noch den Text von Kontrollelementen abfragt, wenn es keine entsprechende vVariable findet - könnte also false positives geben.

Re: Ist eine Variable mit einem Steuerelement verknüpft?

by gregster » 30 May 2021, 05:31

Vielleicht sowas:

Code: Select all

Gui, Add, Text, vMeinText

GuiControlGet, outputvar, , meinText
if !errorlevel
	msgbox meinText ist eine vVariable.
else 
	msgbox nope

GuiControlGet, outputvar, , meinText2
if !errorlevel
	msgbox meinText2 ist eine vVariable.
else 
	msgbox nope
wobei errorlevel auch wahr/1 sein könnte, wenn "some other problem" aufgetreten ist. Aber Errorlevel = 0 sollte zumindest ein gutes Zeichen sein, dass die Variable einem Steuerelement zugewiesen wurde.

Ist eine Variable mit einem Steuerelement verknüpft?

by Rohwedder » 30 May 2021, 04:41

Hallo,

Code: Select all

Gui, Add, Text, vMeinText
verknüpft die Variable MeinText mit einem Steuerelement, z.B. Static1.
Wie kann ich abfragen ob die Variable MeinText verknüpft wurde?

Top