1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. BugFix

Beiträge von BugFix

  • Drop löscht bisherigen Inhalt im Edit

    • BugFix
    • 23. August 2008 um 12:19
    Zitat von Tweaky

    Würde mich aber brennend interessieren an was das liegt ?(

    Ich vermute fast, dass das gewollt ist (in SQL gibt es ja z.B. den Befehl DROP zum Löschen). Also werde ich mal schnell meine eigene Drag 'n Drop-Funktion schreiben. :D

  • Drop löscht bisherigen Inhalt im Edit

    • BugFix
    • 23. August 2008 um 10:14

    Hi,
    wie ihr im Skript seht, kann ich die Einträge aus dem Listview per Drag&Drop ins Edit schreiben. Geht auch tadellos.
    Ich möchte jedoch den bisherigen Inhalt des Edits erhalten (deshalb verwende ich auch die Append-Funktion) - aber sowie gedropt wird, wird der Inhalt des Edits gnadenlos überschrieben.
    Wie kann ich das unterbinden?

    Spoiler anzeigen
    [autoit]

    #include<GuiListView.au3>
    #include<GUIConstantsEx.au3>
    #Include <GuiEdit.au3>
    Opt("GUIOnEventMode", 1)
    $Form1 = GUICreate("Form1", 690, 222, 195, 115)
    GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close")
    GUISetOnEvent($GUI_EVENT_DROPPED, '_dropped')
    $ListView1 = GUICtrlCreateListView("Tabelle", 455, 8, 230, 189)
    GUICtrlSendMsg(-1, 0x101E, 0, $LVSCW_AUTOSIZE_USEHEADER )
    $LVTable = GUICtrlGetHandle($ListView1)
    $Edit1 = GUICtrlCreateEdit("Bla-Bla ", 8, 8, 441, 189)
    GUICtrlSetState($Edit1, $GUI_DROPACCEPTED)
    $hEdit = GUICtrlGetHandle($Edit1)
    For $i = 1 To 10
    _GUICtrlListView_AddItem($LVTable, 'Eintrag ' & StringRight('0' & $i, 2))
    Next
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    While True
    Sleep(100)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func Form1Close()
    Exit
    EndFunc
    Func _dropped()
    If @GUI_DropId <> $Edit1 Then Return
    If @GUI_DragId = $ListView1 Then _
    Local $strAppend = _GUICtrlListView_GetItemText($LVTable, _GUICtrlListView_GetSelectedIndices($LVTable))
    _GUICtrlEdit_AppendText($hEdit, $strAppend)
    EndFunc

    [/autoit]
  • Emailsenden,Zwischenspeichern,Sicherheitsblock!

    • BugFix
    • 22. August 2008 um 22:29

    zu 1.
    Die Suche bemühen, dazu stehen schon x funktionsfähige Beispiele im Forum.

    zu 2.
    Um in ein Word-Dokument zu schreiben muß es geöffnet sein. Das kann selbstverständlich im Hintergrund sein. Schau dir mal die Funktionen der "Word.au3" an.

    zu 3.
    Auch das Thema PC sperren wurde in verschiedenen Threads ausgiebig durchgekaut.

  • IRC Client mit dcc funktion

    • BugFix
    • 22. August 2008 um 14:27

    Kleiner Tipp:
    Starte meinen Bsp.-Client, dort werden ja Ereignisse (eingehende Nachrichten etc.) in die Console geschrieben. Dann schicke von einem anderen Client (mIRC, Miranda...) eine DCC-Anforderung. Dann kannst du genau sehen, wie diese Anforderung vom Protokoll her behandelt wird und brauchst nur analog reagieren.

  • Microsoft SQL UDF

    • BugFix
    • 21. August 2008 um 19:19

    Füge mal das Error-Handling ein, das hilft dir weiter:

    [autoit]

    Global $oMyError = ObjEvent("AutoIt.Error","MyErrFunc") ; Initialize a COM error handler

    [/autoit][autoit][/autoit][autoit]

    Func MyErrFunc()
    Msgbox(0,"AutoItCOM Test","Ein COM-Fehler ist aufgetreten !" & @CRLF & @CRLF & _
    "err.description is: " & @TAB & $oMyError.description & @CRLF & _
    "err.windescription:" & @TAB & $oMyError.windescription & @CRLF & _
    "err.number is: " & @TAB & hex($oMyError.number,8) & @CRLF & _
    "err.lastdllerror is: " & @TAB & $oMyError.lastdllerror & @CRLF & _
    "err.scriptline is: " & @TAB & $oMyError.scriptline & @CRLF & _
    "err.source is: " & @TAB & $oMyError.source & @CRLF & _
    "err.helpfile is: " & @TAB & $oMyError.helpfile & @CRLF & _
    "err.helpcontext is: " & @TAB & $oMyError.helpcontext )
    EndIf
    Local $err = $oMyError.number
    If $err = 0 Then $err = -1
    Local $g_eventerror = $err
    Endfunc

    [/autoit]
  • Ini wird nicht richtig sortiert!

    • BugFix
    • 19. August 2008 um 21:45

    Machs einfach so:

    [autoit]

    Global $INI = @ScriptDir & '\testini.ini'
    Global $strWrite = ''
    If Not FileExists($INI) Then IniWriteSection($INI, 'test', 'key1=A'& @LF &'key3=B'& @LF &'key71=C'& @LF &'key45=D')

    [/autoit][autoit][/autoit][autoit]

    Global $ReadSec = IniReadSection($INI, 'test')
    For $i = 1 To UBound($ReadSec) -1
    $strWrite &= 'Key' & $i & '=' & $ReadSec[$i][1] & @LF
    Next
    IniWriteSection($INI, 'test', $strWrite)

    [/autoit]
  • Ini wird nicht richtig sortiert!

    • BugFix
    • 19. August 2008 um 21:20

    Also nehme ich mal an, dass der Name der Keys (Key1, Key2..) keine Rolle spielt? Es wird nur der erste, zweite... usw. Eintrag abgefragt, unabhängig vom Schlüsselnamen? Oder wie läuft es?

  • Eure Meinung ist gefragt - 32bit oder 64bit, XP oder Vista

    • BugFix
    • 18. August 2008 um 21:27

    Ich glaube, die Meinungen dazu sind so vielschichtig, wie das Wetter :D
    Ich persönlich lehne Vista auch kpl. ab, was ich damit bisher ausprobiert habe, gibt keinen signifikanten Grund XP fallen zu lassen.
    Ob 64-Bit Technologie aktuell irgendwelche Vorteile bringt, wage ich zu bezweifeln. Dort, wo Unmengen an Daten verwaltet werden und es auf Prozessorfähigkeiten ankommt, verwendet man sowieso kein Windows (Media-Bereich, Publishing, da ist der Apfel unumstrittener König).
    Für privaten Bereich ist 64-Bit, sowas wie mit Kanonen auf Spatzen schießen.
    Mein ganz privater Tipp: Dual Core 32-Bit, WinXP

  • Frage...Inputbox Countdown ins Label ...

    • BugFix
    • 18. August 2008 um 19:57

    Hab grad in der Shoutbox gelesen, dass du an den beiden Schleifenformen
    While .. WEnd
    Do ... Until
    verzweifelst.
    Ich zeigs dir am Bsp., beide Varianten machen absolut dasselbe, nur auf andere Art und Weise:

    [autoit]

    While 1
    $msg = GUIGetMsg()
    If $msg = $GUI_EVENT_CLOSE Then Exit
    WEnd
    ; oder
    Do
    $msg = GUIGetMsg()
    Until $msg = $GUI_EVENT_CLOSE

    [/autoit]


    Siehst du den Unterschied, bzw. die Gemeinsamkeiten? - Nun kannst du es sicher in deinem Skript richtig verwenden.

  • Child GUI geöffnet, Parent GUI disabled

    • BugFix
    • 18. August 2008 um 19:29

    Wie wärs denn, wenn du ein wirkliches CHILD-Window erstellst? Lies die Hilfe zu den Styles.

  • Frage...Inputbox Countdown ins Label ...

    • BugFix
    • 18. August 2008 um 18:57

    Also ich bin nicht gewillt letztendlich dein Skript komplett umzuschreiben. Das mußt du selber tun. Genug Hinweise hab ich dir gegeben.
    Ich habe aber den Eindruck, dass es bei dir noch am grundlegenden Verständnis mangelt. Da solltest du dich erst mal mit den Grundlagen beschäftigen und kleine Brötchen backen.

  • TabItem abfragen?

    • BugFix
    • 18. August 2008 um 18:52
    [autoit]

    Case $msg = $Tab
    $aktivesTabItem = _GUICtrlTab_GetCurSel($Tab)

    [/autoit]
  • ip auslesen

    • BugFix
    • 17. August 2008 um 23:16
    [autoit]

    MsgBox(0, '', 'LAN-IP: ' & @IPAddress1)

    [/autoit]
  • Frage...Inputbox Countdown ins Label ...

    • BugFix
    • 17. August 2008 um 21:22

    Das war das Codestücke aus meinem Bsp. und das funktioniert. Ich habe es nur kommentiert, damit du weißt, was passiert.
    Mußt es dann anpassen, wenn du es per Button machen willst.

    Edit:
    Na, hast du es hinbekommen? Ich habs dir mal hier im Muster angepaßt. Du kannst so auch mitten im Countdown zurücksetzen, nicht erst bei Null.
    Und du kannst jetzt auch Stunden eingeben, also:
    bis 1 Std. die Minutenzahl, z.B.: 45
    darüber h:min, also z.B.: 1:05

    Spoiler anzeigen
    [autoit]

    #include <guiconstants.au3>
    #include <Date.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $arBt[8][2], $arIn[8][3], $arCounter[8][2], $y = 10, $input
    GUICreate('test')
    For $i = 0 To UBound($arBt) -1
    $arBt[$i][0] = GUICtrlCreateButton('set Time', 10, $y, 60, 20)
    $arIn[$i][0] = GUICtrlCreateInput('', 80, $y, 40, 20)
    $arCounter[$i][0] = GUICtrlCreateLabel('', 140, $y+3, 80, 17)
    $arBt[$i][1] = GUICtrlCreateButton('Reset', 240, $y, 60, 20)
    GUICtrlSetState($arBt[$i][1], $GUI_DISABLE)
    $y += 30
    Next
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    Do
    $msg = GUIGetMsg()
    _SetCounter()
    For $i = 0 To UBound($arBt) -1
    If $msg = $arBt[$i][0] Then
    $arCounter[$i][1] = 1
    $input = GUICtrlRead($arIn[$i][0])
    If $input = '' Then ContinueLoop
    If StringInStr($input, ':') Then
    $input = StringSplit($input, ':')
    $input = $input[1]*60 + $input[2]
    EndIf
    $arIn[$i][1] = $input * 60
    $arIn[$i][2] = _NowCalc()
    GUICtrlSetState($arBt[$i][0], $GUI_DISABLE)
    GUICtrlSetState($arBt[$i][1], $GUI_ENABLE)
    ElseIf $msg = $arBt[$i][1] Then
    GUICtrlSetState($arBt[$i][0], $GUI_ENABLE)
    GUICtrlSetState($arBt[$i][1], $GUI_DISABLE)
    GUICtrlSetData($arCounter[$i][0], '')
    GUICtrlSetData($arIn[$i][0], '')
    $arIn[$i][1] = 0
    EndIf
    Next
    Until $msg = $GUI_EVENT_CLOSE

    [/autoit] [autoit][/autoit] [autoit]

    Func _SetCounter()
    Local $sec
    For $i = 0 To UBound($arCounter) -1
    If $arCounter[$i][1] <> 1 Then ContinueLoop
    If $arIn[$i][1] = 0 Then ContinueLoop
    $sec = $arIn[$i][1] - _DateDiff("s", $arIn[$i][2], _NowCalc())
    Select
    Case $sec < 60
    GUICtrlSetData($arCounter[$i][0], StringFormat('%02u', $sec) & ' s')
    Case $sec < 60*60
    GUICtrlSetData($arCounter[$i][0], StringFormat('%02u', Floor($sec/60)) & ':' & _
    StringFormat('%02u', Mod($sec,60)) & ' min')
    Case $sec < 60*60*24
    GUICtrlSetData($arCounter[$i][0],StringFormat('%02u', Floor($sec/3600)) & ':' & _
    StringFormat('%02u', Floor(Mod($sec,3600)/60)) & ':' & _
    StringFormat('%02u', Mod(Mod($sec,3600),60)) & ' h')
    EndSelect
    If $sec = 0 Then
    SoundPlay(@WindowsDir & '\Media\tada.wav')
    $arCounter[$i][1] = 0
    EndIf
    Next
    EndFunc

    [/autoit]
  • ip auslesen

    • BugFix
    • 17. August 2008 um 21:17

    Makro: @IPAddress1

  • Frage...Inputbox Countdown ins Label ...

    • BugFix
    • 17. August 2008 um 21:08
    Spoiler anzeigen
    [autoit]

    If $sec = 0 Then
    SoundPlay(@WindowsDir & '\Media\tada.wav')
    $arCounter[$i][1] = 0
    GUICtrlSetState($arBt[$i], $GUI_ENABLE) ; Button wieder Enablen
    GUICtrlSetData($arCounter[$i][0], '') ; Zeitanzeige Label löschen
    GUICtrlSetData($arIn[$i][0], '') ; eingegebene Zeit löschen
    EndIf

    [/autoit]
  • Frage...Inputbox Countdown ins Label ...

    • BugFix
    • 17. August 2008 um 20:51

    Na dasselbe, was unter If $sec = 0 passiert aber halt für das zugehörige Control nur nach Buttondruck.

  • Frage...Inputbox Countdown ins Label ...

    • BugFix
    • 17. August 2008 um 20:36
    Zitat von Teddy

    Nur was muss ich machen , dass man die Reseten kann ...wenn sie auf 0waren ?!


    :D Mal mein letztes Bsp. angucken... :whistling: (Da ist das schon drin)

  • Frage...Inputbox Countdown ins Label ...

    • BugFix
    • 17. August 2008 um 20:03
    Zitat von Teddy

    Aber wenn ich "Start" drücke ab Button5-8 dauert es knapp 1minute bis die Zeit da steht und runter zählt...

    Kann es sein, dass dein Arbeitsspeicher voll ausgelastet ist ? :P
    Bei mir erscheint die Anzeige sofort (innerhalb von 2-3 Zehntel Sekunden.

    Edit:
    LOL ==> du hast ein Sleep von 1000 (= 1 Sekunde!!) in deiner Schleife(zeile 321). Brauchst du gar nicht, hast doch GUIGetMsg. Also Löschen!!
    Und übernimm mal die Änderungen, die ich gemacht habe.

  • Frage...Inputbox Countdown ins Label ...

    • BugFix
    • 17. August 2008 um 19:56
    Zitat von Teddy

    1.das programm kann ich nur beenden wenn EINE zeit abgelaufen ist ...


    Was ist da bei dir los?? - Ich kann JEDERZEIT beenden (auch logisch laut Code).

    Zitat von Teddy

    2.mann kann ja net 61eingeben .... Sprich 61 minuten nur 60minuten xD

    Du wolltest nur Minuten :P - also hast du Minuten bekommen. Das kann man aber ändern.

    Übrigens läuft es völlig mit normaler Geschwindigkeit, egal ob 4 oder 8 Controls.

    Spoiler anzeigen
    [autoit]

    #include <guiconstants.au3>
    #include <Date.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $arBt[8], $arIn[8][3], $arCounter[8][2], $y = 10
    GUICreate('test')
    For $i = 0 To UBound($arBt) -1
    $arBt[$i] = GUICtrlCreateButton('set Time', 10, $y, 60, 20)
    $arIn[$i][0] = GUICtrlCreateInput('', 80, $y, 40, 20)
    $arCounter[$i][0] = GUICtrlCreateLabel('', 140, $y+3, 80, 17)
    $y += 30
    Next
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    Do
    $msg = GUIGetMsg()
    _SetCounter()
    For $i = 0 To UBound($arBt) -1
    If $msg = $arBt[$i] Then
    $arCounter[$i][1] = 1
    $arIn[$i][1] = GUICtrlRead($arIn[$i][0]) * 60
    $arIn[$i][2] = _NowCalc()
    GUICtrlSetState($arBt[$i], $GUI_DISABLE)
    EndIf
    Next
    Until $msg = $GUI_EVENT_CLOSE

    [/autoit] [autoit][/autoit] [autoit]

    Func _SetCounter()
    Local $sec
    For $i = 0 To UBound($arCounter) -1
    If $arCounter[$i][1] <> 1 Then ContinueLoop
    If $arIn[$i][1] = 0 Then ContinueLoop
    $sec = $arIn[$i][1] - _DateDiff("s", $arIn[$i][2], _NowCalc())
    Select
    Case $sec < 60
    GUICtrlSetData($arCounter[$i][0], StringFormat('%02u', $sec) & ' s')
    Case $sec < 60*60
    GUICtrlSetData($arCounter[$i][0], StringFormat('%02u', Floor($sec/60)) & ':' & _
    StringFormat('%02u', Mod($sec,60)) & ' min')
    EndSelect
    If $sec = 0 Then
    SoundPlay(@WindowsDir & '\Media\tada.wav')
    $arCounter[$i][1] = 0
    GUICtrlSetState($arBt[$i], $GUI_ENABLE)
    GUICtrlSetData($arCounter[$i][0], '')
    GUICtrlSetData($arIn[$i][0], '')
    EndIf
    Next
    EndFunc

    [/autoit]

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™