ZitatVerteidignung
Genau ich bin auch gespannt wie shayn sich verteidignigt
.
Ich glaube kaum, dass ihn das kümmert... ![]()
ZitatVerteidignung
Genau ich bin auch gespannt wie shayn sich verteidignigt
.
Ich glaube kaum, dass ihn das kümmert... ![]()
ZitatWie krige ich bei einem Edit den Rand gefärbt ?
.....
Ich dachte das hätten wir in der SB gekärt ^^. Es gibt um Controls zu färben nur die Funktionen GUICtrlSetColor und GUICtrlSetBKColor. Kann es sein, dass der Rand immer die selbe Farbe hat und es dir einfach erst jetzt aufgefallen ist?
Das meinte ich nicht... Wofür brauchst du es denn in der Praxis? Man benötigt fast nie 3 oder mehrdimensionale Arrays...
Zitatkönnte mir mal jemand ein Beispiel schicken wie man ein Array Deklariert, wobei in einer Varriable steht wie viele Dimensionen man hat.
Ich glaube nicht, dass das geht... Kannst du uns nicht einfach sagen wofür genau du das brauchst oder mal ein Beispiel schreiben?
Ich habs mal überarbeitet, obwohl ich so etwas eigentlich mit GDI+ mache :D.
#include <GUIConstantsEx.au3>
#include <SendMessage.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Misc.au3>
Global $minimieren, $schliesen, $Form, $buttons[1][3], $TEMPDIR = @ScriptDir, $hover
[/autoit] [autoit][/autoit] [autoit]#region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 383, 209, 294, 244, $WS_POPUP)
$titel_balken = GUICtrlCreatePic("", 0, 0, 500, 22)
$Pic1 = GUICtrlCreatePic($TEMPDIR & "\bg.gif", 0, 0, 382, 208)
$buttons[0][0] = GUICtrlCreatePic($TEMPDIR & "\start1.jpg", 4, 27, 155, 35)
$buttons[0][1] = "start"
$buttons[0][2] = False
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###
AdlibRegister("_GUI_hover", 200)
[/autoit] [autoit][/autoit] [autoit]While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $titel_balken
_SendMessage($Form1, $WM_SYSCOMMAND, 0xF012, 0)
EndSwitch
_GUI_hover()
WEnd
Func _GUI_hover()
Local $iMouse = GUIGetCursorInfo($Form1)
If Not @error Then
For $i = 0 To UBound($buttons) - 1
If $iMouse[4] = $buttons[$i][0] Then
If $iMouse[2] And $buttons[$i][2] <> 1 Then
GUICtrlSetImage($buttons[$i][0], $TEMPDIR & "\" & $buttons[$i][1] & "1.jpg")
$buttons[$i][2] = 1
ElseIf Not $iMouse[2] And $buttons[$i][2] <> 2 Then
GUICtrlSetImage($buttons[$i][0], $TEMPDIR & "\" & $buttons[$i][1] & "2.jpg")
$buttons[$i][2] = 2
EndIf
ElseIf $iMouse[4] <> $buttons[$i][0] And $buttons[$i][2] <> 0 Then
GUICtrlSetImage($buttons[$i][0], $TEMPDIR & "\" & $buttons[$i][1] & "0.jpg")
$buttons[$i][2] = 0
EndIf
Next
EndIf
EndFunc ;==>_GUI_hover
Du brauchst auf jeden Fall RichEdit ;).
Zitat von TempelsoftNEU NEU :: Tempelsoft SiLVA :: NEU NEU
Ja es ist fertig, das erste und hoffentlich nicht letzte Browsergame von Tempelsoft. Bei SiLVA können sie ihren eigenen Wald erschaffen, und sie und ihre Freunde können diesen Wald bepflanzen. Sinnlos und lustig. Tempelsoft SiLVA, jetzt kostenlos mitmachen!
Link: http://silva-browsergame.tk
Es heißt übrigens silva, weil das lateinisch ist und Wald bedeutet.
Nicht wundern dass der Joystick französisch ist, aber es ist open source und keine Kopie.
Na hoppla, kennen wir das nicht irgendwoher?
Ich finde es auch schei*e, aber viel kann man meistens nicht dagegen unternehmen. ![]()
Wozu brauchst du überhaupt 3 dimensionale Arrays? Normalerweise tut es auch ein gut aufgebautes 2 dimensionales Array ;).
Die ganzen Arrayfunktionen gibt es auch nur für 1 und manchmal auch 2 dimensionale Arrays...
ZitatSchöner Desktop,aber vielleicht solltest du die Ip verstecken
nachher bekommt noch jemand Lust ihn zu hacken
.
ZitatMein Video war falsch konventiert.
Ich hab das Video nochmal gespeichrt, und jetzt klappt es.
Das war bei mir auch so... Aber in der Hilfe steht nichts darüber welche Codecs unterstützt werden, weiß das jemand?
ZitatDanke, aber jetzt hab ich ein schwarzes Rechteck um den Balloon? xD
wie jetzt? Ist das im Bild auch so?
Edit: Gut also klappt es jetzt
.
Jetzt aber...
Hab _GDIPlus_Startup falsch platziert ^^.
#include <GDIPlus.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1)
OnAutoItExitRegister("_Exit")
_GDIPlus_Startup()
; Variablen ============================================================================
[/autoit] [autoit][/autoit] [autoit]Global $iWidth = 500, $iHeight = 600
Global $iX = 0, $iY = 0
Global $hBackground = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\graphics\background.png")
Global $balloon_red = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\graphics\balloon_red.png")
Global $balloon_green = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\graphics\balloon_green.png")
Global $balloon_blue = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\graphics\balloon_blue.png")
Global $balloon_yellow = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\graphics\balloon_yellow.png")
Global $balloon_pink = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\graphics\balloon_pink.png")
Global $balloonX = Random(0,450)
Global $balloonY = 0
; GUI ============================================================================
[/autoit] [autoit][/autoit] [autoit]$hGUI = GUICreate("TrapTheBalloon",$iWidth,$iHeight)
$hWnd = WinGetHandle("TrapTheBalloon")
GUISetState()
GUISetOnEvent(-3, "_Exit")
GUIRegisterMsg(0x000F, "WM_PAINT")
; GDI+ ============================================================================
[/autoit] [autoit][/autoit] [autoit]$hGraphic = _GDIPlus_GraphicsCreateFromHWND($hWnd)
;Erstmal das normale Grafik-Objekt erstellen.
$hBitmap = _GDIPlus_BitmapCreateFromGraphics($iWidth, $iHeight, $hGraphic)
;Statt uns mit dem normalen Frontbuffer zufrieden zu geben, erstellen wir erstmal eine
;Bitmap, mit Bezug auf unser Grafikobjekt.
$hBackbuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)
;Nachdem unser Bitmap erstellt ist, holen wir uns den Graphics Context. Dieser
;wird von uns verwendet, um darin zu zeichnen
_GDIPlus_GraphicsSetSmoothingMode($hBackBuffer, 2)
; While-Schleife ============================================================================
[/autoit] [autoit][/autoit] [autoit]While 1
[/autoit] [autoit][/autoit] [autoit]_GDIPlus_GraphicsClear($hBackbuffer)
; Superradierer benutzen um alten Backbuffer zu löschen
_GDIPlus_GraphicsDrawImageRect($hBackbuffer, $hBackground, 0, 0, $iWidth, $iHeight)
_GDIPlus_GraphicsDrawImage($hBackbuffer, $balloon_red, 50, 50)
_GDIPlus_GraphicsDrawRect($hBackbuffer,50,50,100,150)
_WinAPI_RedrawWindow($hWnd, 0, 0,$RDW_INTERNALPAINT)
; WM_PAINT wird nur aufgerufen, wenn alle Berechnungen fertig sind!
; In WM_PAINT wird selbst nichts berechnet, oder gezeichnet. diese Funktion wird nur das
; Bitmap-Objekt in das Grafik-Objekt übertragen.
WEnd
; Funktionen ============================================================================
[/autoit] [autoit][/autoit] [autoit]Func _Exit() ; Clean up resources
_GDIPlus_GraphicsDispose($hGraphic) ; Grafikobjekt auflösen
_GDIPlus_BitmapDispose($hBitmap); Bitmap auflösen
_GDIPlus_ImageDispose($balloon_red); Bild auflösen
_GDIPlus_ImageDispose($balloon_green); Bild auflösen
_GDIPlus_ImageDispose($balloon_blue); Bild auflösen
_GDIPlus_ImageDispose($balloon_yellow); Bild auflösen
_GDIPlus_ImageDispose($balloon_pink); Bild auflösen
_GDIPlus_ImageDispose($hBackground); Bild auflösen
_GDIPlus_Shutdown() ; GDI+ Engine beenden
Exit
EndFunc ;==>_Exit
Func WM_PAINT()
_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $iX, $iY, $iWidth, $iHeight)
; _GDIPlus_GraphicsDrawImageRect() überträgt den Backbuffer in den Frontbuffer.
; Der erste Parameter ist unser Frontbuffer (Grafik Objekt).
; Der zweite ist unsere Bitmap, welche ja als BackBuffer fungiert.
; Darauf folgt der Abschnitt den man übertragen will.
; i.d.R. ist es 0, 0 für X und Y koordinaten, und die GUI Breite und Höhe für
; Width und Height. Kommt natürlich immer drauf an, wie groß euer Grafikobjekt ist,
; und ob ihr den vollen Teil zeichnen wollt.
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_PAINT
Och Mensch hier haben alle so schöne Oberflächen...
Ok wenn ich mit meinen jetzigen Projekten fertig bin mache ich einen Desktop mit GDI+ :P.
[Blockierte Grafik: http://img541.imageshack.us/img541/1844/screend.png]
Im Moment befindet sich dieser Zeichenvorgang aber in der Funktion WM_PAINT welche nie aufgerufen wird ;).
Ich glaube du meinst es so, oder?
#include <GDIPlus.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1)
OnAutoItExitRegister("_Exit")
; Variablen ============================================================================
[/autoit] [autoit][/autoit] [autoit]Global $iWidth = 500, $iHeight = 600
Global $iX = 0, $iY = 0
Global $hBackground = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\graphics\background.png")
Global $balloon_red = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\graphics\balloon_red.png")
Global $balloon_green = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\graphics\balloon_green.png")
Global $balloon_blue = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\graphics\balloon_blue.png")
Global $balloon_yellow = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\graphics\balloon_yellow.png")
Global $balloon_pink = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\graphics\balloon_pink.png")
Global $balloonX = Random(0,450)
Global $balloonY = 0
; GUI ============================================================================
[/autoit] [autoit][/autoit] [autoit]$hGUI = GUICreate("TrapTheBalloon",$iWidth,$iHeight)
$hWnd = WinGetHandle("TrapTheBalloon")
GUISetState()
GUISetOnEvent(-3, "_Exit")
GUIRegisterMsg(0x000F, "WM_PAINT")
; GDI+ ============================================================================
[/autoit] [autoit][/autoit] [autoit]_GDIPlus_Startup()
$hGraphic = _GDIPlus_GraphicsCreateFromHWND($hWnd)
;Erstmal das normale Grafik-Objekt erstellen.
$hBitmap = _GDIPlus_BitmapCreateFromGraphics($iWidth, $iHeight, $hGraphic)
;Statt uns mit dem normalen Frontbuffer zufrieden zu geben, erstellen wir erstmal eine
;Bitmap, mit Bezug auf unser Grafikobjekt.
$hBackbuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)
;Nachdem unser Bitmap erstellt ist, holen wir uns den Graphics Context. Dieser
;wird von uns verwendet, um darin zu zeichnen
_GDIPlus_GraphicsSetSmoothingMode($hBackBuffer, 2)
; While-Schleife ============================================================================
[/autoit] [autoit][/autoit] [autoit]While 1
[/autoit] [autoit][/autoit] [autoit]_GDIPlus_GraphicsClear($hBackbuffer)
; Superradierer benutzen um alten Backbuffer zu löschen
_GDIPlus_GraphicsDrawImageRect($hBackbuffer, $hBackground, 0, 0, $iWidth, $iHeight)
_GDIPlus_GraphicsDrawImage($hBackbuffer, $balloon_red, 50, 50)
_GDIPlus_GraphicsDrawRect($hBackbuffer,50,50,100,150)
_WinAPI_RedrawWindow($hWnd, 0, 0,$RDW_INTERNALPAINT)
; WM_PAINT wird nur aufgerufen, wenn alle Berechnungen fertig sind!
; In WM_PAINT wird selbst nichts berechnet, oder gezeichnet. diese Funktion wird nur das
; Bitmap-Objekt in das Grafik-Objekt übertragen.
WEnd
; Funktionen ============================================================================
[/autoit] [autoit][/autoit] [autoit]Func _Exit() ; Clean up resources
_GDIPlus_GraphicsDispose($hGraphic) ; Grafikobjekt auflösen
_GDIPlus_BitmapDispose($hBitmap); Bitmap auflösen
_GDIPlus_ImageDispose($balloon_red); Bild auflösen
_GDIPlus_ImageDispose($balloon_green); Bild auflösen
_GDIPlus_ImageDispose($balloon_blue); Bild auflösen
_GDIPlus_ImageDispose($balloon_yellow); Bild auflösen
_GDIPlus_ImageDispose($balloon_pink); Bild auflösen
_GDIPlus_ImageDispose($hBackground); Bild auflösen
_GDIPlus_Shutdown() ; GDI+ Engine beenden
Exit
EndFunc ;==>_Exit
Func WM_PAINT()
_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $iX, $iY, $iWidth, $iHeight)
; _GDIPlus_GraphicsDrawImageRect() überträgt den Backbuffer in den Frontbuffer.
; Der erste Parameter ist unser Frontbuffer (Grafik Objekt).
; Der zweite ist unsere Bitmap, welche ja als BackBuffer fungiert.
; Darauf folgt der Abschnitt den man übertragen will.
; i.d.R. ist es 0, 0 für X und Y koordinaten, und die GUI Breite und Höhe für
; Width und Height. Kommt natürlich immer drauf an, wie groß euer Grafikobjekt ist,
; und ob ihr den vollen Teil zeichnen wollt.
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_PAINT
Das ist wirklich gut geworden, ich bin beeindruckt
. Fast so gut wie Dreamweaver
.
Syntax Highlighting wäre vielleicht noch ganz nützlich
.
Ich hatte einfach keine Zeit und wusste auch nicht was ich dazu schreiben sollte, aber trotzdem großes Lob von mir
.
Zitat
Nur jetzt sieht man die Bilder nicht mehr (Background + Roten Balloon)
Du zeichnest nirgendwo ein Bild... Du leerst den Backbuffer und zeichnest ihn auf den Frontbuffer, mehr nicht ;).
Suchst du vielleicht StringRight?
Wie unterscheiden sich denn diese MessageBoxen?
Du kannst ja auch nach dem Text eines Fensters suchen.
Ich gehe davon aus, dass diese Messagebox einen Titel hat, wenn dem so ist kannst du mit If WinExists("Titel") übeprüfen ob sie vorhanden ist ;).
Wenn beide Fenster einen Prozess haben kannst du auch diesen beenden (ProcessClose), ansonsten mit WinClose arbeiten.