Tratsch rund um Autoit / Autoit Talk | kleinere Fragen

05/13/2012 17:51 -STORM-#61
Ich möchte mir ausgelesene Werte in einem Label anzeigen lassen. Das funktioniert auch so:
Code:
GUICtrlSetData($targethplabel, $targethpcurvalue & "/" & $targethpmaxvalue)
Damit das immer aktualisiert wird, steckt der Befehl in einer Endlosschleife mit Sleep(50).
Durch das schnelle Wiederholen flackert aber das Label.
Das möchte ich verhindern, indem ich nur Überschreibe, falls der Wert sich seit dem letzten Durchlauf der Schleife geändert hat. Habe das wie folgt versucht mit einer If Abfrage umzusetzen:
Code:
If Not GUICtrlRead($targethplabel) = $targethpcurvalue & "/" & $targethpmaxvalue) Then
		GUICtrlSetData($targethplabel, $targethpcurvalue & "/" & $targethpmaxvalue)
EndIf
Das funktioniert aber nicht. Das Label behält den im Gui definierten Anfangswert.
Was muss ich anders machen?

Edit: Bin gerade dabei, einen Lösungsansatz zu testen: Statt Not und = nehme ich <>. Irgendwie scheint das zu funktionieren. Kann mir einer erklären, wo der unterschied zwischen "größer oder kleiner" und "nicht gleich" ist ? O.o

Edit 2: Ja, funktioniert jetzt perfekt. Der neue Code:
Code:
If GUICtrlRead($targethplabel) <> $targethpcurvalue & "/" & $targethpmaxvalue) Then
		GUICtrlSetData($targethplabel, $targethpcurvalue & "/" & $targethpmaxvalue)
EndIf
Bin aber immer noch auf der Suche nach einer Erklärung.
05/13/2012 18:49 Lawliet#62
Quote:
Originally Posted by Njahs View Post

Hoffe ist das, was du wolltest ^^
Hmm, doch nicht so das, was ich suche. In der UDF wird das File auch eingelesen.
05/13/2012 19:41 lolkop#63
wenn du den inhalt von etwas nutzen willst, musst du diesen zwangsweise kennen, und musst dementsprechend die datei auch einlesen.

willst du eine speicherüberbeanspruchung vermeiden, kannst du die datei ja in bestimmten schritten einlesen.

angenommen du hast eine 5gb große datei und willst bei 3,8gb 100mb löschen, dann könntest du so vorgehen:
  • Schritt 1: 100Mb einlesen
  • Schritt 2: Gelesenes in Datei schreiben
  • Schritt 3: Wiederhole Schritt 1 & 2 bis du bei 3,8gb angekommen bist
  • Schritt 4: Überspringe 100mb
  • Schritt 5: Wiederhole Schritt 1 & 2 bis zum ende des Files.
05/13/2012 19:46 Lawliet#64
Hm, das ist eine sehr gute Idee :handsdown:
Mal sehen, wie es so von der Zeit her läuft.
05/14/2012 20:59 butter123#65
neue frage:
;)
wie kann ich die daten einer webcam auslesen? ich möchte sowas in der art wie motion tracking realisieren. die udf [Only registered and activated users can see links. Click Here To Register...] hilft mir wenig, da erst die webcam auf dem bildschirm angezeigt wird und anschließend wieder der bildschirm ausgelesen wird ^^

thx für jede hilfe :)
05/14/2012 21:41 Achat#66
Hi, dafür gibt es schon ein Programm:

[Only registered and activated users can see links. Click Here To Register...]

MfG
05/15/2012 14:04 butter123#67
also ich möchte es schon selber programmieren ;) und es geht auch nur in die richtung motion tracking eher allgemein bilderkennung. nur um bilder zu erkennen muss ich erstmal zugriff auf die webcamdaten bekommen.

trotzdem danke :)
05/15/2012 19:35 Achat#68
Kann man die Umrahmung einer Group verändern?
Ich möchte eine schwarze Umrandung - geht das?

MfG
05/15/2012 19:48 -STORM-#69
Probier mal, die Group als Variable zu definieren und dann guictrlsetcolor(). [ungetestet]
05/15/2012 19:50 Achat#70
Funktioniert nicht.
Aber trotzdem danke für deine Antwort.

MfG
05/15/2012 19:51 Lawliet#71
Quote:
Originally Posted by Achat View Post
Kann man die Umrahmung einer Group verändern?
Ich möchte eine schwarze Umrandung - geht das?

MfG
GuiCtrlCreateLabel() & GUictrlsetBkColor() FTW :D
Hab ich früher mal so gemacht.
05/15/2012 21:22 Logtetsch#72
Hab ein kleines Problem.

Ich habe eine Gui und 2 Buttons.
Wenn ich auf den ersten Button drücke, würd eine Funktion ausgeführt, diese in etwas so aussieht

PHP Code:

while $on 1 then

For ;;;;;;;;;;;

   For ;;;;;

   
Next;;;;

   For;;;;;

   
Next
Next

Wend 
Wie kann ich jetzt noch den 2ten button drücken?
Dieser soll diese Funktion beenden.

mfg Logtetsch
05/15/2012 21:26 Achat#73
Hast du GuiOnEventMode oder eine GUI-While Schleife?

MfG




Quote:
Originally Posted by lolkop View Post
niemals in funktionen endlosschleifen beginnen... das ist einer der schlimmsten anfängerfehler, die man begehen kann...
05/15/2012 21:32 -STORM-#74
Statt ner while Schleife würde Ich
Code:
Do
;deine Func 
Until GuiGetMsg()=$Button2
machen.
Ansonsten könntest du irgendwo ne If Abfrage einbauen mit Exitloop.
05/15/2012 22:35 Lawliet#75
Code:
If GuiGetmsg() = $button2 then ExitLoop