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

Beiträge von RapIt

  • farbe von listviewspalte ändern

    • RapIt
    • 1. September 2010 um 20:57

    Hallo, weiß jemand wie man eine Spalte von einem Listview färben kann ohne gleich das ganze Listview zu färben?
    Vielen Dank im Voraus
    RapIT

  • FileOpen reagiert nicht

    • RapIt
    • 13. Juli 2010 um 16:23

    Das Problem ist, dass FileOpen() nicht die Datei mit einem Editor öffnet, dafür musst du schon Shellexecute() benutzen, wie PrideRage bereits sagte. File Open öffnet die Datei im Hintergrund damit du sie dann z.B mit FileWrite bearbeiten kannst, ohne sie dabei in einem Editor zu sehen.

  • _WinAPI_RedrawWindow()

    • RapIt
    • 7. Juli 2010 um 12:02

    Aber mal ganz davon abgesehen was reichen würde ;-das sit ja ein kleines Beispiel, ganz anders als das richtige- was ist denn falsch, bzw. das Problem?

    Im Anhang das was ich bis jetzt habe.

    Dateien

    brett.jpg 51,13 kB – 0 Downloads
  • _WinAPI_RedrawWindow()

    • RapIt
    • 7. Juli 2010 um 10:46

    Hier, ich habe etwas kleines gebastelt:

    Eigentlich sollte sich nur das Brett aktualisieren, aber die Labels tun das auch...Oder ist das vielleicht nur ein Darstellungsfehler!??


    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <GDIPlus.au3>
    #include <WindowsConstants.au3>
    #Include <WinAPI.au3>

    $Form = GUICreate("Mühle",@DesktopWidth+10, @DesktopHeight+30,-10,-30)
    GUISetBkColor(0x000000)
    GUICtrlCreatePic(@scriptdir&"\"&"brett.jpg",(@DesktopWidth-800)/2,150,800,800)
    $1 = GUICtrlCreateLabel("Player 1", 50, 30, 200, 60,0x01)
    GUICtrlSetColor($1,0xff0000)
    GUICtrlSetFont($1,30)
    $2 = GUICtrlCreateLabel("Player 2", @DesktopWidth-230, 30, 200, 60,0x01)
    GUICtrlSetFont($2,30)
    GUICtrlSetColor($2,0x0000FF)
    Global Const $RECT = "int Left;int Top;int Right;int Bottom"
    GUISetState(@SW_SHOW)
    Global $struct = DllStructCreate($RECT)
    DllStructSetData($struct,"Left" ,(@DesktopWidth-800)/2)
    DllStructSetData($struct,"Top", 150)
    DllStructSetData($struct,"Right",((@DesktopWidth-800)/2)+800)
    DllStructSetData($struct,"Bottom",900)
    Global $Pointer = DllStructGetPtr($struct)

    While 1
    sleep(2000)
    _WinAPI_RedrawWindow($form,$Pointer)
    WEnd

  • _WinAPI_RedrawWindow()

    • RapIt
    • 7. Juli 2010 um 10:12

    Also ich habe das jetzt so verstanden, dass ich eine Pointer erstellen muss, der auf die Struktur verweist, in der sich die vier Koordinaten befinden. Dann kann ich den Pointer in _WinAPI_RedrawWindow() einbinden. (Er ist ja dann nur eine Variable) und dieser verweist dann auf die 4 Punkte. Den Pointer erstelle ich mit DllStructGetPtr($struct).
    Also sähe das dann ca so aus:


    -------------------------------------------------------------------------------------
    Global Const $RECT = "int Left;int Top;int Right;int Bottom"
    Global $struct = DllStructCreate($RECT)

    DllStructSetData($struct,"Left" ,150)
    DllStructSetData($struct,"Top", 150)
    DllStructSetData($struct,"Right",900)
    DllStructSetData($struct,"Bottom",900)

    Global $Pointer = DllStructGetPtr($struct)


    _WinAPI_RedrawWindow($form,$Pointer)

    -------------------------------------------------------------------------------------------

    Habe ich etwas falsch verstanden? Ich habe es nämich genau so und trotzdem wird das ganze Fenster aktualisiert.

    edit: Komischerweise habe ich den Thread nicht gesehen und Quellcode nicht gesehen, obwohl er schon dagewesen sein müsste

  • _WinAPI_RedrawWindow()

    • RapIt
    • 7. Juli 2010 um 09:27

    Ah, vielen Dank.
    Sähe das dann z.B so aus: _WinAPI_RedrawWindow($form, 0, 0,$struct) . Weil hier darf ja nur ein Wert rein, da bringt es mir ja nichts mit DllStructGetData($struct,"Right") einen Wert der Struktur auszulesen... Oder muss die Zeile _WinAPI_RedrawWindow($form, 0, 0,$RECT) aussehen. Es funktioniert i-wie beides nicht, die Funktion wird dann einfach übersprungen, obwohl das eig. sehr richtig aussieht, wie ihr das geschrieben habt. ;)

  • _WinAPI_RedrawWindow()

    • RapIt
    • 6. Juli 2010 um 22:43

    Wie funktioniert denn die "$tagRECT Struktur" Wie kann ich die Koordinaten in dem Parameter angeben?

  • _WinAPI_RedrawWindow()

    • RapIt
    • 6. Juli 2010 um 21:45

    das ist etwas schwierig ihc kanns besse rbeschreiben. Es soll ein Mühlespiel sein. Wenn man mit der Maus über eine mögliche Ablageposition hovert, wird ein Kreis angezeigt, aber er geht wieder weg wenn man mit der Maus wieder weggeht ohne zu drücken. Dieses "weggehen" ist das _WinAPI_RedrawWindow() und das passiert halt alle paar Sec wobei das ganze Spiel dann immer aktualisiert.

  • _WinAPI_RedrawWindow()

    • RapIt
    • 6. Juli 2010 um 21:06

    Hallo zusammen,
    ich muss mit _WinAPI_RedrawWindow() öfters eine Graphic aktualisieren. Dies nervt aber beim hingucken ziemlich, da es alle paar sec. passiert. Gibt es eine Möglichkeit dies weniger auffällig zu gestalten und wie genau funktioniert es, nur ein Teil des Bildschirms zu aktualisieren?
    Vielen Dank im Voraus
    RapIT

  • mühle gdi+ problem

    • RapIt
    • 5. Juli 2010 um 22:14

    Aber im Programm verwendest du doch dies _GDIPlus_GraphicsClear($hGraphicsBuffer, 0xFFFFFFFF) und das kann ich bei mir ja nicht, weil dann auch die gui dahinter kaputt geht... Aber ich glaube ich weiß wie ich es machen muss...

  • mühle gdi+ problem

    • RapIt
    • 5. Juli 2010 um 21:51

    thx, auf die Idee bin ich auch vor 10 sec gekommen^^

  • mühle gdi+ problem

    • RapIt
    • 5. Juli 2010 um 21:42

    Ja, das ist ja auch so aber immer wenn man mit dem curser wieder weggeht, löscht der halt die Grafiken wieder. Ich add dich mal...

  • mühle gdi+ problem

    • RapIt
    • 5. Juli 2010 um 21:33

    Hallo zusammen:

    Ich habe mir vorgenommen ein Mühle-Spiel zu proggen... Die Idee ist, dass man, wenn man über eine mögliche Ablageposition hovert ein Stein dort erscheint und wieder weggeht, sobald man die maus wieder wegbegt. Sobald man aber klickt soll der Stein dort fest installiert bleiben und sich die Farbe wechseln. An diesm Punkt haperts noch etwas.
    Das Problem ist das das Fenster mit _WinAPI_RedrawWindow() das Fenster aktualisiert sobaldman mit der Maus wieder weghovert.(Ich habe keine Möglichkeit gefunden ein einzelnes GDI+ Objekt zu löschen, ohne dabei die ganze Graphic zu löschen.) Das Problem ist halt, dass alles so funktionieren soll nachdem ein Stein "fest installiert" ist. Hierbei aktualisiert er aber auch immer und daher geht der Stein den man gelegt hat immer wieder weg.
    Mein Ansatz war anstatt von_WinAPI_RedrawWindow() einfach nach jedem Ablegen eines Steins eine neue GDI+ Graphic zu erstellen und die alte mittels _GDIPlus_GraphicsClear Transparent zu machen, sobald man weghovert. Sobald ein Stein gelegt wurde, wird die Grafik dann einfach nicht transparent gemacht. Hierbei wird aber komischerweise wieder der ganze Bildschirm schwarz anstatt die Grafik transparent und die Gui weiterhin sichtbar ;)
    Ich hoffe jemand versteht überhaupt das Problem^^
    Vielen Dank im Voraus.
    RapIT

  • Gdi+ objekt löschen

    • RapIt
    • 4. Juli 2010 um 21:09

    Ah, schade, naja, dann werd ich mir wohl was anderes einfallen lassen müssen...

  • Gdi+ objekt löschen

    • RapIt
    • 4. Juli 2010 um 20:18

    Ja, aber ob ich jetzt das Bild neu zeichne oder die Graphic aktualisiere macht jetzt auch keinen großen unterschied..

  • Gdi+ objekt löschen

    • RapIt
    • 4. Juli 2010 um 19:20

    Ne, das geht nicht weil der Hintergrund ein Bild ist...

  • Gdi+ objekt löschen

    • RapIt
    • 4. Juli 2010 um 18:32

    Hallo nochmal,
    Gibt es eine Möglichkeit nur ein einzelnes GDI+ Objekt (z.B eine Ellipse) zu löschen ohne direkt die ganze Graphic zu löschen oder _WinAPI_RedrawWindow($gui) zu machen? Sonst aktualisiert der bei mir nämlich alle 100 ms das Fenster...
    Viele Grüße,
    RapIT

  • Transparentes Label als Area

    • RapIt
    • 4. Juli 2010 um 13:47

    Dachte ich auch zuerst, aber ich dachte, dass ist eh das selbe^^ Aber so gehts, Vielen Dank

  • Transparentes Label als Area

    • RapIt
    • 4. Juli 2010 um 13:23

    Nein, das kann ja nicht gehen, weil man nur RGB farben benutzen kann... und nicht transparenz... Dazu gibts ja das Attribut $GUI_BKCOLOR_TRANSPARENT

  • Transparentes Label als Area

    • RapIt
    • 4. Juli 2010 um 13:20

    Einfach nur ein Label

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™