Soweit ich weiß, wandelt der IE einen Backslash in einen Slash um, wenn man ihn in die Adresszeile eingibt.
MfG. Oscar
Soweit ich weiß, wandelt der IE einen Backslash in einen Slash um, wenn man ihn in die Adresszeile eingibt.
MfG. Oscar
Hallo!
Fehler = Backslash.
So ist's richtig: http://www.eurofussballarchiv.de/na/na_armen.html
MfG. Oscar
Hallo!
Versuchs mal damit:
#include<misc.au3>
HotKeySet("q", "ende")
while 1
if _IsPressed("45") Then
while _IsPressed("45")
send("Text1")
WEnd
EndIf
if _ispressed("20") Then
while _ispressed("20")
send("Text2")
WEnd
EndIf
WEnd
Func ende ()
Exit
EndFunc
Taste "E" ist Code 45 (siehe Hilfe) und der zu sendende Text darf nicht den Hotkey-Buchstaben zum Beenden enthalten.
MfG. Oscar
Genaugenommen geht's mir nicht so sehr um den Text im Inneren des Edit-Feldes, sondern darum eine Rückmeldung über die Position der Scrollbar zu bekommen.
Ich will also diese Scrollbar für eine selbst erstellte Tabelle zweckentfremden, um die Einträge in der Tabelle scrollen zu können.
Natürlich hätte ich auch einen Slider dafür nehmen können, aber ich finde eine Scrollbar schöner und praktischer, weil sie durch die Breite des Balken bereits anzeigt, wie viele Einträge ca. enthalten sind.
Und jetzt erzähl mir nicht, dass es dafür schon eine Scrollbar-UDF gibt...
MfG. Oscar
Nein, mit _GUICtrlEditSetSel() klappt das leider nicht, weil die Funktion ab dem ersten Eintrag markiert.
Ich will aber den ersten sichtbaren Eintrag haben. Oder den in der Mitte des sichtbaren Bereichs (wie oben schon erwähnt). Das reicht mir dann auch schon.
Trotzdem vielen Dank für Deine Hilfe.
MfG. Oscar
Damit habe ich schon rumprobiert, aber wie setze ich den Eingabe-Cursor auf den Anfang des Edit?
Das markieren mit z.B. Send("+{RIGHT 10}") funktioniert, wenn ich mit MouseClick() einen Klick ins Edit generiere, aber gerade MouseClick will ich nicht benutzen, weil das den Mauszeiger bewegt.
ControlFocus() setzt den Cursor an das Ende des Edit. Das hilft mir nicht weiter.
Edit: ControlClick() macht fast das, was ich will. Es klickt zwar nicht an den Anfang, sondern in die Mitte, aber immerhin, der Rest läßt sich berechnen.
Das Ganze sieht nun so aus:
#include <GuiConstants.au3>
#Include <string.au3>
#Include <GuiEdit.au3>
Dim $c[3]
Opt("GUIOnEventMode", 1)
GUICreate("Test", 200, 100)
GUISetOnEvent($GUI_EVENT_CLOSE, "f_MainClose")
$a = GUICtrlCreateEdit("", 20, 20, 150, 32, $WS_HSCROLL, $WS_EX_LAYERED)
$d = GUICtrlCreateLabel("",0,80,200,20,$SS_SUNKEN)
GUISetState(@SW_SHOW)
$b = _StringRepeat("1234567890", 15)
GUICtrlSetData($a, $b)
While 1
ControlClick("","", $a)
Send("+{RIGHT 1}")
$c = _GUICtrlEditGetSel($a)
GUICtrlSetData($d," x : y = " & $c[1] & " : " & $c[2])
Sleep(100)
WEnd
Func f_MainClose()
Exit
EndFunc
Ich danke Dir, BugFix.
MfG. Oscar
ZitatOriginal von BugFix
Oder ist das Editfeld so schmal, dass du nur die Hälfte der Zeile siehst, und du möchtest diesen Teil auslesen?
Genau das.
Das Problem dabei ist: es ist bloß eine Zeile (siehe Beispiel).
MfG. Oscar
Hallo!
Ich habe folgendes Problem. Ich möchte aus einem Edit nur den gerade sichbaren Teil auslesen.
#include <GuiConstants.au3>
#Include <string.au3>
GUICreate("Test", 200, 100)
$a = GUICtrlCreateEdit("", 20, 20, 150, 32, $WS_HSCROLL, $WS_EX_LAYERED )
GUISetState(@SW_SHOW)
$b = _StringRepeat("1234567890", 15)
GUICtrlSetData($a, $b)
While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
EndSelect
Sleep(10)
WEnd
Exit
[/autoit]Geht das irgendwie?
MfG. Oscar
Hallo xoma!
Hier mal die Version von peethebee in dein Beispiel eingebaut.
#include <GuiConstants.au3>
#include <GuiEdit.au3>
Dim $myedit, $Status, $msg, $Btn_GET, $a_sel, $search
Local $qst = GUICreate("Muster", 800, 502, -1, -1, BitOR($WS_SYSMENU, $WS_MINIMIZEBOX))
$EditLOGFile = GUICtrlCreateEdit("", 1, 1, 792, 270, BitOR($ES_AUTOVSCROLL, $ES_AUTOHSCROLL))
GUICtrlSetData ( $EditLOGFile, 'Das ist mein Beispieltext.')
$Btn_GET = GUICtrlCreateButton("Get Sel", 150, 300, 90, 40, $BS_MULTILINE)
GUISetState(@SW_SHOW)
While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
Ende()
Case $msg = $Btn_GET
$a_sel = _GUICtrlEditGetSel($EditLOGFile)
If ($a_sel == $EC_ERR) Then
MsgBox(0, "", "Fehler!")
Else
$search = StringMid(GUICtrlRead($EditLOGFile), $a_sel[1] + 1, $a_sel[2] - $a_sel[1])
MsgBox(0, "", "$search = " & $search)
EndIf
EndSelect
WEnd
Func Ende()
Exit
EndFunc ;==>Ende
MfG. Oscar
Oh, stimmt!
"Wenn ein Dateiname statt eines Dateihandles angegeben wird, wird die Datei während des Funktionsaufrufes geöffnet und geschlossen."
Das hatte ich glatt überlesen.
Somit sollte Deine Funktion doch klappen.
Aber...
"Wenn du große Textdateien bearbeitest, ist das natürlich viel langsamer als die Arbeit mit Handles."
Kommt halt auf die Dimensionen an.
MfG. Oscar
ZitatOriginal von peethebee
[autoit]
Hi!FileWrite("C:\test.txt", StringReplace(FileRead("C:\test.txt"), @CRLF & @CRLF, @CRLF))
[/autoit]Nicht getestet, müsste aber eigentlich gehen...
peethebee
Eine Datei zum Schreiben *und* Lesen öffnen?
Lt. deutscher Hilfe geht das nicht:
"Eine Datei kann nur entweder im Lese- oder im Schreibmodus geöffnet sein - sie kann nicht in beiden sein."
MfG. Oscar
ZitatOriginal von Sn0opy
Ist das hauptsächlich wegen diesen Bildern? Oder mit was soll man die normalerweise anschauen?
Diese Bilder sind ASCII oder ANSI-Zeichen aus einem Zeichensatz.
Anschauen am besten mit
Notepad++
Das ist ein Freeware-Editor. Mein Favorit momentan. Übrigens auch gut geeignet für AutoIt.
MfG. Oscar
ZitatOriginal von bernd670
Weiterrechnen ist ja sinnvoll, nur wenn ich direkt nach "=" wieder eine Ziffer eingebe will ich in der Regel nicht weiterrechnen.
Ah! Jetzt ist der Groschen gefallen.
Verstehe was Du meinst. Das habe ich gleich mal geändert. Bei Eingabe einer Ziffer nach dem Ergebnis beginnt er jetzt eine neue Rechnung. Wenn man hingegen einen der Operatoren anklickt, dann rechnet er weiter.
Neue Version wird demnächst veröffentlicht. Muß noch was anderes ändern.
Edit:
ZitatOriginal von Sn0opy
Mein einziges Kriterium ist, dass der Rechner ganz klar zu groß ist. Ich bin zwar @ 1280x1024, aber es ist ganz klar zu groß.
Naja, das ist so 'ne Sache. Ich finde das gerade gut, weil 1600x1200. Da sind mir die anderen eher zu klein.
MfG. Oscar
bernd670: Posts zusammengefasst, biitte keine Mehrfachposts!
ZitatAlles anzeigenOriginal von huggy
Hi!Paar vorschläge vll:
1) das Potenzieren einer zahl mit sich selber sollte einfacher gehen:, ein x² button wäre gut.
2) Wurze Ziehen vermiss ich
3) wenn ich was @dezimal geschrieben habe und dann auf hexa gehe, würd ich mir wünschen, dass das dezimal ergebniss gleich in hexa umgewandelt wird!
_StringToHex lässt grüßen!
4) Wenn eine negative zahl rauskommt, braucht mein download -4 stunden.
Coooool
Zu 1 und 2 = ok, werde ich mal in Angriff nehmen.
Zu 3 = Das sollte eigentlich funktionieren
Zu 4 = Oh, das ist wohl noch ein Bug
Den Rest hat Bernd ja schon erklärt.
MfG. Oscar
Edit:
ZitatOriginal von bernd670
Hallo,die 1 neben C gibt die Nachkommastellen an was auch dein Ergibnis -3 ^ -3 = 0 erklärt.
Speicher: M+ addiert zum Speicher, M- zieht ab, MR hohlt den Wert aus dem Speicher und MC löscht den Speicher.
Was noch schön wäre, wenn man auf "=" drückt und danach eine neue Zahl eintippt das dann das Ergebnis automatisch gelöscht wird.
Alles richtig erklärt!
Wobei...bei den Nachkommastellen habe ich doch extra noch einen Tooltip beigepackt. Genauso wie bei =€ und =$.
Das mit dem Ergebnnis ist so eine Sache. Mir persönlich ist es lieber, daß man damit dann weiterrechnen kann, statt es zu löschen.
Aber als Kompromiss könnte ich das vielleicht einstellbar machen.
MfG. Oscar
bernd670: Posts zusammengefasst, bitte keine Mehrfachposts!
Hallo !
Hier jetzt also mein neuestes Werk.
Ein Taschenrechner. Naja, nicht nur. Er ist gleichzeitig auch ein Download-Rechner und man kann EUR in USD und umgekehrt umrechnen.
Den aktuellen Umrechnungskurs holt sich der Taschenrechner aus dem Internet.
Das Script ist mittlerweile über 1000 Zeilen lang, deswegen packe ich das mal alles zusammen in ein Zip-Archiv.
Dort ist auch noch ein Ordner mit Grafiken enthalten und eine Ini-Datei, in der einige Einstellungen gespeichert werden.
Viel Spass damit.
Edit: Die neue Version ist fertig! Version 1.5
- Es gibt jetzt einen [x²] Button
- Außerdem kann man sich jetzt als Zahnarzt probieren (Wurzelziehen)
- Der Währungsrechner wurde um diverse Währungen erweitert
- Es gibt eine Erklärung der Abk. der Währungen, wenn man auf "von?" oder "in?" klickt.
- Das mit dem weiterrechnen (Ergebnis behalten) / Neue Rechnung (Ergebnis löschen) habe ich eingebaut
Die Funktion zur Aktualisierung der Währungsdaten übers Internet mußte ich wieder rausnehmen, da mir die FAZ die Benutzung der Daten nicht genehmigt hat. Schade!
Edit: _GUICtrlListView_SetColumnWidth angepasst, damit es auch mit der neuen AutoIt-Version funktioniert. Und Hilfe-Datei hinzugefügt.
MfG. Oscar
ZitatOriginal von leviathan
werd ihn auf jedenfall testen naja hoffe dein Taschenrechner beachtet Punkt vor Strich XD
Ja, kein Problem. Genau genommen macht AutoIt die Berechnung (Execute). Und dort wird das ja richtig gerechnet.
Wie gesagt: es gibt noch das Problem bei Hexadezimalzahlen. Das Ergebnis darf nicht größer werden als 32 Bit. Ansonsten sollte alles funktionieren.
Wohin soll ich den Taschenrechner packen?
In den Scipte-Ordner? Mein Script hat mittlerweile mehr als 1000 Zeilen und es ist auch ein Ordner (gfx) dabei, in dem mehrere Grafiken (für die Buttons) liegen. Achja, eine Ini-Datei gibt's auch noch.
MfG. Oscar
Hallo Bernd!
Das finde ich super, daß Du Dir so viel Mühe gibst mir zu helfen und Deine Lösung hat mir zumindest einen Anwendungszweck von Max() erklärt. Dafür schonmal: DANKE!
Vielleicht hätte ich mein Problem ausführlicher schildern sollen, denn ich bin gerade dabei einen Taschenrechner zu schreiben. Und anders als beim Windows-Taschenrechner kann man bei meinem mehrere Operatoren hintereinander in die Eingabezeile schreiben und erst beim Klick auf [ = ] wird alles ausgerechnet.
Ich weiß also nicht, was der Benutzer so alles dort eingibt. Und die Eingabezeile komplett auf alle Möglichkeiten zu untersuchen ist mir zu schwierig.
BTW: Jemand Interesse an einem Taschenrechner?
MfG. Oscar
Das Problem ist doch aber, dass bei meinem Beispiel Null heraus kommt. Es könnte ja auch sein, daß $a und $b ebenfalls Null sind.
Wie kann ich das unterscheiden?
Edit: War ein blödes Beispiel, das funktioniert mit Deinem Script ja.
Aber wenn ich z.B. 0xffffffff mal 2 rechnen will?
MfG. Oscar
Hallo!
Wenn man Execute zwei Hexadezimal-Zahlen addieren läßt und es dabei zu einem Überlauf (> FFFF FFFF) kommt, dann ergibt das als Ergebnis 0. Soweit so gut, aber es kommt nicht zu einem Fehler und das ist schlecht, denn ich würde gerne wissen, ob es zu einem Überlauf gekommen ist.
Hier mal ein Beispiel:
$a = 0xffffffff
$b = 0x1
$c = Execute($a + $b)
$err = @ERROR
MsgBox(0, "Test", "Erg= " & $c & " Err= " & $err)
[/autoit]Kann man das irgendwie anders hinbekommen?
MfG. Oscar