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 ![]()
Beiträge von teamnoobPDB
-
-
Nur weil der String so angeordnet ist und nicht so
[autoit]
heißt das nicht das manStringSplit
[/autoit]
[autoit]
nicht benutzen kann
Entweder du benutzt erst einStringReplace
[/autoit]
[autoit]
und Tauschst alle Leerzeichen durch ein - oder / oder | aus oder du machst es direkt mit demStringSplit
[/autoit]
der kann auch an Leerzeichen Splitten
-
name22 Danke für die erklärung
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 ... -
Also bei mir hat es etwas geruckelt auf meinem Laptop dermit 1.8GHz rechnet
Aber nachdem ich in Zeile 56 Das Sleep(50) zu Sleep(10) gemacht habe lief es fast ruckelfrei
Wo ist da das Problem? 
-
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 ...
-
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? -
Ich denke das ich das machen werde
Trotzdem danke für die Hilfe 
-
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 ...
-
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
[/autoit]
_GDIPlus_GraphicsClear()
_GDIPlus_GraphicsDrawImageRect()
_WinAPI_BitBlt()Ich bezweifle dass man da was Disablen kann
-
Ja aber ich kann es leider nicht aud Disabled setzen da ich mit GDI+ und WinAPI arbeite....

-
Danke für die Antwort

Das mit der Child GUI hab ich nachvollzogen aber wie meinst du das mit dem Pic-Control?
-
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:
DropboxP.S.: Ich hoffe das sich jemand durch den Code-Batzen durchwälzen kann

-
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
Aber trotzdem danke für die Hilfe ich werde versuchen es so umzubauen wie du es gesagt hattest
-
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>
[/autoit] [autoit][/autoit] [autoit]
#include <GuiConstants.au3>
#include <WindowsConstants.au3>
#include <WinAPI.au3>Opt("GUIOnEventMode",1)
[/autoit] [autoit][/autoit] [autoit]_GDIPlus_Startup()
[/autoit] [autoit][/autoit] [autoit]GUIRegisterMsg($WM_PAINT,"_Redraw")
[/autoit] [autoit][/autoit] [autoit]
GUISetOnEvent($GUI_EVENT_CLOSE,"_Exit")#region Brushes
[/autoit] [autoit][/autoit] [autoit]
$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)
#endregionGlobal $hWnd, $hDC_Window, $hDC_Bitmap, $hBitmap, $hGraphics, $hOldObj, $CPU_MIN = True; <= True bei über 2000 MHz, False bei weniger
[/autoit] [autoit][/autoit] [autoit]
Global $BG = _GDIPlus_ImageLoadFromFile(""); Einfach ein Bild hier einfügen$hGui_Main = GUICreate("MyGui",@DesktopWidth,@DesktopHeight,0,0,BitOR($WS_POPUP,$WS_MAXIMIZE))
[/autoit] [autoit][/autoit] [autoit]$hDC_Window = _WinAPI_GetDC($hGui_Main)
[/autoit] [autoit][/autoit] [autoit]
$hDC_Bitmap = _WinAPI_CreateCompatibleDC($hDC_Window)
$hBitmap = _WinAPI_CreateCompatibleBitmap($hDC_Window, @DesktopWidth, @DesktopHeight)
$hOldObj = _WinAPI_SelectObject($hDC_Bitmap, $hBitmap)$hGraphic = _GDIPlus_GraphicsCreateFromHDC($hDC_Bitmap)
[/autoit] [autoit][/autoit] [autoit]
_GDIPlus_GraphicsSetSmoothingMode($hGraphic, 2)GUISetState(@SW_SHOW,$hGui_Main)
[/autoit] [autoit][/autoit] [autoit]#region Variablen
[/autoit] [autoit][/autoit] [autoit]
Global $SliderPerc = 0,$SliderX_New
Global $SliderWidth = @DesktopWidth / 6
Local $aTemp$MouseDiffX = 0
[/autoit] [autoit][/autoit] [autoit]
$SliderX = (@DesktopWidth / 7) + $MouseDiffX
$SliderY = @DesktopHeight * 0.95$SliderX_New = $SliderX
[/autoit] [autoit][/autoit] [autoit];===============================;
[/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_Draw_Graphics($hGraphic,$hDC_Window,$hDC_Bitmap,$SliderX,$SliderY, $bDimGrey)
[/autoit] [autoit][/autoit] [autoit]$Timer = TimerInit()
[/autoit] [autoit][/autoit] [autoit]
$FPS = 0While True
[/autoit] [autoit][/autoit] [autoit]
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)$aAButton[1] = $aMainButton1
[/autoit] [autoit][/autoit] [autoit]
$aAButton[2] = $aMainButton2
$aAButton[3] = $aMainButton3
$aAButton[4] = $aMainButton4
$aAButton[5] = $aMainButton5
$aAButton[6] = $aMainButton6$SliderX_New = $SliderX
[/autoit] [autoit][/autoit] [autoit]_Clear_Buffer($hGraphic)
[/autoit] [autoit][/autoit] [autoit]
_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 1Case 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
[/autoit] [autoit][/autoit] [autoit]
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)
WEndFunc _Draw_Graphics($hGr,$hDCw,$hDCb,$sx,$sy,$b1)
[/autoit] [autoit][/autoit] [autoit]
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)
EndFuncFunc _Draw_BG($hBu)
[/autoit] [autoit][/autoit] [autoit]
_GDIPlus_GraphicsDrawImageRect($hBu,$BG,0,0,@DesktopWidth,@DesktopHeight)
EndFuncFunc _Button_Event($aB,$s)
[/autoit] [autoit][/autoit] [autoit]
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
EndFuncFunc _Exit()
[/autoit] [autoit][/autoit] [autoit]
_WinAPI_SelectObject($hDC_Bitmap, $hOldObj)
_WinAPI_ReleaseDC($hWnd, $hDC_Window)
_WinAPI_DeleteDC($hDC_Bitmap)
_WinAPI_DeleteObject($hBitmap)_GDIPlus_GraphicsDispose($hGraphics)
[/autoit] [autoit][/autoit] [autoit]
_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
EndFuncFunc _GetTextLabelWidth($s_WinText, $s_TextFont, $i_FontSize, $i_FontWeight = -1)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
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$h_WinTitle = "Get Label Width"
[/autoit] [autoit][/autoit] [autoit]
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)Local $intDeviceCap = DllCall("gdi32.dll", "long", "GetDeviceCaps", "int", $hDC[0], "long", $LOGPIXELSY)
[/autoit] [autoit][/autoit] [autoit]
$intDeviceCap = $intDeviceCap[0]Local $intFontHeight = DllCall("kernel32.dll", "long", "MulDiv", "long", $i_FontSize, "long", $intDeviceCap, "long", 72)
[/autoit] [autoit][/autoit] [autoit]
$intFontHeight = -$intFontHeight[0]Local $hMyFont = DllCall("gdi32.dll", "hwnd", "CreateFont", "int", $intFontHeight, _
[/autoit] [autoit][/autoit] [autoit]
"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])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)
[/autoit] [autoit][/autoit] [autoit]
Return $intLabelWidth
EndFuncFunc _Clear_Buffer($hBu)
[/autoit] [autoit][/autoit] [autoit]
_GDIPlus_GraphicsClear($hBu,0xFFFFFFFF)
EndFuncFunc _Draw_RoundCorner_Button($hGr,$TXT,$sX,$sY,$W,$H,$r,$C)
[/autoit] [autoit][/autoit] [autoit]
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
EndFuncFunc _Redraw()
[/autoit]
_WinAPI_BitBlt($hDC_Window, 0, 0, @DesktopWidth, @DesktopHeight, $hDC_Bitmap, 0, 0, $SRCCOPY)
EndFunc -
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>
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
#include <WindowsConstants.au3>
#include <EditConstants.au3>
#include <GuiRichEdit.au3>
#include <Misc.au3>$Width = @DesktopWidth
[/autoit] [autoit][/autoit] [autoit]
$Height = @DesktopHeight$hGui = GUICreate("Test",$Width,$Height,0,0,BitOR($WS_POPUP,$WS_MAXIMIZE));,$WS_EX_TOPMOST);Fullscreen Fenster
[/autoit] [autoit][/autoit] [autoit]
#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)While Sleep(10)
[/autoit] [autoit][/autoit] [autoit]
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
WEndFunc _Color_Words($hEdit,$Edit)
[/autoit] [autoit][/autoit] [autoit]
Local $wPos
_GUICtrlRichEdit_SetCharColor($hEdit,0x000000)
If StringInStr($Edit,"Hallo") > 0 Then
_Color_All_Words($hEdit,"Hallo",0xFF0000)
EndIf
EndFuncFunc _Color_All_Words($hEdit,$Word,$Color)
[/autoit] [autoit][/autoit] [autoit]
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
EndFuncFunc _Exit($hG)
[/autoit]
For $i = 255 To 0 Step -10
WinSetTrans($hG,"",$i)
Sleep(2)
Next
Exit
EndFunc -
-
Oh man ich bin echt ein Nasenbär :DDDDD Vielen Dank für das entdecken dieses peinlichen Fehlers
Das ich GuiSetState und GuiCtrlSetState immer verwechseln muss 
-
Achso okay
[autoit]
Hier hast du sie 
#include <Array.au3>
[/autoit][autoit][/autoit][autoit]Func _GetLang($Str)
[/autoit]
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
EndFuncP.S.: Im anhang noch 2 Dateien die wichtig sind damit die _GetLang() funktioniert

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
-
Ich bedanke mich schonmal im Vorraus für die Hilfe
Aber trotz der verbesserung funktioniert es nicht
Woran kann es nur liegen?
Hier mal das ganze Skript:Spoiler anzeigen
[autoit]#include <GuiConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit]
#include "Includes\Lang.au3"Global $hInventar
[/autoit] [autoit][/autoit] [autoit]Dim $abMain[10]
[/autoit] [autoit][/autoit] [autoit]
Dim $abMarkt[10]$hInventar = GUICreate(_GetLang(19),250,400)
[/autoit] [autoit][/autoit] [autoit]
GUISetState(@SW_HIDE,$hInventar)$hGui = GUICreate(_GetLang(1) & _GetLang(2),800,600)
[/autoit] [autoit][/autoit] [autoit]
$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()__f_Deactivate_All()
[/autoit] [autoit][/autoit] [autoit]
__f_Activate_Main()$hGroup_Main = GUICtrlCreateGroup(_GetLang(6),30,100,740,470)
[/autoit] [autoit][/autoit] [autoit]GUISetState(@SW_SHOW,$hGui)
[/autoit] [autoit][/autoit] [autoit]While Sleep(10)
[/autoit] [autoit][/autoit] [autoit]
$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)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)
[/autoit] [autoit][/autoit] [autoit]
__f_Inventar_Open()
EndSwitch
EndIf
Next
EndSwitch
;Next
WEndFunc __f_Inventar_Open()
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetState(@SW_SHOW,$hInventar)
EndFuncFunc __f_Inventar_Close()
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetState(@SW_HIDE,$hInventar)
EndFuncFunc __f_Deactivate_All()
[/autoit] [autoit][/autoit] [autoit]
;Main
For $i = 0 To 9 Step 1
GUICtrlSetState($abMain[0],$GUI_HIDE)
Next;Markt
[/autoit] [autoit][/autoit] [autoit]
For $i = 0 To 9 Step 1
GUICtrlSetState($abMarkt[$i],$GUI_HIDE)
Next
EndFuncFunc __f_Activate_Computer()
[/autoit] [autoit][/autoit] [autoit]EndFunc
[/autoit] [autoit][/autoit] [autoit]Func __f_Activate_Main()
[/autoit] [autoit][/autoit] [autoit]
For $i = 0 To 9 Step 2
GUICtrlSetState($abMain[$i],$GUI_SHOW)
Next
EndFuncFunc __f_Activate_Markt()
[/autoit] [autoit][/autoit] [autoit]
For $i = 0 To 9 Step 1
GUICtrlSetState($abMarkt[$i],$GUI_SHOW)
Next
EndFuncFunc __p_Create_Markt()
[/autoit] [autoit][/autoit] [autoit]
$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)
EndFuncFunc __p_Create_Computer()
[/autoit] [autoit][/autoit] [autoit]EndFunc
[/autoit] [autoit][/autoit] [autoit]Func __p_Create_Main()
[/autoit] [autoit][/autoit] [autoit]
$abMain[0] = GUICtrlCreateLabel("",40,120,200,200)
GUICtrlSetData($abMain[0],_GetLang(9) & @CRLF & _GetLang(10) & @CRLF & _GetLang(11))
EndFuncFunc __f_Exit()
[/autoit]
Exit
EndFunc -
Ich war halt einfach nur zu faul um alle 10 Controls abzufragen
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.