Free AutoIt Object

  • Free AutoIt Object - GUIs auf dem Bildschirm

    [Blockierte Grafik: http://img109.imageshack.us/img109/5246/indexmr.png]
    © by Reaker (Logo)
    Was ist "Free AutoIt Object" ?

    "Free AutoIt Object" ist eine Erfindung von mir, in Zusammen Arbeit mit H2112 !
    Mit "Free AutoIt Object" ist es möglich, Labels, Buttons, eine komplette GUI aus einzelnen Stücken auf den Bildschirm zu kreieren !
    Eine komplette GUI nur auf dem Bildschirm !

    Es gibt auch noch mehr statt nur langweilige Buttons oder Labels, und andere Sachen die Koda zu bieten hat !

    Layer, Multi-Fensterchen/Fenster ---- all dies ist mit "Free AutoIt Object" möglich !

    Wie benutze ich das "Free AutoIt Object" ?


    Ein was kann ich ja los werden: Mit den Pfeiltasten kann man steuern welchen "Action-String" man grade ausgewählt hat, näheres im Beispiel !
    Noch gibt es keine ausführliche Erklärung, diese folgt aber noch heute (für die jetzigen Funktionen) !

    Was gibt es bis jetzt ?

    Bis jetzt gibt es nur diese Funktionen:

    _AutoIt_FreeObject_ActionStringDraw()
    _AutoIt_FreeObject_StringDraw()
    _AutoIt_FreeObject_LayerCreate()

    Allerdings kommen heute bestimmt noch einige dazu !

    Ein Beispiel Script

    Hier ist mal ein Beispiel, was es alles gibt (bis jetzt):
    Ein Beispiel Bild:
    [Blockierte Grafik: http://img218.imageshack.us/img218/4941/beispield.png]

    Beispiel des Codes
    [autoit]


    Global $AllNumbers[2] = [0, 0]
    Global $AllStrings = 2
    Opt("TrayIconHide", 1)
    #include <FreeObject.au3>
    _StartUp("Free Object", @DesktopWidth, @DesktopHeight, 0, 0) ;Startet Transparentes Fenster
    $image = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\AutoIt Free Object.PNG")
    While 1
    $MouseGetPos = MouseGetPos()
    $Title = WinGetTitle("[active]")
    _AutoIt_FreeObject_Action()
    _AutoIt_FreeObject_ActionStringDraw(1, $Title, "Action 1", 0, 50, "")
    _AutoIt_FreeObject_ActionStringDraw(2, $Title, "Action 2", 0, 100, "")
    _AutoIt_FreeObject_StringDraw("Überschrift", $Title, 0, 0, 20)
    _AutoIt_FreeObject_LayerCreate("Hallo, mein Name ist Mattthias !", WinGetPos(WinGetTitle("[active]")), 200, 20, 290, 30)
    _Update() ;Trägt sachen aus Back to Front Buffer
    If _IsPressed("1B") Then
    ExitLoop
    EndIf
    WEnd
    _ShutDown() ;Nach nutzen wieder ressourcen frei geben und runterfahren

    [/autoit]
    Als FreeObject.au3 speichern für UDF
    [autoit]


    #include <GDIPlus.au3>
    #include <Misc.au3>
    Opt("GUIOnEventMode", 1)

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

    Global $ActionStrings = 1

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

    #cs
    Das ist H2112 seine Schöpfung
    #ce
    Global $hWnd, $hGraphic, $hBitmap, $backbuffer
    Global $ScreenDc, $dc, $tSize, $pSize, $tSource, $pSource, $tBlend, $pBlend, $tPoint, $pPoint, $gdibitmap

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

    Func _StartUp($title, $width, $height, $X, $Y)
    $hWnd = GUICreate($title, $width, $height, $X, $Y, 0x80000000, BitOR(0x00000080, 0x00080000, 0x00000008))
    GUISetOnEvent(-3, "_ShutDown")
    GUISetState()

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

    _GDIPlus_Startup()
    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hWnd)
    $hBitmap = _GDIPlus_BitmapCreateFromGraphics($width, $height, $hGraphic)
    $backbuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    _GDIPlus_GraphicsSetSmoothingMode($backbuffer, 4)

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

    $ScreenDc = _WinAPI_GetDC($hWnd)
    $dc = _WinAPI_CreateCompatibleDC($ScreenDc)

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

    $tSize = DllStructCreate($tagSIZE)
    $pSize = DllStructGetPtr($tSize)
    DllStructSetData($tSize, "X", $width)
    DllStructSetData($tSize, "Y", $height)
    $tSource = DllStructCreate($tagPOINT)
    $pSource = DllStructGetPtr($tSource)
    $tBlend = DllStructCreate($tagBLENDFUNCTION)
    $pBlend = DllStructGetPtr($tBlend)
    DllStructSetData($tBlend, "Alpha", 255)
    DllStructSetData($tBlend, "Format", 1)
    $tPoint = DllStructCreate($tagPOINT)
    $pPoint = DllStructGetPtr($tPoint)
    DllStructSetData($tPoint, "X", 0)
    DllStructSetData($tPoint, "Y", 0)
    EndFunc ;==>_StartUp

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

    Func _ShutDown()
    _WinAPI_DeleteDC($dc)
    _WinAPI_ReleaseDC($hWnd, $ScreenDc)
    _GDIPlus_GraphicsDispose($backbuffer)
    _GDIPlus_BitmapDispose($hBitmap)
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_Shutdown()
    GUIDelete($hWnd)
    Exit
    EndFunc ;==>_ShutDown

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

    Func _UpDate()
    $gdibitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap)
    _WinAPI_SelectObject($dc, $gdibitmap)
    _WinAPI_UpdateLayeredWindow($hWnd, $ScreenDc, 0, $pSize, $dc, $pSource, 0, $pBlend, 2)
    _WinAPI_DeleteObject($gdibitmap)
    EndFunc ;==>_UpDate

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

    #cs
    ;Das war H2112 seine Schöpfung !
    #ce

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

    #cs
    Meine FreeObject Schöpfung
    #ce
    Global $ActualString = 0
    Global $Timer = TimerInit()
    Global $TimerDiff = TimerDiff($Timer)
    #cs
    ; Func Name: _D3D9_StringDraw($String, $WindowTitle, $X, $Y[, $Brush = 0xFF000000[,$Size = 13[,$Big=0]]])
    ; Parameters: $String = The String to Write
    ; $WindowTitle = Title of the D3D9 Window
    ; $X = X Position in the Window where the String is to draw
    ; $Y = Y Position in the Window where the String is to draw
    ; $Brush = The Brush which used
    ;
    ; Includes: <GDIPlus.au3>
    ; <Transparent.au3> (made by H2112, © H2112)
    ;
    ; What does it: Draw a String in a Window
    #ce

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

    Func _AutoIt_FreeObject_StringDraw($String, $WindowTitle, $WindowX, $WindowY, $iSize = 15, $brush = 0xA50029)
    Local $WinPosition = WinGetPos($WindowTitle)
    $State = WinGetState($WindowTitle)
    If BitAND($State, 8) Then
    $Family = _GDIPlus_FontFamilyCreate("Arial")
    $Font = _GDIPlus_FontCreate($Family, $iSize, 1)
    $Layout = _GDIPlus_RectFCreate($WinPosition[0] + $WindowX + 1, $WinPosition[1] + $WindowY + 27, @DesktopWidth, @DesktopHeight)
    $Format = _GDIPlus_StringFormatCreate()
    $brush = _GDIPlus_BrushCreateSolid($brush + 0xFF000000)
    $Info = _GDIPlus_GraphicsMeasureString($backbuffer, $String, $Font, $Layout, $Format)
    _GDIPlus_GraphicsDrawStringEx($backbuffer, $String, $Font, $Info[0], $Format, $brush)
    EndIf
    EndFunc ;==>_AutoIt_FreeObject_StringDraw
    Func _AutoIt_FreeObject_ActionStringDraw($Number, $WindowTitle, $String, $WindowX, $WindowY, $Action, $ActionBrush = 0xCE0029, $SelectedBrush = 0x3100CE, $brush = 0xA50029)
    Local $ArrayNumber = $Number - 1
    Local $WinPosition = WinGetPos($WindowTitle)
    $State = WinGetState($WindowTitle)
    If BitAND($State, 8) Then
    Switch $ActionStrings
    Case $Number
    $Family = _GDIPlus_FontFamilyCreate("Arial")
    $Font = _GDIPlus_FontCreate($Family, 15, 1)
    $Layout = _GDIPlus_RectFCreate($WinPosition[0] + $WindowX + 1, $WinPosition[1] + $WindowY + 27, @DesktopWidth, @DesktopHeight)
    $Format = _GDIPlus_StringFormatCreate()
    $brush = _GDIPlus_BrushCreateSolid($SelectedBrush + 0xFF000000)
    $Info = _GDIPlus_GraphicsMeasureString($backbuffer, $String, $Font, $Layout, $Format)
    _GDIPlus_GraphicsDrawStringEx($backbuffer, $String, $Font, $Info[0], $Format, $brush)
    Case Else
    $Family = _GDIPlus_FontFamilyCreate("Arial")
    $Font = _GDIPlus_FontCreate($Family, 15, 1)
    $Layout = _GDIPlus_RectFCreate($WinPosition[0] + $WindowX + 1, $WinPosition[1] + $WindowY + 27, @DesktopWidth, @DesktopHeight)
    $Format = _GDIPlus_StringFormatCreate()
    $brush = _GDIPlus_BrushCreateSolid($brush + 0xFF000000)
    $Info = _GDIPlus_GraphicsMeasureString($backbuffer, $String, $Font, $Layout, $Format)
    _GDIPlus_GraphicsDrawStringEx($backbuffer, $String, $Font, $Info[0], $Format, $brush)
    EndSwitch
    If $AllNumbers[$ArrayNumber] = $Number And NOT ($Number = $ActionStrings) Then
    _GDIPlus_GraphicsClear($backbuffer, 0x00000000)
    $Family = _GDIPlus_FontFamilyCreate("Arial")
    $Font = _GDIPlus_FontCreate($Family, 15, 1)
    $Layout = _GDIPlus_RectFCreate($WinPosition[0] + $WindowX + 1, $WinPosition[1] + $WindowY + 27, @DesktopWidth, @DesktopHeight)
    $Format = _GDIPlus_StringFormatCreate()
    $brush = _GDIPlus_BrushCreateSolid($ActionBrush + 0xFF000000)
    $Info = _GDIPlus_GraphicsMeasureString($backbuffer, $String, $Font, $Layout, $Format)
    _GDIPlus_GraphicsDrawStringEx($backbuffer, $String, $Font, $Info[0], $Format, $brush)
    Execute($Action)
    EndIf
    EndIf
    EndFunc ;==>_AutoIt_FreeObject_ActionStringDraw
    Func _AutoIt_FreeObject_LayerCreate($String, $WinGetPos, $WindowX, $WindowY, $width, $height)
    Local $MouseGetPos = MouseGetPos()
    Local $Brush = _GDIPlus_BrushCreateSolid(0xFFFFFFFF)
    Local $Pen1 =_GDIPlus_PenCreate(0xFF4A514A)
    Local $Pen2 = _GDIPlus_PenCreate(0xFF737173)
    Local $Pen3 = _GDIPlus_PenCreate(0xFF8C8A8C)
    Local $Pen4 = _GDIPlus_PenCreate(0xFF000000)
    _GDIPlus_GraphicsFillRect($backbuffer, $WinGetPos[0] + $WindowX, $WinGetPos[1] + $WindowY, $width - 5, $height - 5, $Brush)
    _GDIPlus_GraphicsDrawRect($backbuffer, $WinGetPos[0] + $WindowX - 1, $WinGetPos[1] + $WindowY - 1, $width - 8, $height - 8, $Pen1)
    _GDIPlus_GraphicsDrawRect($backbuffer, $WinGetPos[0] + $WindowX - 2, $WinGetPos[1] + $WindowY - 2, $width - 6, $height - 6, $Pen2)
    _GDIPlus_GraphicsDrawRect($backbuffer, $WinGetPos[0] + $WindowX - 3, $WinGetPos[1] + $WindowY - 3, $width - 4, $height - 4, $Pen3)
    _GDIPlus_GraphicsDrawRect($backbuffer, $WinGetPos[0] + $WindowX - 4, $WinGetPos[1] + $WindowY - 4, $width - 2, $height - 2, $Pen4)
    _GDIPlus_GraphicsDrawString($backbuffer, $String, $WinGetPos[0] + $WindowX - 1, $WinGetPos[1] + $WindowY - 1, "Arial", 15)
    _GDIPlus_BrushDispose($Brush)
    _GDIPlus_PenDispose($Pen1)
    _GDIPlus_PenDispose($Pen2)
    _GDIPlus_PenDispose($Pen3)
    _GDIPlus_PenDispose($Pen4)
    EndFunc ;==>_AutoIt_FreeObject_LayerCreate
    Func _AutoIt_FreeObject_Action()
    _GDIPlus_GraphicsClear($backbuffer, 0x00000000)
    If _IsPressed("26") And TimerDiff($Timer) >= 500 And $ActualString - 1 >= 1 Then
    $Timer = TimerInit()
    $ActualString -= 1
    $ActionStrings = $ActualString
    ElseIf _IsPressed("28") And TimerDiff($Timer) >= 500 And $ActualString + 1 <= $AllStrings Then
    $Timer = TimerInit()
    $ActualString += 1
    $ActionStrings = $ActualString
    EndIf
    EndFunc ;==>_AutoIt_FreeObject_Action

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

    #cs
    ;Für Button
    ;If ($MouseGetPos[0] >= $WinGetPos[0] + $WindowX And $MouseGetPos[0] <= $WinGetPos[0] + $WindowX + $width) and ($MouseGetPos[1] >= $WinGetPos[1] + $WindowY And $MouseGetPos[1] <= $WinGetPos[1] + $WindowY + $height) And WinActive($WindowTitle) And _IsPressed("01") Then
    ; Execute($Action)
    ;EndIf
    #ce

    [/autoit]


    Bewertungen, Kritik, Anregungen und dergleichen sind gern gesehen !

    Ein Download mit dem BSP Script gibt es im Anhang !


    © by EliteMattthias and H2112

  • Naja ich weiß nicht genau, was das sein soll und das als free autoit Objekt zu bezeichnen ist denke ich mal nicht richtig. das es keine Objekte sind, sondern nur etwas auf eine gui gezeichnet wird.
    Das ist die einige Funktion aus eurer UDF die wirklich wichtig ist und die es im Web so, oder so ähnlich schon 1000 mal gibt.

    Spoiler anzeigen
    [autoit]

    Func _StartUp($title, $width, $height, $X, $Y)
    $hWnd = GUICreate($title, $width, $height, $X, $Y, 0x80000000, BitOR(0x00000080, 0x00080000, 0x00000008))
    GUISetOnEvent(-3, "_ShutDown")
    GUISetState()

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

    _GDIPlus_Startup()
    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hWnd)
    $hBitmap = _GDIPlus_BitmapCreateFromGraphics($width, $height, $hGraphic)
    $backbuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    _GDIPlus_GraphicsSetSmoothingMode($backbuffer, 4)

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

    $ScreenDc = _WinAPI_GetDC($hWnd)
    $dc = _WinAPI_CreateCompatibleDC($ScreenDc)

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

    $tSize = DllStructCreate($tagSIZE)
    $pSize = DllStructGetPtr($tSize)
    DllStructSetData($tSize, "X", $width)
    DllStructSetData($tSize, "Y", $height)
    $tSource = DllStructCreate($tagPOINT)
    $pSource = DllStructGetPtr($tSource)
    $tBlend = DllStructCreate($tagBLENDFUNCTION)
    $pBlend = DllStructGetPtr($tBlend)
    DllStructSetData($tBlend, "Alpha", 255)
    DllStructSetData($tBlend, "Format", 1)
    $tPoint = DllStructCreate($tagPOINT)
    $pPoint = DllStructGetPtr($tPoint)
    DllStructSetData($tPoint, "X", 0)
    DllStructSetData($tPoint, "Y", 0)
    EndFunc ;==>_StartUp

    [/autoit]


    diese funktion:

    Spoiler anzeigen
    [autoit]

    Func _AutoIt_FreeObject_StringDraw($String, $WindowTitle, $WindowX, $WindowY, $iSize = 15, $brush = 0xA50029)
    Local $WinPosition = WinGetPos($WindowTitle)
    $State = WinGetState($WindowTitle)
    If BitAND($State, 8) Then
    $Family = _GDIPlus_FontFamilyCreate("Arial")
    $Font = _GDIPlus_FontCreate($Family, $iSize, 1)
    $Layout = _GDIPlus_RectFCreate($WinPosition[0] + $WindowX + 1, $WinPosition[1] + $WindowY + 27, @DesktopWidth, @DesktopHeight)
    $Format = _GDIPlus_StringFormatCreate()
    $brush = _GDIPlus_BrushCreateSolid($brush + 0xFF000000)
    $Info = _GDIPlus_GraphicsMeasureString($backbuffer, $String, $Font, $Layout, $Format)
    _GDIPlus_GraphicsDrawStringEx($backbuffer, $String, $Font, $Info[0], $Format, $brush)
    EndIf
    EndFunc ;==>_AutoIt_FreeObject_StringDraw

    [/autoit]


    ist nichts anderes als die hier aus der gdi+

    Spoiler anzeigen
    [autoit]

    Func _GDIPlus_GraphicsDrawString($hGraphics, $sString, $nX, $nY, $sFont = "Arial", $nSize = 10, $iFormat = 0)
    Local $hBrush = _GDIPlus_BrushCreateSolid()
    Local $hFormat = _GDIPlus_StringFormatCreate($iFormat)
    Local $hFamily = _GDIPlus_FontFamilyCreate($sFont)
    Local $hFont = _GDIPlus_FontCreate($hFamily, $nSize)
    Local $tLayout = _GDIPlus_RectFCreate($nX, $nY, 0, 0)
    Local $aInfo = _GDIPlus_GraphicsMeasureString($hGraphics, $sString, $hFont, $tLayout, $hFormat)
    Local $aResult = _GDIPlus_GraphicsDrawStringEx($hGraphics, $sString, $hFont, $aInfo[0], $hFormat, $hBrush)
    Local $iError = @error
    _GDIPlus_FontDispose($hFont)
    _GDIPlus_FontFamilyDispose($hFamily)
    _GDIPlus_StringFormatDispose($hFormat)
    _GDIPlus_BrushDispose($hBrush)
    Return SetError($iError, 0, $aResult)
    EndFunc ;==>_GDIPlus_GraphicsDrawString

    [/autoit]

    und solch eine funktion:

    Spoiler anzeigen
    [autoit]

    Func _GDIPlus_GraphicsDrawRoundedRect($hGraphics, $iX, $iY, $iWidth, $iHeight, $iRadius = 30, $Pen = "")
    _GDIPlus_GraphicsDrawArc($hGraphics, $iX, $iY, $iRadius, $iRadius, 180, 90, $Pen)
    _GDIPlus_GraphicsDrawArc($hGraphics, $iX + $iWidth - $iRadius, $iY, $iRadius, $iRadius, 270, 90, $Pen)
    _GDIPlus_GraphicsDrawArc($hGraphics, $iX, $iY + $iHeight - $iRadius, $iRadius, $iRadius, 90, 90, $Pen)
    _GDIPlus_GraphicsDrawArc($hGraphics, $iX + $iWidth - $iRadius, $iY + $iHeight - $iRadius, $iRadius, $iRadius, 360, 90, $Pen)

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

    _GDIPlus_GraphicsDrawLine($hGraphics, $iX + $iRadius / 2, $iY, $iX + $iWidth - $iRadius / 2, $iY, $Pen)
    _GDIPlus_GraphicsDrawLine($hGraphics, $iX, $iY + $iRadius / 2, $iX, $iY + $iHeight - $iRadius / 2, $Pen)
    _GDIPlus_GraphicsDrawLine($hGraphics, $iX + $iRadius / 2, $iY + $iHeight, $iX + $iWidth - $iRadius / 2, $iY + $iHeight, $Pen)
    _GDIPlus_GraphicsDrawLine($hGraphics, $iX + $iWidth, $iY + $iRadius / 2, $iX + $iWidth, $iY + $iHeight - $iRadius / 2, $Pen)
    EndFunc ;==>_GDIPlus_GraphicsDrawRoundedRect

    [/autoit]


    hat letztens jemand hier im forum veröffentlicht.

    Das finden von Rechtschreibfehlern muss sofort und unverzüglich dem Autor gemeldet werden. Das eigennützige Verwenden dieser Rechtschreibfehler ist strengstens untersagt und kann mit Freiheitsenzug bestraft werden.

  • Bewertungen, Kritik, Anregungen und dergleichen sind gern gesehen !


    ?(?(?(?(?(?(

    EDIT: das forum gehört nicht dir ich darf hier also einen post einsetzten und ihr wolltet doch Bewertungen, Kritik, Anregungen und dergleichen sehen und meins war ebenen eine kritik. Kannst du damit nicht umgehen??

    Außerdem ist in der Funktion _Startup das : GUISetOnEvent(-3, "_ShutDown") nicht unbedingt angebracht, wenn der oneventmodusnicht benutzt weredn will ,da das guigetmsg nicht mehr funzt.

    Das finden von Rechtschreibfehlern muss sofort und unverzüglich dem Autor gemeldet werden. Das eigennützige Verwenden dieser Rechtschreibfehler ist strengstens untersagt und kann mit Freiheitsenzug bestraft werden.

    2 Mal editiert, zuletzt von Darter (31. Mai 2010 um 01:45)

  • Aufgrund des Missverständnisses mit Darter:


    Tschuldigung Darter, wusste nicht das du die 2 % entwicklung nicht mit in die Kritik nimmst !

    @All, bitte berücksichtigt das das erst der anfang des Free Objects ist !


    Darter, sry !

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal

    Einmal editiert, zuletzt von EliteMattthias (31. Mai 2010 um 02:09)

  • Ich hab die _StartUp() selbst erstellt, und nur die DllStructs übernommen.

    Und derjenige, der die _GDIPlus_GraphicsDrawRoundedRect() veröffentlicht hat, war auch ich (Obwohl das keine schwierige Sache war :S).

    Und nun zum Thema:
    Ich find die Idee nicht schlecht, und man kann sicher noch viel daraus machen.

    Idee: * * * * *
    Umsetzung: * * * *

    Zitat

    [Heute, 11:39] Raupi: Soll ich es dir machen?
    [Heute, 11:47] BugFix: "Soll ich es dir machen? " - also Raupi !! bitte nicht so öffentlich :rofl:

    Zitat

    [Heute, 11:51] BugFix: und ich werde es mir jetzt machen - das Mittagessen :P

    AMsg UDF v1.00.00 IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII 100%
    OwnStyle UDF Version 1.10.00 IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII 100%

  • Ich find die Idee nicht schlecht, und man kann sicher noch viel daraus machen.


    Der meinung bin ich auch, aber...
    @EM: das is nicht böse gemeint, und du machst das toll, aber mach doch erstmal dein Zelda Fertig, bevor du wieder was neues anfängst...

    wie gesagt, keine schlechte Idee :thumbup:

  • Einen Vorschlag hätte ich da auch noch.
    Es wäre schön wenn ihr die globalen Variablen alle in eine Structur steckt und den Pointer zu dieser bei der Startup als Return zurück gebt.
    So läuft man nicht gefahr eine Variable ausversehen zu überschreiben.

    Alternative könnte man auch längere Variablennamen nehmen, denn die Wahrscheinlichkeit das auch jemand $hWnd nutzt, ist doch recht hoch.
    Lg

  • Vielen Dank an:

    H2112, für seine ehrliche Meinung
    An Jonathan, für seine meinung zu dem und Zelda
    An Ahnungslos für seine bitte !

    ich werde mich dran setzen und es ändern !


    Zu dem Thema Zelda:

    Da ich in Zeda später größere welten habe, und einen "Wände-Draw Editor" schreibe kommt diese Funktion gelegen, weil ich ganz in Ruhe auf meinem Desktop mit dem Image das "Riesen groß" ist spielen kann !
    Ich code das auch noch, um Fenster infos anzuzeigen !
    z.B. ist es für mein Zelda spiel recht nützlich wenn ich statt einer MSGBOX so einen String mit meiner aktuellen Position habe (dient alles zur Überwachung der Funktionsfähigkeit) !
    Ich werde auch noch "unwichtige" funktionen Hinzufügen, wie z.B. eine Info zu dem aktuellen Fenster, wo es sich grade befindet, wie groß es ist etc etc !
    Aber erst mal baue ich das "GUI-Prinzip" fertig !

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal

  • @H2112
    also so ganz alleine hast du es ja nicht gemacht mit _GDIPlus_GraphicsDrawRoundedRect() !
    ich hatte die idee und hab es umgesetzt und du hast das verbessert!

    @ FAO ist eig nen bissel nützlich aber irgendwie auch nicht :D

  • Wenn daran noch weitergeschreiben wird könnte das auch echt ne super Sache werden!
    Was wir unklar ist:
    Em:

    Zitat

    "Free AutoIt Object" ist eine Erfindung von mir, in Zusammen Arbeit mit H2112 !

    H2112:

    Zitat

    Ich find die Idee nicht schlecht, und man kann sicher noch viel daraus machen.

    Idee: * * * * *
    Umsetzung: * * * *

    Ich dachte du hast mitgemacht!?

    Aber sonst kann man echt was draus machn!

  • Nein, hab ich eigentlich nicht wirklich.

    Ich hab ihm nur die StartUp Funktion bereitgestellt, und ihm bei ein par Fehlern geholfen. :)

    Zitat

    [Heute, 11:39] Raupi: Soll ich es dir machen?
    [Heute, 11:47] BugFix: "Soll ich es dir machen? " - also Raupi !! bitte nicht so öffentlich :rofl:

    Zitat

    [Heute, 11:51] BugFix: und ich werde es mir jetzt machen - das Mittagessen :P

    AMsg UDF v1.00.00 IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII 100%
    OwnStyle UDF Version 1.10.00 IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII 100%

  • Soll ich jetzt schreiben von mir ?
    Die idee das zu machen ist von mir, die Startup von H2112 !

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal

    • Offizieller Beitrag

    Anmerkung von mir:

    Bitte wähle eine vernünftige Schriftgröße in deinem Post! Du hast auch in der SB einen generellen Hang groß zu schreiben. Dieses wird aber als "Schreien" empfunden und sollte somit nur in Ausnahmen (z.B. um einen Begriff hervorzuheben) genutzt werden.

    Wenn du Funktionen als UDF bezeichnest, sollten sie auch annähernd diesem Standard entsprechen. Dazu gehört u.A. auch eine treffende Funktionsbezeichnung. "AutoIt" davor zu setzen ist völlig überflüssig und wie bereits angeführt ist der Begriff "Objekt" auch fehl am Platze.
    Ich möchte deinen Tatendrang nicht bremsen, aber es macht schon Sinn, erst mal die Forumssuche zu nutzen und nachzusehen ob etwas in der Form schon existiert.
    Ich hatte dafür mal ein Skriptbeispiel gepostet (auf WinAPI basierend) und in dem Thread findest du auch noch Links zu anderen gleichartigen Lösungen. Auch GDI+ Varianten sind schon als Skript hier im Forum aufgetaucht, einfach mal ein bischen suchen.
    Also nicht immer das Fahrrad erneut erfinden. ;)