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

Beiträge von teamnoobPDB

  • ISN AutoIt Studio

    • teamnoobPDB
    • 24. Juli 2013 um 15:13

    Super Arbeit! Ich freue mich über jedes Update, aber ich fände es cool wenn das Studio kleiner Auflösungen besser unterstützen würde. D.h. mein Laptop hat eine Auflösung von 1366x768 und es wird vieles nicht sauber dargestellt bzw. ich kann nicht wirklich viel Code einsehen. Bei einer Auflösung von 1920x1080 kann ich wesentlich mehr sehen und z.B. wäre es toll wenn man bei einer so kleinen Auflösung die möglichkeit hätte die Console zu verbergen ohne die ganze Zeit sie verkleinern zu müssen. Oder das es eine Art Vollbildmodus gibt wie in Firefox. Die Tabs werden dort auf der Leiste ganz oben (k.a. wie man die nennt :D) dargestellt und so wäre etwas mehr platz da. Aber trotzdem ist es eine tolle IDE und ich werde sie trotzdem weiter nutzen ich würde mich aber freuen wenn du da etwas verbessern würdest ;)

  • Frage zu Regex

    • teamnoobPDB
    • 16. Juni 2013 um 20:31
    Code
    Martin Mustermann SeeYoustr. 4 12323 Wurstwo Egalheim


    Nur weil der String so angeordnet ist und nicht so

    Code
    Vorname | Nachname | Strasse | Hausnr | PLZ | Ort | Teilort


    heißt das nicht das man

    [autoit]

    StringSplit

    [/autoit]


    nicht benutzen kann ;)
    Entweder du benutzt erst ein

    [autoit]

    StringReplace

    [/autoit]


    und Tauschst alle Leerzeichen durch ein - oder / oder | aus oder du machst es direkt mit dem

    [autoit]

    StringSplit

    [/autoit]


    der kann auch an Leerzeichen Splitten ;)

  • Schattenwurf bei Rechtecken [GDI+]

    • teamnoobPDB
    • 1. Juni 2013 um 23:14

    name22 Danke für die erklärung :D Das warmir auch klar aber ich frage mich wo das Problem bei Mars liegt. Er könnte das doch einbauen das sich das Sleep automatisch verändert je nach Prozessorleistung ...

  • Schattenwurf bei Rechtecken [GDI+]

    • teamnoobPDB
    • 1. Juni 2013 um 23:04

    Also bei mir hat es etwas geruckelt auf meinem Laptop dermit 1.8GHz rechnet :D Aber nachdem ich in Zeile 56 Das Sleep(50) zu Sleep(10) gemacht habe lief es fast ruckelfrei :D Wo ist da das Problem? :P

  • Pipeline DLL - die einfachste Art der Prozess-Kommunikation

    • teamnoobPDB
    • 31. Mai 2013 um 16:14

    Danke water für den Tipp aber das ist nicht so ganz das was ich suche ... Die Pipeline UDF ist eher das was ich brauche ...

  • Pipeline DLL - die einfachste Art der Prozess-Kommunikation

    • teamnoobPDB
    • 31. Mai 2013 um 12:07

    Hey minx,

    gute DLL, einfache Handhabung und läuft gut. Aber ich habe nun Folgendes problem: Ich habe ein Skript das auf verschiedenen Computern laufen soll. Und dass deine DLL auf allen benötigt wird. Ich habe versucht es über einen Run versuch am Start des Skriptes versucht die DLL zu registrieren:

    [autoit]

    Run('regsvr32 /i X:xxx\Pipeline.dll')

    [/autoit]


    Das funktioniert aber nicht auf allen PC's bei meinem Laptop mit WIN 8 geht das aber bei WIN 7 gehts nicht also habe ich versucht eine universelle version zu suchen und will nun über DllOpen() die DLL öffnen und dann die Funktionen ausführen etc. dafür müsste ich aber wissen wie deine Funktionen aufgerufen werden bzw. wissen wie die DLL aussieht, das Funktioniert aber auch nicht :( Könntest du mir da vlt. helfen?

  • Input ÜBER eine Grafik legen?

    • teamnoobPDB
    • 5. Mai 2013 um 21:50

    Ich denke das ich das machen werde :D Trotzdem danke für die Hilfe :)

  • Input ÜBER eine Grafik legen?

    • teamnoobPDB
    • 5. Mai 2013 um 21:45

    Mein Fehler ich hätte esnicht mit nem Bild erklären sollen ... Das Bild ist weniger das Problem sondern die Gesamte GRafikoberfläche ... Selbst der vom ClearGraphics gefärbte Hintergrund überdeckt den Input und den Kann ich nur schwer Disablen ...

  • Input ÜBER eine Grafik legen?

    • teamnoobPDB
    • 5. Mai 2013 um 21:39

    Bist du dir da sicher ? Ich glaube dass das bei meinem Skript nicht möglich sein wird ...

    ich habe nämlich folgende Konstellation:

    [autoit]

    ;Hier oben die Gui mit dem Input
    _GDIPlus_GraphicsClear()
    _GDIPlus_GraphicsDrawImageRect()
    _WinAPI_BitBlt()

    [/autoit]

    Ich bezweifle dass man da was Disablen kann

  • Input ÜBER eine Grafik legen?

    • teamnoobPDB
    • 5. Mai 2013 um 21:36

    Ja aber ich kann es leider nicht aud Disabled setzen da ich mit GDI+ und WinAPI arbeite.... ;)

  • Input ÜBER eine Grafik legen?

    • teamnoobPDB
    • 5. Mai 2013 um 21:31

    Danke für die Antwort :D

    Das mit der Child GUI hab ich nachvollzogen aber wie meinst du das mit dem Pic-Control?

  • Input ÜBER eine Grafik legen?

    • teamnoobPDB
    • 5. Mai 2013 um 20:06

    Hallo Leute,

    habe ein Problem mit einem ganz simplen Input... :/ In Zeile 393 wird ein Input erstellt in meinem Skript aber dieses soll über die GDI+/WinAPI Oberfläche "gezeichnet" werden was aber trotz $GUI_ONTOP state nicht funktioniert. Erst wenn ich mit der Maus über den Input fahre wird er aber auch nur fllackernd dargestellt... Könnte mir da jmd. Helfen?

    Danke

    Hier der Link zum Skript (Tut mir leid das ich es so machen muss aber ich kann hier leider keine 50mb große .zip Datei hochladen) auf meiner Dropbox:
    Dropbox

    P.S.: Ich hoffe das sich jemand durch den Code-Batzen durchwälzen kann :D

  • _WinAPI_BitBlt Probleme

    • teamnoobPDB
    • 29. April 2013 um 21:15

    Danke für den Tipp ;)
    Aber das ich die ganzen Buttons neu zeichne ohne das was passiert ist ja eigentlich Nebensache auch beim Scrollen sind die FPS sehr niedrig und das war ja Hauptsächlich das Problem wenn da niemand scrollt kann die FPS ja auf 1 sinken weil man es da nicht bemerkt :D
    Aber trotzdem danke für die Hilfe ich werde versuchen es so umzubauen wie du es gesagt hattest ;)

  • _WinAPI_BitBlt Probleme

    • teamnoobPDB
    • 29. April 2013 um 18:40

    Hallo ich habe mir folgendes Skript gebastelt. Es soll eine "einfache" 2D GUI sein und es werden nur ein paar Elemente drauf gezeichnet. Nun will aber die FPS-Anzahl nicht über 16 steigen bei einem 3.6 GHz Prozessor. Kann vlt. noch jemand das Skript verbessern, außer mit OpenGL/CL.

    Spoiler anzeigen
    [autoit]

    #include <GDIPlus.au3>
    #include <GuiConstants.au3>
    #include <WindowsConstants.au3>
    #include <WinAPI.au3>

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

    Opt("GUIOnEventMode",1)

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

    _GDIPlus_Startup()

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

    GUIRegisterMsg($WM_PAINT,"_Redraw")
    GUISetOnEvent($GUI_EVENT_CLOSE,"_Exit")

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

    #region Brushes
    $bRed = _GDIPlus_BrushCreateSolid(0xFFFF0000)
    $bDarkRed = _GDIPlus_BrushCreateSolid(0xFF8B0000)
    $bBlue = _GDIPlus_BrushCreateSolid(0xFF0000FF)
    $bDarkBlue = _GDIPlus_BrushCreateSolid(0xFF00008B)
    $bGreen = _GDIPlus_BrushCreateSolid(0xFF00FF00)
    $bDarkGreen = _GDIPlus_BrushCreateSolid(0xFF008B00)
    $bDimGrey = _GDIPlus_BrushCreateSolid(0xFF696969)
    $bDarkGrey = _GDIPlus_BrushCreateSolid(0xFFA9A9A9)
    #endregion

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

    Global $hWnd, $hDC_Window, $hDC_Bitmap, $hBitmap, $hGraphics, $hOldObj, $CPU_MIN = True; <= True bei über 2000 MHz, False bei weniger
    Global $BG = _GDIPlus_ImageLoadFromFile(""); Einfach ein Bild hier einfügen

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

    $hGui_Main = GUICreate("MyGui",@DesktopWidth,@DesktopHeight,0,0,BitOR($WS_POPUP,$WS_MAXIMIZE))

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

    $hDC_Window = _WinAPI_GetDC($hGui_Main)
    $hDC_Bitmap = _WinAPI_CreateCompatibleDC($hDC_Window)
    $hBitmap = _WinAPI_CreateCompatibleBitmap($hDC_Window, @DesktopWidth, @DesktopHeight)
    $hOldObj = _WinAPI_SelectObject($hDC_Bitmap, $hBitmap)

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

    $hGraphic = _GDIPlus_GraphicsCreateFromHDC($hDC_Bitmap)
    _GDIPlus_GraphicsSetSmoothingMode($hGraphic, 2)

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

    GUISetState(@SW_SHOW,$hGui_Main)

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

    #region Variablen
    Global $SliderPerc = 0,$SliderX_New
    Global $SliderWidth = @DesktopWidth / 6
    Local $aTemp

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

    $MouseDiffX = 0
    $SliderX = (@DesktopWidth / 7) + $MouseDiffX
    $SliderY = @DesktopHeight * 0.95

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

    $SliderX_New = $SliderX

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

    ;===============================;
    Dim $aMainButton1[7]
    $aMainButton1[0] = 0
    $aMainButton1[1] = @DesktopWidth / 2 - (@DesktopWidth / 10)
    $aMainButton1[2] = @DesktopHeight / 2 - (@DesktopWidth / 10)
    $aMainButton1[3] = (@DesktopWidth / 10) * 2
    $aMainButton1[4] = (@DesktopWidth / 10) * 2
    $aMainButton1[5] = $bRed
    $aMainButton1[6] = $bDarkRed
    Dim $aMainButton2[7]
    $aMainButton2[0] = 1
    $aMainButton2[1] = @DesktopWidth / 2 - (@DesktopWidth / 10) + 0.5 *@DesktopWidth
    $aMainButton2[2] = @DesktopHeight / 2 - (@DesktopWidth / 10)
    $aMainButton2[3] = (@DesktopWidth / 10) * 2
    $aMainButton2[4] = (@DesktopWidth / 10) * 2
    $aMainButton2[5] = $bBlue
    $aMainButton2[6] = $bDarkBlue
    Dim $aMainButton3[7]
    $aMainButton3[0] = 2
    $aMainButton3[1] = @DesktopWidth / 2 - (@DesktopWidth / 10) + @DesktopWidth
    $aMainButton3[2] = @DesktopHeight / 2 - (@DesktopWidth / 10)
    $aMainButton3[3] = (@DesktopWidth / 10) * 2
    $aMainButton3[4] = (@DesktopWidth / 10) * 2
    $aMainButton3[5] = $bGreen
    $aMainButton3[6] = $bDarkGreen
    Dim $aMainButton4[7]
    $aMainButton4[0] = 3
    $aMainButton4[1] = @DesktopWidth / 2 - (@DesktopWidth / 10) + (1.5 * @DesktopWidth)
    $aMainButton4[2] = @DesktopHeight / 2 - (@DesktopWidth / 10)
    $aMainButton4[3] = (@DesktopWidth / 10) * 2
    $aMainButton4[4] = (@DesktopWidth / 10) * 2
    $aMainButton4[5] = $bRed
    $aMainButton4[6] = $bDarkRed
    Dim $aMainButton5[7]
    $aMainButton5[0] = 4
    $aMainButton5[1] = @DesktopWidth / 2 - (@DesktopWidth / 10) + (2 * @DesktopWidth)
    $aMainButton5[2] = @DesktopHeight / 2 - (@DesktopWidth / 10)
    $aMainButton5[3] = (@DesktopWidth / 10) * 2
    $aMainButton5[4] = (@DesktopWidth / 10) * 2
    $aMainButton5[5] = $bBlue
    $aMainButton5[6] = $bDarkBlue
    Dim $aMainButton6[7]
    $aMainButton6[0] = 5
    $aMainButton6[1] = @DesktopWidth / 2 - (@DesktopWidth / 10) + (2.5 * @DesktopWidth)
    $aMainButton6[2] = @DesktopHeight / 2 - (@DesktopWidth / 10)
    $aMainButton6[3] = (@DesktopWidth / 10) * 2
    $aMainButton6[4] = (@DesktopWidth / 10) * 2
    $aMainButton6[5] = $bGreen
    $aMainButton6[6] = $bDarkGreen
    Dim $aMainButton7[5]
    $aMainButton7[0] = 0
    $aMainButton7[1] = @DesktopWidth * 0.96
    $aMainButton7[2] = @DesktopHeight * 0.01
    $aMainButton7[3] = (@DesktopWidth / 100) * 2
    $aMainButton7[4] = (@DesktopWidth / 100) * 2
    Dim $aAButton[7]
    $aAButton[0] = 6
    $aAButton[1] = $aMainButton1
    $aAButton[2] = $aMainButton2
    $aAButton[3] = $aMainButton3
    $aAButton[4] = $aMainButton4
    $aAButton[5] = $aMainButton5
    $aAButton[6] = $aMainButton6
    #endregion

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

    _Draw_Graphics($hGraphic,$hDC_Window,$hDC_Bitmap,$SliderX,$SliderY, $bDimGrey)

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

    $Timer = TimerInit()
    $FPS = 0

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

    While True
    If TimerDiff($Timer) >= 1000 Then
    ToolTip("FPS:" & $FPS)
    $FPS = 0
    $Timer = TimerInit()
    Else
    $FPS += 1
    EndIf
    $Mouse = GUIGetCursorInfo($hGui_Main)
    If $Mouse[0] < $SliderX + $SliderWidth And $Mouse[0] > $SliderX Then
    If $Mouse[1] < (@DesktopHeight * 0.95) + 20 And $Mouse[1] > @DesktopHeight * 0.95 Then
    If $Mouse[2] == 1 Then
    $MouseDiffX = $Mouse[0] - $SliderX
    Do
    $Mouse = GUIGetCursorInfo($hGui_Main)
    If $Mouse[0] - $MouseDiffX >= @DesktopWidth / 7 And $Mouse[0] - $MouseDiffX + $SliderWidth <= @DesktopWidth - (@DesktopWidth / 7) Then
    $SliderX = $Mouse[0] - $MouseDiffX
    $SliderPerc = Round((($SliderX - (@DesktopWidth / 7)) / (@DesktopWidth - (3 * (@DesktopWidth / 7)))) * 100)
    EndIf
    $aMainButton1 = _Button_Event($aMainButton1,$SliderX)
    $aMainButton2 = _Button_Event($aMainButton2,$SliderX)
    $aMainButton3 = _Button_Event($aMainButton3,$SliderX)
    $aMainButton4 = _Button_Event($aMainButton4,$SliderX)
    $aMainButton5 = _Button_Event($aMainButton5,$SliderX)
    $aMainButton6 = _Button_Event($aMainButton6,$SliderX)

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

    $aAButton[1] = $aMainButton1
    $aAButton[2] = $aMainButton2
    $aAButton[3] = $aMainButton3
    $aAButton[4] = $aMainButton4
    $aAButton[5] = $aMainButton5
    $aAButton[6] = $aMainButton6

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

    $SliderX_New = $SliderX

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

    _Clear_Buffer($hGraphic)
    _Draw_BG($hGraphic)
    For $i = 1 To $aAButton[0] Step 1
    $aTemp = $aAButton[$i]
    _Draw_RoundCorner_Button($hGraphic,"Button-" & $i,$aTemp[1],$aTemp[2],$aTemp[3],$aTemp[4],20,$aTemp[5])
    Next
    _Draw_RoundCorner_Button($hGraphic,"X",$aMainButton7[1],$aMainButton7[2],$aMainButton7[3],$aMainButton7[4],20,$bRed)
    _Draw_Graphics($hGraphic,$hDC_Window,$hDC_Bitmap,$SliderX,$SliderY, $bDarkGrey)
    Until $Mouse[2] == 0
    ;Else
    ;$MouseDiffX = 0
    EndIf
    EndIf
    EndIf
    _Clear_Buffer($hGraphic)
    _Draw_BG($hGraphic)
    If $Mouse[0] < $aMainButton7[1] + $aMainButton7[3] And $Mouse[0] > $aMainButton7[1] And $Mouse[1] < $aMainButton7[2] + $aMainButton7[4] And $Mouse[1] > $aMainButton7[2] Then
    _Draw_RoundCorner_Button($hGraphic,"X",$aMainButton7[1],$aMainButton7[2],$aMainButton7[3],$aMainButton7[4],20,$bDarkRed)
    If $Mouse[2] == 1 Then _Exit()
    Else
    _Draw_RoundCorner_Button($hGraphic,"X",$aMainButton7[1],$aMainButton7[2],$aMainButton7[3],$aMainButton7[4],20,$bRed)
    EndIf
    For $i = 1 To $aAButton[0] Step 1
    $aTemp = $aAButton[$i]
    If $Mouse[0] < $aTemp[1] + $aTemp[3] And $Mouse[0] > $aTemp[1] And $Mouse[1] < $aTemp[2] + $aTemp[4] And $Mouse[1] > $aTemp[2] Then
    _Draw_RoundCorner_Button($hGraphic,"Button-" & $i,$aTemp[1],$aTemp[2],$aTemp[3],$aTemp[4],20,$aTemp[6])
    If $Mouse[2] == 1 Then
    Switch $i
    Case 1

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

    Case 2

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

    Case 3

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

    Case 4

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

    Case 5

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

    Case 6

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

    EndSwitch
    EndIf
    Else
    _Draw_RoundCorner_Button($hGraphic,"Button-" & $i,$aTemp[1],$aTemp[2],$aTemp[3],$aTemp[4],20,$aTemp[5])
    EndIf
    Next
    _Draw_Graphics($hGraphic,$hDC_Window,$hDC_Bitmap,$SliderX,$SliderY, $bDimGrey)
    WEnd

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

    Func _Draw_Graphics($hGr,$hDCw,$hDCb,$sx,$sy,$b1)
    Local $Font
    _GDIPlus_GraphicsDrawRect($hGr,(@DesktopWidth / 7) - 5,(@DesktopHeight * 0.95) - 5,@DesktopWidth - (2 *(@DesktopWidth / 7)) + 10,30)
    _GDIPlus_GraphicsFillRect($hGr,$sx,$sy,$SliderWidth,20,$b1)
    $Font = _GetTextLabelWidth("MyGui", "Arial", 60)
    _GDIPlus_GraphicsDrawString($hGr,"MyGui",@DesktopWidth / 2 - $Font / 2,20,"Arial",60)
    _WinAPI_BitBlt($hDCw, 0, 0, @DesktopWidth, @DesktopHeight, $hDCb, 0, 0, $SRCCOPY)
    EndFunc

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

    Func _Draw_BG($hBu)
    _GDIPlus_GraphicsDrawImageRect($hBu,$BG,0,0,@DesktopWidth,@DesktopHeight)
    EndFunc

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

    Func _Button_Event($aB,$s)
    Local $diff
    If $SliderX_New < $SliderX Then
    $diff = $s - $SliderX_New
    $aB[1] -= 4 * $diff
    Else
    If $SliderX_New > $SliderX Then
    $diff = $SliderX_New - $s
    $aB[1] += 4 * $diff
    EndIf
    EndIf
    Return $aB
    EndFunc

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

    Func _Exit()
    _WinAPI_SelectObject($hDC_Bitmap, $hOldObj)
    _WinAPI_ReleaseDC($hWnd, $hDC_Window)
    _WinAPI_DeleteDC($hDC_Bitmap)
    _WinAPI_DeleteObject($hBitmap)

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

    _GDIPlus_GraphicsDispose($hGraphics)
    _GDIPlus_BrushDispose($bRed)
    _GDIPlus_BrushDispose($bDarkRed)
    _GDIPlus_BrushDispose($bBlue)
    _GDIPlus_BrushDispose($bDarkBlue)
    _GDIPlus_BrushDispose($bGreen)
    _GDIPlus_BrushDispose($bDarkGreen)
    _GDIPlus_BrushDispose($bDimGrey)
    _GDIPlus_BrushDispose($bDarkGrey)
    _GDIPlus_Shutdown()
    Exit
    EndFunc

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

    Func _GetTextLabelWidth($s_WinText, $s_TextFont, $i_FontSize, $i_FontWeight = -1)
    Local Const $DEFAULT_CHARSET = 0 ; ANSI character set
    Local Const $OUT_CHARACTER_PRECIS = 2
    Local Const $CLIP_DEFAULT_PRECIS = 0
    Local Const $PROOF_QUALITY = 2
    Local Const $FIXED_PITCH = 1
    Local Const $RGN_XOR = 3
    Local Const $LOGPIXELSY = 90

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

    $h_WinTitle = "Get Label Width"
    If $i_FontWeight = "" Or $i_FontWeight = -1 Then $i_FontWeight = 600 ; default Font weight
    Local $h_GUI = GUICreate($h_WinTitle, 10, 10, -100, -100, $WS_POPUPWINDOW, $WS_EX_TOOLWINDOW)
    Local $hDC = DllCall("user32.dll", "int", "GetDC", "hwnd", $h_GUI)

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

    Local $intDeviceCap = DllCall("gdi32.dll", "long", "GetDeviceCaps", "int", $hDC[0], "long", $LOGPIXELSY)
    $intDeviceCap = $intDeviceCap[0]

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

    Local $intFontHeight = DllCall("kernel32.dll", "long", "MulDiv", "long", $i_FontSize, "long", $intDeviceCap, "long", 72)
    $intFontHeight = -$intFontHeight[0]

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

    Local $hMyFont = DllCall("gdi32.dll", "hwnd", "CreateFont", "int", $intFontHeight, _
    "int", 0, "int", 0, "int", 0, "int", $i_FontWeight, "int", 0, _
    "int", 0, "int", 0, "int", $DEFAULT_CHARSET, _
    "int", $OUT_CHARACTER_PRECIS, "int", $CLIP_DEFAULT_PRECIS, _
    "int", $PROOF_QUALITY, "int", $FIXED_PITCH, "str", $s_TextFont)
    DllCall("gdi32.dll", "hwnd", "SelectObject", "int", $hDC[0], "hwnd", $hMyFont[0])

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

    Local $res = DllStructCreate("int;int")

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

    Local $ret = DllCall("gdi32.dll", "int", "GetTextExtentPoint32", "int", $hDC[0], "str", $s_WinText, "long", StringLen($s_WinText), "ptr", DllStructGetPtr($res))

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

    Local $intLabelWidth = DllStructGetData($res,1)

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

    GUIDelete($h_GUI)
    Return $intLabelWidth
    EndFunc

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

    Func _Clear_Buffer($hBu)
    _GDIPlus_GraphicsClear($hBu,0xFFFFFFFF)
    EndFunc

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

    Func _Draw_RoundCorner_Button($hGr,$TXT,$sX,$sY,$W,$H,$r,$C)
    Local $Font
    If $CPU_MIN Then
    ;Rundungen
    _GDIPlus_GraphicsFillEllipse($hGr,$sX,$sY,2 * $r,2 * $r,$C)
    _GDIPlus_GraphicsFillEllipse($hGr,$sX + $W - 2 * $r,$sY,2 * $r,2 * $r,$C)
    _GDIPlus_GraphicsFillEllipse($hGr,$sX,$sY + $H - 2 * $r,2 * $r,2 * $r,$C)
    _GDIPlus_GraphicsFillEllipse($hGr,$sX + $W - 2 * $r,$sY + $H - 2 * $r,2 * $r,2 * $r,$C)
    ;Fläche
    _GDIPlus_GraphicsFillRect($hGr,$sX,$sY + $r,$W,$H - (2 * $r),$C)
    _GDIPlus_GraphicsFillRect($hGr,$sX + $r,$sY,$W - (2 * $r),$r + 1,$C)
    _GDIPlus_GraphicsFillRect($hGr,$sX + $r,$sY + $H - $r - 1,$W - (2* $r),$r + 1,$C)
    ;Text
    $Font = _GetTextLabelWidth($TXT, "Arial", 16)
    _GDIPlus_GraphicsDrawString($hGr,$TXT,$sX + ($W / 2) - $Font / 2,$sY + ($H / 2) - 10,"Arial",16)
    Else
    _GDIPlus_GraphicsFillRect($hGr,$sX,$sY,$W,$H,$C)
    $Font = _GetTextLabelWidth($TXT, "Arial", 16)
    _GDIPlus_GraphicsDrawString($hGr,$TXT,$sX + ($W / 2) - $Font / 2,$sY + ($H / 2) - 10,"Arial",16)
    EndIf
    EndFunc

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

    Func _Redraw()
    _WinAPI_BitBlt($hDC_Window, 0, 0, @DesktopWidth, @DesktopHeight, $hDC_Bitmap, 0, 0, $SRCCOPY)
    EndFunc

    [/autoit]
  • RichEdit Wissenslücke

    • teamnoobPDB
    • 25. April 2013 um 18:42

    Hallo Leute,

    ich habe folgendes Problem und zwar möchte ich in einem RichEdit mit einer Funktion Spezielle Wörter einfärben, nun habe ich aber keine Ahnung wie ich das machen soll.
    Ich hab einen sehr umständlichen weg mal ausprobiert aber dieser scheint nicht zu funktionieren.

    EDIT: Hab es mal modifiziert ... also ein Wort kann ich jetzt einfärben nur stürzt es beim 2. Wort ab... :/

    Spoiler anzeigen
    [autoit]

    #include <GuiConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <EditConstants.au3>
    #include <GuiRichEdit.au3>
    #include <Misc.au3>

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

    $Width = @DesktopWidth
    $Height = @DesktopHeight

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

    $hGui = GUICreate("Test",$Width,$Height,0,0,BitOR($WS_POPUP,$WS_MAXIMIZE));,$WS_EX_TOPMOST);Fullscreen Fenster
    #region Datei-Menu
    $Menu_Handle_Datei = GUICtrlCreateMenu("Datei")
    $Menu_Item_Datei = GUICtrlCreateMenuItem("Neu",$Menu_Handle_Datei)
    $Menu_Item_Offnen = GUICtrlCreateMenuItem("Öffnen",$Menu_Handle_Datei)
    $Platzhalter_1 = GUICtrlCreateMenuItem("",$Menu_Handle_Datei)
    $Menu_Item_Speichern = GUICtrlCreateMenuItem("Speichern",$Menu_Handle_Datei)
    $Menu_Item_SpeichernUnter = GUICtrlCreateMenuItem("Speichern unter",$Menu_Handle_Datei)
    $Platzhalter_2 = GUICtrlCreateMenuItem("",$Menu_Handle_Datei)
    $Menu_Item_Beenden = GUICtrlCreateMenuItem("Beenden",$Menu_Handle_Datei)
    #endregion
    #region Bearbeiten-Menu
    $Menu_Handle_Bearbeiten = GUICtrlCreateMenu("Bearbeiten")
    #endregion
    #region Edit-Feld
    $hMain_Edit = _GUICtrlRichEdit_Create($hGui,"",$Width / 6,25,$Width / 1.5,$Height * 0.75,BitOR($ES_AUTOHSCROLL,$ES_AUTOVSCROLL,$ES_MULTILINE,$ES_WANTRETURN))
    #endregion
    GUISetState(@SW_SHOW)

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

    While Sleep(10)
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE, $Menu_Item_Beenden
    _Exit($hGui)
    EndSwitch
    If _GUICtrlRichEdit_IsModified($hMain_Edit) == True Then
    _Color_Words($hMain_Edit,_GUICtrlRichEdit_GetText($hMain_Edit))
    _GUICtrlRichEdit_SetModified($hMain_Edit,False)
    EndIf
    WEnd

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

    Func _Color_Words($hEdit,$Edit)
    Local $wPos
    _GUICtrlRichEdit_SetCharColor($hEdit,0x000000)
    If StringInStr($Edit,"Hallo") > 0 Then
    _Color_All_Words($hEdit,"Hallo",0xFF0000)
    EndIf
    EndFunc

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

    Func _Color_All_Words($hEdit,$Word,$Color)
    Local $SplitWord, $SplitText, $MatchCount = 0
    $SplitText = StringSplit(_GUICtrlRichEdit_GetText($hEdit),"")
    $SplitWord = StringSplit($Word,"")
    For $i = 1 To $SplitText[0] Step 1
    If $SplitText[$i] == $SplitWord[1] Then
    For $ii = 1 To $SplitWord[0] Step 1
    If $SplitText[$i + ($ii - 1)] == $SplitWord[$ii] Then
    $MatchCount += 1
    Else
    $MatchCount = 0
    EndIf
    If $MatchCount == $SplitWord[0] Then
    _GUICtrlRichEdit_SetSel($hEdit,$i - 1,$i - 1 + $SplitWord[0],True)
    _GUICtrlRichEdit_SetCharColor($hEdit,$Color)
    _GUICtrlRichEdit_Deselect($hEdit)
    ;MsgBox(0,"",$Word & " found at " & $i - 1)
    ;ExitLoop
    EndIf
    Next
    EndIf
    Next
    EndFunc

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

    Func _Exit($hG)
    For $i = 255 To 0 Step -10
    WinSetTrans($hG,"",$i)
    Sleep(2)
    Next
    Exit
    EndFunc

    [/autoit]
  • Problem mit Switch in For-Schleife

    • teamnoobPDB
    • 8. April 2013 um 19:36

    Wird gemacht :D

  • Problem mit Switch in For-Schleife

    • teamnoobPDB
    • 8. April 2013 um 19:29

    Oh man ich bin echt ein Nasenbär :DDDDD Vielen Dank für das entdecken dieses peinlichen Fehlers :D Das ich GuiSetState und GuiCtrlSetState immer verwechseln muss :D

  • Problem mit Switch in For-Schleife

    • teamnoobPDB
    • 8. April 2013 um 17:47

    Achso okay :D Hier hast du sie :D

    [autoit]

    #include <Array.au3>

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

    Func _GetLang($Str)
    Local $lang, $read, $read2, $read3
    $lang = IniRead("Settings.ini","Language","ActLang","german")
    $read = FileRead(@ScriptDir & "\Language\" & $lang & ".lang")
    $read = StringSplit($read,@CRLF)
    ;_ArrayDisplay($read)
    For $i = 1 To $read[0] Step 1
    $read2 = StringSplit($read[$i],"=")
    ;_ArrayDisplay($read2)
    If $read2[1] == $Str Then
    If StringTrimRight($read2[2],StringLen($read2[2]) - 1) == "#" Then
    $zahl = StringSplit($read2[2],"#")
    ;_ArrayDisplay($zahl)
    For $ii = 1 To $read[0] Step 1
    $read3 = StringSplit($read[$ii],"=")
    ;_ArrayDisplay($read2)
    If Int($read3[1]) == Int($zahl[$zahl[0]]) Then
    Return $read3[$read2[0]]
    ExitLoop
    EndIf
    Next
    Else
    Return $read2[2]
    ExitLoop
    EndIf
    EndIf
    Next
    EndFunc

    [/autoit]

    P.S.: Im anhang noch 2 Dateien die wichtig sind damit die _GetLang() funktioniert :D
    Und du musst die Settings.ini bei die .au3 packen und die german.txt muss du in eine .lang Datei umwandeln und in einen Ordner Namens Language packen und evtl. die _GetLang() In einen Ordner namens Include :D

    Dateien

    Settings.ini 26 Byte – 304 Downloads german.txt 271 Byte – 291 Downloads
  • Problem mit Switch in For-Schleife

    • teamnoobPDB
    • 8. April 2013 um 17:22

    Ich bedanke mich schonmal im Vorraus für die Hilfe :D Aber trotz der verbesserung funktioniert es nicht :/ Woran kann es nur liegen?
    Hier mal das ganze Skript:

    Spoiler anzeigen
    [autoit]

    #include <GuiConstantsEx.au3>
    #include "Includes\Lang.au3"

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

    Global $hInventar

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

    Dim $abMain[10]
    Dim $abMarkt[10]

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

    $hInventar = GUICreate(_GetLang(19),250,400)
    GUISetState(@SW_HIDE,$hInventar)

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

    $hGui = GUICreate(_GetLang(1) & _GetLang(2),800,600)
    $hButton_Main = GUICtrlCreateButton(_GetLang(3),30,30,200,50)
    GUICtrlSetState($hButton_Main,$GUI_DISABLE)
    $hButton_Markt = GUICtrlCreateButton(_GetLang(4),300,30,200,50)
    $hButton_Computer = GUICtrlCreateButton(_GetLang(5),560,30,200,50)
    __p_Create_Main()
    __p_Create_Computer()
    __p_Create_Markt()

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

    __f_Deactivate_All()
    __f_Activate_Main()

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

    $hGroup_Main = GUICtrlCreateGroup(_GetLang(6),30,100,740,470)

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

    GUISetState(@SW_SHOW,$hGui)

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

    While Sleep(10)
    $msg = GUIGetMsg()
    ;For $i = 0 To 9 Step 1
    Switch $msg
    Case $GUI_EVENT_CLOSE
    $State_Main = WinGetState("[TITLE:" & _GetLang(1) & _GetLang(2) & "]","")
    $State_Inventr = WinGetState("[TITLE:" & _GetLang(19) & "]","")
    If BitAND($State_Main,8) Then
    __f_Exit()
    Else
    If BitAND($State_Inventr,8) Then
    __f_Inventar_Close()
    EndIf
    EndIf
    Case $hButton_Main
    GUICtrlSetState($hButton_Main,$GUI_DISABLE)
    GUICtrlSetState($hButton_Markt,$GUI_ENABLE)
    GUICtrlSetState($hButton_Computer,$GUI_ENABLE)
    GUICtrlSetData($hGroup_Main,_GetLang(6))
    __f_Deactivate_All()
    __f_Activate_Main()
    Case $hButton_Computer
    GUICtrlSetState($hButton_Main,$GUI_ENABLE)
    GUICtrlSetState($hButton_Markt,$GUI_ENABLE)
    GUICtrlSetState($hButton_Computer,$GUI_DISABLE)
    GUICtrlSetData($hGroup_Main,_GetLang(8))
    __f_Deactivate_All()
    __f_Activate_Computer()
    Case $hButton_Markt
    GUICtrlSetState($hButton_Main,$GUI_ENABLE)
    GUICtrlSetState($hButton_Markt,$GUI_DISABLE)
    GUICtrlSetState($hButton_Computer,$GUI_ENABLE)
    GUICtrlSetData($hGroup_Main,_GetLang(7))
    __f_Deactivate_All()
    __f_Activate_Markt()
    Case Else
    For $i = 0 To 9 Step 1
    If $msg == $abMarkt[$i] Then
    Switch GUICtrlRead($abMarkt[$i])
    Case _GetLang(12)

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

    Case _GetLang(13)

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

    Case _GetLang(14)

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

    Case _GetLang(15)

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

    Case _GetLang(16)

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

    Case _GetLang(17)

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

    Case _GetLang(18)
    __f_Inventar_Open()
    EndSwitch
    EndIf
    Next
    EndSwitch
    ;Next
    WEnd

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

    Func __f_Inventar_Open()
    GUICtrlSetState(@SW_SHOW,$hInventar)
    EndFunc

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

    Func __f_Inventar_Close()
    GUICtrlSetState(@SW_HIDE,$hInventar)
    EndFunc

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

    Func __f_Deactivate_All()
    ;Main
    For $i = 0 To 9 Step 1
    GUICtrlSetState($abMain[0],$GUI_HIDE)
    Next

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

    ;Markt
    For $i = 0 To 9 Step 1
    GUICtrlSetState($abMarkt[$i],$GUI_HIDE)
    Next
    EndFunc

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

    Func __f_Activate_Computer()

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

    EndFunc

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

    Func __f_Activate_Main()
    For $i = 0 To 9 Step 2
    GUICtrlSetState($abMain[$i],$GUI_SHOW)
    Next
    EndFunc

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

    Func __f_Activate_Markt()
    For $i = 0 To 9 Step 1
    GUICtrlSetState($abMarkt[$i],$GUI_SHOW)
    Next
    EndFunc

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

    Func __p_Create_Markt()
    $abMarkt[0] = GUICtrlCreateButton(_GetLang(12),50,130,100,25)
    $abMarkt[1] = GUICtrlCreateButton(_GetLang(13),170,130,100,25)
    $abMarkt[2] = GUICtrlCreateButton(_GetLang(14),290,130,100,25)
    $abMarkt[3] = GUICtrlCreateButton(_GetLang(15),410,130,100,25)
    $abMarkt[4] = GUICtrlCreateButton(_GetLang(16),530,130,100,25)
    $abMarkt[5] = GUICtrlCreateButton(_GetLang(17),650,130,100,25)
    $abMarkt[6] = GUICtrlCreateButton(_GetLang(18),50,170,700,25)
    EndFunc

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

    Func __p_Create_Computer()

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

    EndFunc

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

    Func __p_Create_Main()
    $abMain[0] = GUICtrlCreateLabel("",40,120,200,200)
    GUICtrlSetData($abMain[0],_GetLang(9) & @CRLF & _GetLang(10) & @CRLF & _GetLang(11))
    EndFunc

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

    Func __f_Exit()
    Exit
    EndFunc

    [/autoit]
  • Problem mit Switch in For-Schleife

    • teamnoobPDB
    • 8. April 2013 um 16:12

    Ich war halt einfach nur zu faul um alle 10 Controls abzufragen :D Deswegen wollte ich das verkürzen und habe mir dann das dabei gedacht. Denn es wird nicht nur bei diesen 10 Controls bleiben es werden noch ein paar mehr. Ich will einfach nur übersichtlich alle controls abfragen. Hab gerade kein Code zur Verfügung bin gerade unterwegs. Ich poste den dann später nochmal.

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™