Beiträge von BugFix
-
-
verschwinden allerdings die Bilder (Logos der Streams), die sich im freien Bereich zwischen Text und Radiokreis befinden sobald der Mauszeiger über die Radio-Controls oder deren Text fährt.
Das passiert dann, wenn die Länge der Radio-Ctrl nicht oder zu lang definiert wird. Du definierst keine Länge und weisst also gar nicht, wo dein Radio-Ctrl endet. Setzt aber dahinter ein Picture-Ctrl mit einem geratenen Wert für die x-Position. Solange der Focus nicht auf dem Radio liegt stört die Überschneidung nicht. Bekommt aberd das Radio den Fokus, wird der gesamte Platz des Radios auch fokussiert. Überschneidet sich das mit dem danach folgenden Picture, kann dieses nicht angezeigt werden.
Deshalb, auch wenn es laut Funktionsbeschreibung optional ist, meine Empfehlung: Für alle Ctrl immer eine fixe Länge angeben. Dann hast du solche Probleme nicht. -
Ihr habt lediglich einen 3 und einen 5 Liter Eimer sowie eine unerschöpfliche Wasserquelle zur Verfügung. Wie könnt ihr nur mithilfe dieser 3 Hilfsmittel exakt 4 Liter Wasser abmessen?
Es gibt auch (mindestens) eine weitere Lösung.
1. 5 Liter Gefäß voll machen
2. Daraus das 3 Liter Gefäß voll machen (jetzt noch 2 Liter im 5 Liter Gefäß)
3. 3 Liter Gefäß ausgießen und und mit den 2 Litern aus dem 5 LIter Gefäß füllen
4. 5 Liter Gefäß wieder voll machen und daraus das 3 Liter Gefäß auffüllen (es fehlte dort ein Liter)
--> Jetzt sind im 5 Liter Gefäß noch genau 4 Liter -
Ich glaube du hast mich dabei leider falsch verstanden
Wohl nicht nur falsch, sondern eher gar nicht.
Ich versuche mal zusammen zu fassen, wie ich das sehe:
- Darstellung auf einem Desktop erfolgt über Positionierung mit Pixeln (von links, von oben)
- es ist absolut scheißegal, welches OS du verwendest: 10,10 ist immer 10,10
- es ist aber absolut nicht egal, welche Hardware du verwendest: Das Verhältnis von Pixelhöhe/Pixelbreite ist abweichend
- somit wird auf unterschiedlicher Hardware immer ein unterschiedlicher optischer Eindruck entstehenFühre dein Programm auf einem PC mit VM aus und dort in verschiedenen OS - es wird immer gleich sein.
-
da ist es extrem nervig wenn man z.B. 170 + @DesktopWidth * 0.147569444444444 für x und -126 + @DesktopHeight * 0.502314814814815 für y stehen hat
[autoit]
Das kannst du doch schön covern:
[/autoit][autoit][/autoit][autoit]
Func _xRegressed($x)
Return $x + @DesktopWidth * 0.147569444444444
EndFuncFunc _yRegressed($y)
[/autoit][autoit][/autoit][autoit]
Return $y + @DesktopHeight * 0.502314814814815
EndFuncGlobal $xR = _xRegressed
[/autoit][autoit][/autoit][autoit]
Global $yR = _yRegressed;....
[/autoit]
GUICtrlCreateButton('bla', $xR(170), $yR(-126))
;....
Natürlich kannst du auch die Funktionsnamen direkt kurz und bündig fassen (z.B. _xR und _yR). Ist dann Geschmackssache. Ich finde es von der Optik ansprechender, wenn die Funktion über eine Variable aufgerufen wird und der zugeordnete Funktionsname schon eindeutig sagt, worum es geht (was bei '_xR' nicht unbedingt zutrifft). -
Da SQLite keine MultiUser Anwendung ist, wirst du von Haus aus keinen Status bekommen. Allerdings habe ich bei einem Umfeld von 8 Usern und nur lesendem Zugriff noch nie Fehler bekommen.
-
Brücksichtigst du bei deiner Platzierung denn auch die Systemmetrik-Daten? (Taskbarposition, -maße; Titelleisten-, Randbreite).
All das ist schon von PC zu PC unterschiedlich und erst recht zwischen verschiedenen OS. Ist übrigens eine verbreitete Unart zu glauben, der nutzbare Bildschirm beginnt bei 0,0. Ich z.B. habe meine Taskbar immer links oder oben, sodass 0,0 nie stimmt. Deshalb frage ich in Skripts, die ich weitergebe, auch immer diese Daten ab, um meine Fenster nicht unter die Taskbar zu quetschen.
-
Ab dem 14.03.2015 verbiete ich es, meinen Player als Basis für einen neuen Player zu verwenden, der dann ohne meine Erlaubnis veröffentlicht wird.
Das klingt ziemlich martialisch.
Stell doch deinen Player unter eine dir zusagende Freeware-Lizenz. Das kommt dann etwas geschmeidiger rüber.
-
kein für mich verständliches Material im Netz.
Ich weiß nicht, ob du auf dieses Dokument schon gestoßen bist - ich finde es recht gut erklärt, zumal es mit einem Code Bsp. belegt ist (zwar C++ aber nachvollziehbar). -
x0r: Diese Variante ist aber nicht sehr sicher (sofern man bei dem Send-Gedöns überhaupt von sicher reden kann
) und führt oft zu Fehlern. Deshalb die sichere Variante mit Down & Up. -
... geht leider so nicht.
[autoit]
Geht immer! AltGr gibt es real nicht. Die Tastatur feuert beim Drücken dieser Taste zwei Befehle: Strg+Alt
Bsp. µ an den Editor sendenSend('{CTRLDOWN}{ALTDOWN}m{ALTUP}{CTRLUP}')
[/autoit] -
AltGr ist identisch mit Strg+Alt.
Also sende: StrgDown+Altdown+AltUp+StrgUp -
Ich bevorzuge zwar auch die RegExp-Variante, habe trotzdem mal probiert, wie das ohne RegExp umsetzbar ist.
Eigentlich gar nicht so aufwändig. Statt der Konsolenausgabe kann man dann die Ergebnisse sammeln und in einem Rutsch am Ende in eine Datei schreiben.Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <File.au3>
$path = "C:\Pfad\PR-Coding.txt"Local $aFile
[/autoit] [autoit][/autoit] [autoit]
_FileReadToArray($path, $aFile)For $i = 1 To $aFile[0]
[/autoit]
$s1 = StringLeft($aFile[$i], 1)
If Not StringIsDigit($s1) Then ContinueLoop
$aLine = StringSplit($aFile[$i], ' ')
If $aLine[0] < 2 Then ContinueLoop
If StringIsDigit($aLine[1]) And StringLen($aLine[2]) = 3 Then
$aSplit = StringSplit($aLine[2], '')
$fMatch = True
For $j = 1 To 3
If Not (StringIsDigit($aSplit[$j]) Or StringIsUpper($aSplit[$j])) Then
$fMatch = False
ExitLoop
EndIf
Next
If $fMatch Then ConsoleWrite("PR: " & $aLine[2] & @CRLF)
EndIf
Next -
Ich sehe ein Hauptproblem darin, dass sich bisher niemand die Mühe gemacht hat, neue Funktionen so zu schreiben, dass diese alle Parameter an der selben Position führen und evtl. zusätzliche Parameter bei Nichtbeachtung automatisch zu einem Fallback auf die Vorversion führen. DAS wäre mal ein sinnvoller Beitrag um Script Breaking Changes zu unterbinden.
Analog dazu wäre es sinnvoll nicht mehr vorhandene Funktionen über verlinkende Aufrufe auf die neue Funktion umzuleiten. -
Das sollte Excel_ReadRange (oder ähnlich) sein, habe die UDF nicht in Nutzung.
-
Warum macht man denn sowas???
Weil die umgeschriebenen Funktionen flexibler und effizienter sind. -
Hier will ich eigentlich nur die 2. Schleife (mit beliebigen Befehlen) durch die Taste F9 (78) starten und auch wieder verlassen.
Das kannst du ganz simpel mit zwei HotKeys lösen (einen zum Beenden).Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
HotKeySet('{F9}', '_SwitchLoop')
HotKeySet('{F7}', '_Exit')
Global $fSwitch = False_Loop1()
[/autoit] [autoit][/autoit] [autoit]Func _Loop1()
[/autoit] [autoit][/autoit] [autoit]
ConsoleWrite('Start Loop-1' & @CRLF)
While Not $fSwitch
; irgendwas
ConsoleWrite('Loop-1' & @CRLF)
Sleep(500)
WEnd
_Loop2() ; Aufruf Schleife 2
EndFuncFunc _Loop2()
[/autoit] [autoit][/autoit] [autoit]
ConsoleWrite('Start Loop-2' & @CRLF)
While $fSwitch
; irgendwas
ConsoleWrite('Loop-2' & @CRLF)
Sleep(500)
WEnd
_Loop1() ; Rückkehr zu Schleife 1
EndFuncFunc _SwitchLoop()
[/autoit] [autoit][/autoit] [autoit]
$fSwitch = Not $fSwitch
EndFuncFunc _Exit()
[/autoit]
Exit
EndFunc -
Ich hatte dazu auch mal eine Funktion erstellt.
_GuiCtrlListView_MoveItem -
Ab sofort findet ihr ein SciTE Archiv in H&U - angepinnt.
-
Hallo,
da es ja kein offizielles Archiv für SciTE4AutoIt gibt, habe ich mal alles, was ich bei mir gefunden habe in einem Online-Archiv zusammengestellt.
Falls ihr noch andere Versionen habt, lasst sie mir bitte zukommen, ich lade diese dann mit rauf.