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. funkey

Beiträge von funkey

  • OpenFileDialog & OpenFileDialog mit GIFs (#include "GIFAnimation.au3")

    • funkey
    • 29. Juli 2011 um 16:18

    Lass das 'FileOpen' komplett weg und gib für $Player einfach nur den Pfad an. Mit dem Rückgabewert von FileOpen kannst du in diesem Fall nichts anfangen.

  • Bestimmtes Zahlenformat

    • funkey
    • 29. Juli 2011 um 08:04

    Sorry, hab das mit dem Format missverstanden, so ist es sowieso viel einfacher.

    Zitat von dodo-dk

    Wie kann ich mich dankbar zeigen?


    Wir helfen gerne. Ein danke genügt. 8)

  • Bestimmtes Zahlenformat

    • funkey
    • 29. Juli 2011 um 06:19

    So kannst du auf das Format kommen:

    Spoiler anzeigen
    [autoit]

    Local $Zahl = InputBox("Zahl eingeben", "Bitte geben Sie eine reale Zahl ein")
    $Zahl = StringReplace($Zahl, ",", ".")
    If Not (StringIsFloat($Zahl) Or StringIsInt($Zahl)) Then
    ConsoleWrite("Falsche Eingabe!" & @CRLF)
    Exit
    EndIf

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

    Local $iNachkomma = StringInStr($Zahl, ".")
    Local $iLen = StringLen($Zahl)
    Local $iErgebnis

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

    If $iNachkomma <> 0 Then
    $iErgebnis = $Zahl * 10^($iLen - $iNachkomma)
    Else
    $iErgebnis = $Zahl
    EndIf

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

    While StringLen($iErgebnis) < 6
    $iErgebnis = "0" & $iErgebnis
    WEnd

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

    ConsoleWrite($iErgebnis & @CRLF)

    [/autoit] [autoit][/autoit] [autoit][/autoit]
  • Bug? Benötige Workaround

    • funkey
    • 28. Juli 2011 um 13:08

    Ich bin jetzt eigentlich fast zufrieden mit der Anwendung, deswegen stelle ich den Thread auf gelöst.
    Ich will eigentlich nur verhindern, das der Event eines Controls öfter als einmal ausgeführt wird, da ich damit Daten an die SPS schicke.
    Wenn ich z.B. 614.28 zur SPS senden will, dann wurde vorher 6, 61, 614, 614.2 und zu guter letzt 614.28 gesendet. Und dass das nicht optimal ist, ist wohl jedem hier klar.
    Aber nun funktioniert eh alles bis auf, dass der Wert wenn er geändert wurde beim Focus-Verlust auch gesendet werden soll. Aber das schaffe ich auch noch.

    Trotzdem danke Bugfix.

  • Bug? Benötige Workaround

    • funkey
    • 28. Juli 2011 um 12:30

    Danke UEZ, auf diese Möglichkeit bin ich auch gekommen, auch wenn sie mir nicht so recht gefällt. Aber es wird schon gehen (müssen).

    Spoiler anzeigen
    [autoit]

    Opt("GuiOnEventMode", 1)

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

    GUICreate("Test Bug", 200, 200)
    GUISetOnEvent(-3, "_Exit")
    GUIRegisterMsg(0x0111, "_WM_COMMAND")

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

    Global $ActiveControl = 0

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

    Global $nInput1 = GUICtrlCreateInput("0.00", 10, 10, 80, 20, 0x800)
    Global $nInput2 = GUICtrlCreateInput("0.00", 10, 30, 80, 20, 0x1000)
    Global $nInput3 = GUICtrlCreateInput("0.00", 10, 50, 80, 20)

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

    AdlibRegister("_UpdateInput1", 1000)

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

    GUISetState()

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

    While 1
    Sleep(20000)
    WEnd

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

    Func _Exit()
    Exit
    EndFunc

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

    Func _UpdateInput1()
    GUICtrlSetData($nInput1, StringFormat("%3.2f", Random()))
    EndFunc

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

    Func _WM_COMMAND($hWnd, $Msg, $wParam, $lParam)
    Local $nNotifyCode = BitShift($wParam, 16)
    Local $nID = BitAND($wParam, 0x0000FFFF)

    If $nNotifyCode = 256 Then ; Got Focus
    $ActiveControl = $nID
    EndIf
    If $nID = 1 And $nNotifyCode = 0 Then
    ConsoleWrite("ID" & $ActiveControl & " - " & GUICtrlRead($ActiveControl) & " - Enter pressed" & @cr)
    EndIf
    EndFunc

    [/autoit]
  • Bug? Benötige Workaround

    • funkey
    • 28. Juli 2011 um 10:47

    Nein, der Focus bleibt erhalten.

  • Bug? Benötige Workaround

    • funkey
    • 28. Juli 2011 um 10:16

    Danke. Ich möchte aber Adlibregister eigentlich nicht deaktivieren. Die Daten kommen von einer SPS, und je nach Parameter können auch diese Eingabefelder editiert werden, deswegen kann ich auch kein Label nehmen, bei dem dieser Fehler nicht auftritt.
    Ich werde mal versuchen mit WM_COMMAND was zu basteln.

  • Bug? Benötige Workaround

    • funkey
    • 28. Juli 2011 um 09:40

    Ich habe einige Inputfelder, die automatisch aktualisiert werden und andere bei denen ich was eingeben kann. Nur da wird der Event schon vor dem Drücken der Enter-Taste ausgelöst, und zwar immer wenn ein anderes Inputfeld automatisch beschrieben wird. Gibt es dafür eine Lösung?
    Danke.

    Spoiler anzeigen
    [autoit]

    Opt("GuiOnEventMode", 1)

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

    GUICreate("Test Bug", 200, 200)
    GUISetOnEvent(-3, "_Exit")

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

    Global $nInput1 = GUICtrlCreateInput("0.00", 10, 10, 80, 20, 0x800)
    Global $nInput2 = GUICtrlCreateInput("0.00", 10, 30, 80, 20)
    GUICtrlSetOnEvent($nInput2, "_Input2")

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

    AdlibRegister("_UpdateInput1", 1000)

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

    GUISetState()

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

    While 1
    Sleep(20000)
    WEnd

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

    Func _Exit()
    Exit
    EndFunc

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

    Func _Input2()
    ConsoleWrite(GUICtrlRead(@GUI_CtrlId) & " - Enter pressed?" & @CRLF)
    EndFunc

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

    Func _UpdateInput1()
    GUICtrlSetData($nInput1, StringFormat("%3.2f", Random()))
    EndFunc

    [/autoit]
  • Paralleles arbeiten

    • funkey
    • 25. Juli 2011 um 13:34

    Ist zwar schon gelöst, aber ich wollte nur zeigen, dass man Adlibregister sehr wohl auch dafür nutzen kann.

    Spoiler anzeigen
    [autoit]

    If $CmdLine[0] = "" Then
    AdlibRegister("_Console", 1000)
    AdlibRegister("_MsgBox", 10000)
    Else
    _Blobb()
    EndIf

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

    While 1
    Sleep(200000)
    WEnd

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

    Func _Console()
    If @Compiled Then
    MsgBox(262144, "Kurzer Aufruf", @SEC, 1)
    Else
    ConsoleWrite(@SEC & @CR)
    EndIf
    EndFunc ;==>_Console

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

    Func _MsgBox()
    If @Compiled Then
    Run(@ScriptFullPath & " zweite")
    Else
    ConsoleWrite("BlaBla" & @CR)
    EndIf
    EndFunc ;==>_MsgBox

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

    Func _Blobb()
    MsgBox(4096 + 32, "Langer Aufruf", "Hallo, diese Funktion dauert ganz lange!!", 8)
    Exit
    EndFunc ;==>_Blobb

    [/autoit]


    Am besten kompiliert testen.

  • ClassNameNN in Handle umwandeln

    • funkey
    • 19. Juli 2011 um 08:35

    Vielen Dank, damit kann ich was anfangen!

  • ClassNameNN in Handle umwandeln

    • funkey
    • 18. Juli 2011 um 18:38

    Hallo.
    Gibt es irgendeinen einfachen Weg, um in C/C++ aus einem ClassnameNN eines Buttons eines Fensters das Handle des Controls zu bestimmen?
    Ich stelle mir da eine Funktion vor, die ähnlich wie FindWindowEx arbeitet, hab aber noch nicht das richtige gefunden.

    Danke für jede hilfreiche Antwort.

  • Euer erstes Script

    • funkey
    • 15. Juli 2011 um 18:05

    Das war eines meiner ersten ;)
    Skript zum Einordnen von MP3's

  • DLL ich glaub ich bin zu doof :D

    • funkey
    • 12. Juli 2011 um 00:44

    Nach 'return ergebnis' fehlt überall noch das Semikolon.

    Code
    return ergebnis;
  • Systembedingte Text-Vergrößerung verhindern

    • funkey
    • 7. Juli 2011 um 07:58

    Ich könnte mir vorstellen, dass man die 120% irgendwo auslesen kann und dann die Schriftarten im eigenen Programm dementsprechend kleiner zeichnet. Die Frage ist nur, wo liest man diese Einstellung aus?

  • Geschwindigkeitsvergleich C, Basic, Pascal Unerwartetes Ergebnis?!

    • funkey
    • 5. Juli 2011 um 14:39

    Die Größe beträgt bei mir mit Code:Blocks und MinGw 6,50 KB. Ich aber deutlich langsamer als Basic und nach dem Weglassen von pow() ungefähr gleich schnell wie Pascal. Wenn ich allerdings "Pi/180" als Konstante verwende, dann wird es wieder langsamer. Vielleicht solltest du den richtigen Algo nun auch noch in C kompilieren, damit nicht die besseren Optimierungen in den Kompilern über die bessere Sprache siegen. :)

  • Bilder in Combobox > ist das möglich?

    • funkey
    • 16. Juni 2011 um 14:18

    Dann halt noch ein vereinfachtes Hilfe-Beispiel:

    Spoiler anzeigen
    [autoit]

    #include <GuiComboBoxEx.au3>
    #include <GuiImageList.au3>
    #include <GuiConstantsEx.au3>

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

    Local $hGUI, $hImage, $hCombo

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

    $hGUI = GUICreate("ComboBoxEx Create Solid BitMap", 400, 300)
    $hCombo = _GUICtrlComboBoxEx_Create($hGUI, "", 2, 2, 394, 100)
    GUISetState()

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

    $hImage = _GUIImageList_Create(16, 16, 5, 3)
    _GUIImageList_Add($hImage, _GUICtrlComboBoxEx_CreateSolidBitMap ($hCombo, 0xFF0000, 16, 16))
    _GUIImageList_Add($hImage, _GUICtrlComboBoxEx_CreateSolidBitMap ($hCombo, 0x00FF00, 16, 16))
    _GUIImageList_Add($hImage, _GUICtrlComboBoxEx_CreateSolidBitMap ($hCombo, 0x0000FF, 16, 16))
    _GUICtrlComboBoxEx_SetImageList($hCombo, $hImage)

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

    _GUICtrlComboBoxEx_AddString($hCombo, "Rot", 0, 0)
    _GUICtrlComboBoxEx_AddString($hCombo, "Grün", 1, 1)
    _GUICtrlComboBoxEx_AddString($hCombo, "Blau", 2, 2)

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

    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

    [/autoit]
  • Bilder in Combobox > ist das möglich?

    • funkey
    • 16. Juni 2011 um 12:10

    Ein Beispiel aus der Hilfe:

    [autoit]

    #include <GuiComboBoxEx.au3>
    #include <GuiImageList.au3>
    #include <GuiConstantsEx.au3>

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

    Opt('MustDeclareVars', 1)

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

    $Debug_CB = False ; Check ClassName being passed to ComboBox/ComboBoxEx functions, set to True and use a handle to another control to see it work

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

    _Main()

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

    Func _Main()
    Local $hGUI, $hImage, $hCombo

    ; Create GUI
    $hGUI = GUICreate("ComboBoxEx Create Solid BitMap", 400, 300)
    $hCombo = _GUICtrlComboBoxEx_Create ($hGUI, "", 2, 2, 394, 100)
    GUISetState()

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

    $hImage = _GUIImageList_Create (16, 16, 5, 3)
    _GUIImageList_Add ($hImage, _GUICtrlComboBoxEx_CreateSolidBitMap ($hCombo, 0xFF0000, 16, 16))
    _GUIImageList_Add ($hImage, _GUICtrlComboBoxEx_CreateSolidBitMap ($hCombo, 0x00FF00, 16, 16))
    _GUIImageList_Add ($hImage, _GUICtrlComboBoxEx_CreateSolidBitMap ($hCombo, 0x0000FF, 16, 16))
    _GUICtrlComboBoxEx_SetImageList ($hCombo, $hImage)

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

    For $x = 0 To 2
    _GUICtrlComboBoxEx_AddString ($hCombo, StringFormat("%03d : Random string", Random(1, 200, 1)), $x, $x)
    Next

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

    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    EndFunc ;==>_Main

    [/autoit]
  • "Rechtsklickfenster"???

    • funkey
    • 15. Juni 2011 um 16:19

    Schau dir mal das Hilfe-Beispiel zu GUICtrlCreateContextMenu an. ;)

  • AMsg - Erweiterte MsgBox mit GDI+

    • funkey
    • 10. Juni 2011 um 20:03

    Gefällt mir sehr gut, bis auf das Neuzeichnen, wenn man das Fenster über den Desktoprand hinausschiebt, oder ein anderes Fenster darüberzieht.
    Aber auf alle Fälle schön!!

    Hast du das schon gesehen, das ist mein neuer Favorit: http://www.autoitscript.com/forum/topic/12…box-tipped-udf/

  • Input transparent oder Rand färben

    • funkey
    • 9. Juni 2011 um 19:48

    Hätte da noch einen Versuch für einen Workaround

    [autoit]


    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    Opt('GUIOnEventMode', 1)

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

    Global $hGui = GUICreate("Quasi-Transparentes Input-Control", 300, 300)
    GUISetOnEvent(-3, '_Ende')
    GUIRegisterMsg($WM_COMMAND, 'MY_WM_NOTIFY')

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

    GUICtrlCreatePic(@DocumentsCommonDir&'\Eigene Bilder\Beispielbilder\Sonnenuntergang.jpg', 0, 0, 300, 300, 0)

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

    GUICtrlCreateLabel("Transparentes Input-Control", 20, 20, 260, 20, 0x201)
    GUICtrlSetBkColor(-1, -2)

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

    Global $nInput = GUICtrlCreateInput('', 23, 50, 257, 1, 0x200)
    Global $hInput = GUICtrlGetHandle(-1)

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

    Global $nLabel = GUICtrlCreateLabel("", 20, 50, 260, 16, 0x1000)
    GUICtrlSetBkColor(-1, -2)
    GUICtrlSetOnEvent(-1, "_EditActivate")

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

    GUICtrlCreateLabel("Normales Input-Control", 20, 90, 260, 20, 0x201)
    GUICtrlSetBkColor(-1, -2)

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

    GUICtrlCreateInput('', 25, 120, 255, 20, 0x200)

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

    GUISetState()

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

    While 1
    Sleep(10000)
    WEnd

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

    Func _Ende()
    Exit
    EndFunc

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

    Func _EditActivate()
    ControlFocus($hGui, "", $hInput)
    EndFunc

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

    Func MY_WM_NOTIFY($hWnd, $msg, $wParam, $lParam)
    Local $nID = BitAND($wParam, 0x0000FFFF)
    If $nID = $nInput Then GUICtrlSetData($nLabel, ' ' & GUICtrlRead($nInput))
    EndFunc

    [/autoit][autoit][/autoit][autoit][/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™