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

Beiträge von qixx

  • Array anstatt Zahl mit Wort ($array[Wort] = "Test")

    • qixx
    • 27. Dezember 2010 um 13:15

    Ah, das mit dem Dictionary hört sich ganz gut an!
    Schade, dass es kein Assoziatives Array in AutoIt gibt.

    Danke an euch! :)


    MfG
    qixx

  • Array anstatt Zahl mit Wort ($array[Wort] = "Test")

    • qixx
    • 27. Dezember 2010 um 12:02

    Hallo Leute,

    ist es möglich, dass ich anstatt einer Zahl im Array ein Wort hinschreibe?
    Geht ja in anderen Sprachen.

    Was ich meine:

    [autoit]

    $array[Wort] = "Test"

    [/autoit]

    Was muss ich beachten, wenn das möglich ist?


    MfG
    qixx

  • GDI+ Graphic transparenter Hintergrund

    • qixx
    • 13. Dezember 2010 um 20:31

    Danke, aber da klappt irgendwie gar nichts.^^
    Wo z.B. wird die Variable $tagSize daklariert?
    Da ist irgendwie noch ein Wurm drin. Wäre super,
    wenn du mir das berichtigen könntest. :)


    MfG
    qixx

  • Gdi+ & $Gui_Ws_Ex_Parentdrag

    • qixx
    • 13. Dezember 2010 um 19:53

    Bei Win 7 Prof x64 gehts nicht. :P

    MfG
    qixx

  • Gdi+ & $Gui_Ws_Ex_Parentdrag

    • qixx
    • 13. Dezember 2010 um 19:45

    Genau. ;) Da ist das mit dem Label einfacher umzusetzen. :P


    MfG
    qixx

  • Gdi+ & $Gui_Ws_Ex_Parentdrag

    • qixx
    • 13. Dezember 2010 um 19:42
    Zitat von autoBert

    Hallo gixx,

    hast du meinen Post [ offen ] Gdi+ & $Gui_Ws_Ex_Parentdrag überlesen?

    mfg autoBert


    Nein, aber achte auf die Zeit, wann unsere Beiträge gepostet wurden! :D
    Timing! :D


    MfG
    qixx

  • Gdi+ & $Gui_Ws_Ex_Parentdrag

    • qixx
    • 13. Dezember 2010 um 19:34

    Der Kreis war eher ein Beispiel. :P
    Das was ich habe ist mehr ein Oval.
    Werde mal schauen, wie ich das mache.
    Denke mal, dass ich das trotzdem mit dem Label mache.

    Timing von AutoBert und mir. ^^

    Das schaut gut aus, was genau ist da denn jetzt der Trick?


    MfG
    qixx

  • Gdi+ & $Gui_Ws_Ex_Parentdrag

    • qixx
    • 13. Dezember 2010 um 17:53

    Dann kann man auch den Transparenten Bereich anklicken und ziehen. ;)
    Also den um das Bild herum.
    Kommt bisschen doof bei einem Kreis. :D


    MfG
    qixx

  • Gdi+ & $Gui_Ws_Ex_Parentdrag

    • qixx
    • 13. Dezember 2010 um 17:44

    Schade.

    Wollte nämlich eine transparente GUI erzeugen und dann ein GDI+ Bild als Hintergrund nehmen.
    Nagut, muss ich das wohl anders regeln. ;)

    Danke!


    MfG
    qixx

  • GDI+ Graphic transparenter Hintergrund

    • qixx
    • 13. Dezember 2010 um 17:38
    Zitat von BadBunny

    2. Die Koordinaten des bilder "einkesseln" und dann wieder mit GUIGetCursorInfo() überprüfen ob in den Bereich des Bildes geklickt wurde

    Ja, so hätte ich das sonst auch gemacht. ;)
    Hätte ja sein können, dass es eine Funktion dafür gibt.

    Habe mal eben eine geschrieben.

    [autoit]

    Func _MousePos($Links, $Oben, $Breite, $Hoehe) ;Abstand von links, Abstand von Oben, Breite, Höhe des Kastens
    $pos = MouseGetPos()

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

    If $pos[0] > $Links And _
    $pos[1] > $Oben And _
    $pos[0] < $Breite And _
    $pos[1] < $Hoehe Then

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

    Return True
    EndIf

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

    Return False
    EndFunc

    [/autoit]

    MfG
    qixx

  • Gdi+ & $Gui_Ws_Ex_Parentdrag

    • qixx
    • 13. Dezember 2010 um 17:09

    Hallo Leute,

    kann ich einem GDI+ Bild $GUI_WS_EX_PARENTDRAG zuweisen?
    Also dass ich mit dem meine Gui bewegen kann?


    MfG
    qixx

  • GDI+ Graphic transparenter Hintergrund

    • qixx
    • 13. Dezember 2010 um 15:22

    @H2112 : Wie siehts aus? Bist du wieder zu Hause? :D

    Neue Frage: Gibt es einen Befehl mitdem ich überprüfen kann, ob ich das GDI+ Bild angeklickt habe?


    MfG
    qixx

  • GDI+ Graphic transparenter Hintergrund

    • qixx
    • 8. Dezember 2010 um 22:24

    Ja, dann mache ich das erstmal.
    Habe vergessen, warum genau ich das mit Transparenz haben musste.
    Hatte einen Grund, aber vielleicht gehts jetzt ja auch so.
    Danke für Hilfe!


    MfG
    qixx

  • GDI+ Graphic transparenter Hintergrund

    • qixx
    • 8. Dezember 2010 um 21:49
    Zitat von name22

    Edit: Wieso verwendest du _WinAPI_BitBlt um ein Bild in eine Grafik zu malen? Mit _GDIPlus_GraphicsDrawImageRect geht das ganze doch auch, und soweit ich weiß sogar mit Transparenz

    Weil es ohne nicht funktionieren mag...
    Hier mal mal Quellcode. ;)

    Spoiler anzeigen
    [autoit]

    #include <GDIPlus.au3>
    #include <WinAPI.au3>
    #include <WindowsConstants.au3>
    #include <Misc.au3>
    HotKeySet("{Esc}", "_Exit")
    $sText = "Hallo"

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

    Dim $MovePic[1]
    $Move_Animation = 1
    $Links = True
    $ImageExist = True

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

    $hGUI = GUICreate("Test", 400, 150)
    $hGUI_DC = _WinAPI_GetDC($hGUI)

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

    $Slider = GUICtrlCreateSlider(40, 110, 201, 41)
    GUICtrlSetLimit(-1, 20, 1)
    GUICtrlSetData(-1, 5)

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

    $Button = GUICtrlCreateButton("Richtung", 250, 110)

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

    $hBitmap = _WinAPI_CreateCompatibleBitmap($hGUI_DC, 500, 100)
    $hGraphics_DC = _WinAPI_CreateCompatibleDC($hGUI_DC)
    _WinAPI_SelectObject($hGraphics_DC, $hBitmap)
    _GDIPlus_Startup()
    $hGraphics = _GDIPlus_GraphicsCreateFromHDC($hGraphics_DC)

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

    ;~ _GDIPlus_GraphicsSetSmoothingMode($hGraphics, 2)

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

    Global $x = 400, $y = 0, $X2 = 0, $Y2 = 100

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

    $i = 0
    While $ImageExist
    $Image = @ScriptDir & "\images\Ausgewachsen\5000030-move-" & $i & ".png"
    $ImageExist = FileExists($Image)
    If $ImageExist Then
    ReDim $MovePic[UBound($MovePic)+1]
    $MovePic[$i+1] = _GDIPlus_ImageLoadFromFile($Image)
    $i += 1
    EndIf
    WEnd

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

    $Timer = TimerInit()

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

    GUISetState(@SW_SHOW)
    While Sleep(5)
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case -3
    _Exit()
    Case $Button
    If $Links = True Then
    $Links = False
    $x += 59
    Else
    $Links = True
    $x -= 59
    EndIf

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

    EndSwitch

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

    If TimerDiff($Timer) >= 100 Then
    _Move(10, 0, 400, GUICtrlRead($Slider), $Links) ; Geschwindigkeit, Richtung, Breite, Abstand oben, Abstand links
    $Timer = TimerInit()
    EndIf
    WEnd

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

    Func _Move($Top, $Left, $MovingWidth, $Speed = 1, $Forward = True)
    _GDIPlus_GraphicsClear($hGraphics, 0xFFFFFFFF)

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

    If $Forward = True Then
    $Width = _GDIPlus_ImageGetWidth($MovePic[1])
    $Height = _GDIPlus_ImageGetHeight($MovePic[1])
    $x -= $Speed
    If $x < -$Width Then $x = $MovingWidth
    Else
    $Width = -_GDIPlus_ImageGetWidth($MovePic[1])
    $Height = _GDIPlus_ImageGetHeight($MovePic[1])
    $x += $Speed
    If $x > $MovingWidth - $Width Then $x = 0
    EndIf

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

    If $Move_Animation = UBound($MovePic)-1 Then
    $Move_Animation = 1
    Else
    $Move_Animation += 1
    EndIf
    _GDIPlus_GraphicsDrawImageRect($hGraphics,$MovePic[$Move_Animation], $x, 0, $Width, $Height)

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

    _WinAPI_BitBlt($hGUI_DC, $Left, $Top, $MovingWidth, $Height, $hGraphics_DC, 0, 0, $SRCCOPY)
    EndFunc

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

    Func _Exit()
    _WinAPI_DeleteDC($hGraphics_DC)
    _WinAPI_ReleaseDC($hGUI, $hGUI_DC)
    _WinAPI_DeleteObject($hBitmap)
    _GDIPlus_GraphicsDispose($hGraphics)
    _GDIPlus_Shutdown()
    Exit
    EndFunc ;==>_Exit

    [/autoit]

    MfG
    qixx

  • GDI+ Graphic transparenter Hintergrund

    • qixx
    • 8. Dezember 2010 um 20:55

    Hallo Leute,
    habe gerade mit GDI+ angefangen und habe eine sich immer
    aktualisierene Graphic, auf die ein Image (PNG) gepackt wird. (_WinAPI_BitBlt)
    Ich hätte aber gerne, dass der Hintergrund, also Graphic, transparent
    ist. Wie ist das möglich?

    Habe es schon mit

    [autoit]

    _GDIPlus_GraphicsClear($hGraphics, 0xFFFFFFFF)

    [/autoit]


    probiert, was aber leider nicht geklappt hat.

    Sinn der Tranzparenz ist, dass ich ein Hintergrundbild habe.

    Danke für Hilfe.


    MfG
    qixx

  • 2 GDI+ Bilder in verschiedenen Geschwindigkeiten bewegen

    • qixx
    • 8. Dezember 2010 um 18:34

    Habs geschafft. Danke. ;)


    MfG
    qixx

  • 2 GDI+ Bilder in verschiedenen Geschwindigkeiten bewegen

    • qixx
    • 8. Dezember 2010 um 18:14

    Irgendwie bekomme ich das nicht gebacken. xD
    Ich weiß auch gar nicht, was ich bei

    [autoit]

    _GDIPlus_GraphicsDrawImageRect

    [/autoit]


    in die ersten beiden Parameter eintragen soll..
    Einmal Grafik und einmal Bild? oO
    Und die Beispiele in der Hilfe helfen mir leider auch
    nicht weiter...

    Könnte mir vielleicht jemand ein ganz kleinen Codeschnipsel
    zeigen, in der ein Bild aufgerufen wird und in eine GUI angezeigt
    wird? Wäre echt super, sonst checke ich das anscheindend
    nicht. :D

    Danke!

    MfG
    qixx

  • 2 GDI+ Bilder in verschiedenen Geschwindigkeiten bewegen

    • qixx
    • 8. Dezember 2010 um 17:45

    Eine Frage habe ich dann doch noch. :D
    Wie bekomme ich das hin, dass sich anstatt des Kastens
    ein Bild bewegt?


    MfG
    qixx

  • 2 GDI+ Bilder in verschiedenen Geschwindigkeiten bewegen

    • qixx
    • 8. Dezember 2010 um 17:31

    Ah, super! Danke! :)
    Hätte ich auch selbst drauf kommen können, mit der höheren Variable. :D
    Aber du hast mir echt weitergeholfen wegen GDI+!
    Danke!


    MfG
    qixx

  • 2 GDI+ Bilder in verschiedenen Geschwindigkeiten bewegen

    • qixx
    • 8. Dezember 2010 um 16:19

    Hallo Leute,

    ich habe ein Problem. Und zwar möchte ich ein Spiel programmieren,
    indem sich mehrere Objekte unabhängig voneinander bewegen. Sie sollen
    in unterschiedlichen Geschwindigkeiten bewegt werden.

    Wie kann ich das am besten anstellen?

    Habe da schonmal was vorbereitet, allerdings noch ohne GDI+, weil das bei
    mir irgendwie nicht hingehauen hat.

    Bisheriges Skript
    [autoit]


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

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

    $Height = 50
    $Width = 50
    $IchPosition = 2

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

    $Form1 = GUICreate("Form1", 410, 126, 192, 124)
    $Ich = GUICtrlCreateLabel("", 24, 60, $Width, $Height)
    GUICtrlSetBkColor(-1, 0x000000)
    $Gegner = GUICtrlCreateLabel("", 192, 8, $Width, $Height)
    GUICtrlSetBkColor(-1, 0x800000)
    GUISetState(@SW_SHOW)
    AdlibRegister("_ChangePosition", 40)

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

    _GegnerLinks(2)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

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

    Func _GegnerLinks($Position)
    ;~ Func _GegnerLinks()
    ;~ $Position = 1
    Switch $Position
    Case 1
    $Position = 10
    Case 2
    $Position = 60
    EndSwitch
    For $i = 410 To -$Width Step -10
    GUICtrlSetPos($Gegner, $i, $Position)
    $IchPos = ControlGetPos("","", $Ich)

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

    $Sleep = TimerInit()
    While TimerDiff($Sleep) < 100
    WEnd
    Next
    EndFunc

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

    Func _ChangePosition()
    If _IsPressed(01) Then
    If $IchPosition = 1 Then
    $IchPosition = 2
    GUICtrlSetPos($Ich, 24, 60)
    Else
    $IchPosition = 1
    GUICtrlSetPos($Ich, 24, 10)
    EndIf
    While _IsPressed(01)
    WEnd
    EndIf
    EndFunc

    [/autoit]

    Ziel ist es, dass man den Blöcken ausweicht. ;)

    Danke für Antworten im voraus!

    MfG
    qixx

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™