Gib halt als Koordinaten bei GUICreate @DesktopWidth - Breite der GUI und das selbe für die Höhe an.
Beiträge von name22
-
-
Wenn ich dich im ersten Post richtig verstanden habe, ginge es so doch viel einfacher
.Spoiler anzeigen
[autoit]#include <Array.au3>
[/autoit] [autoit][/autoit] [autoit]Global $aTest[5]
[/autoit] [autoit][/autoit] [autoit]
$aTest[0] = ""
$aTest[1] = "Test"
$aTest[2] = "löschen"
$aTest[3] = "Test2"
$aTest[4] = "delete"Global $aSearch[4]
[/autoit] [autoit][/autoit] [autoit]
$aSearch[0] = 3
$aSearch[1] = "löschen"
$aSearch[2] = "delete"
$aSearch[3] = ""_ArrayDisplay($aTest)
[/autoit] [autoit][/autoit] [autoit]
$aTest = _ArrayDeleteEx($aTest, $aSearch)
_ArrayDisplay($aTest)Func _ArrayDeleteEx($aArray, $aSearch)
[/autoit] [autoit][/autoit] [autoit]
Local $iI = 0
Local $iArraySize = UBound($aArray)While $iI <= $iArraySize - 1
[/autoit] [autoit][/autoit] [autoit]
For $iJ = 1 To $aSearch[0]
If $aArray[$iI] = $aSearch[$iJ] Then
$iArraySize = _ArrayDelete($aArray, $iI)
ExitLoop
EndIf
Next
$iI += 1
WEndReturn $aArray
[/autoit]
EndFunc -
Mit Backbuffer arbeiten und WM_PAINT Registrieren ;).
Also so:Spoiler anzeigen
[autoit]#include <GUIConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <WindowsConstants.au3>
#include <GDIPlus.au3>Opt("MustDeclareVars", 1) ; 0=nein, 1=erfordert Deklaration
[/autoit] [autoit][/autoit] [autoit]
Opt("GUICloseOnESC", 1) ; 1=ESC beendet, 0=ESC schließt nichtGlobal $GUI, $Logo_PNG, $hGraphic, $hBitmap, $hBuffer
[/autoit] [autoit][/autoit] [autoit]$GUI = GUICreate("Test-GDIPlus", 364, 290, -1, -1, BitOR($WS_CAPTION, $WS_POPUPWINDOW), BitOR($WS_EX_TOOLWINDOW, $WS_EX_TOPMOST))
[/autoit] [autoit][/autoit] [autoit]
GUISetState(@SW_SHOW)_GDIPlus_Startup()
[/autoit] [autoit][/autoit] [autoit]$hGraphic = _GDIPlus_GraphicsCreateFromHWND($GUI)
[/autoit] [autoit][/autoit] [autoit]
$hBitmap = _GDIPlus_BitmapCreateFromGraphics(364, 290, $hGraphic)
$hBuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)$Logo_PNG = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\testbild.png")
[/autoit] [autoit][/autoit] [autoit]_GDIPlus_GraphicsDrawImage($hBuffer, $Logo_PNG, 32, 6)
[/autoit] [autoit][/autoit] [autoit]
WM_PAINT()GUIRegisterMsg($WM_PAINT, "WM_PAINT")
[/autoit] [autoit][/autoit] [autoit]While 1
[/autoit] [autoit][/autoit] [autoit]
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
EndSwitch
WEndGUIDelete($GUI) ; Schließe Gui
[/autoit] [autoit][/autoit] [autoit]
_GDIPlus_GraphicsDispose($hGraphic) ; Gib Grafik-Objekt wieder frei
_GDIPlus_GraphicsDispose($hBuffer)
_GDIPlus_BitmapDispose($hBitmap)
_GDIPlus_ImageDispose($Logo_PNG) ; Gib das Bild-Objekt frei
_GDIPlus_Shutdown() ; Gib die verwendeten Ressourcen wieder frei
ExitFunc WM_PAINT()
[/autoit]
_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, 0, 0, 364, 290)
EndFunc
Schau dir bitte trotzdem das Tutorial an ;). -
Das kannst du gerne machen wenn es dir besser gefällt... Ich geb dir die Erlaubnis, ok?

-
Zitat
Seh da keinen Unterschied zu meinem, aber was solls
Als ich das gepostet habe stand dein Code da noch nicht drin ;). -
Zitat
Ich find da nix gutes...
Das zweite Ergebnis...
-
Als Stil $WS_POPUP verwenden und dann deine eigene Titelleiste entweder mit GDI+ oder mit Pic Controls gestalten ;).
Oder du fragst beim Microsoft Kunden Service an.
-
Das Script ist irgendwie... nunja....
Kann es sein, dass es so in der Richtung aussehen soll?
Spoiler anzeigen
[autoit]Global $Quit2read = -1
[/autoit]
While 1
$msg = GUIGetMsg()
$sw_onoff = 0
Switch $msg
Case $Button ;nur als Beispiel
$Quit2read = GUICtrlRead($Quit2)
if $Quit2read <> -1 Then _exit()
EndSwitch -
_GDIPlus_GraphicsFillPie wenn du dich jetzt speziell auf einen Teil eines Kreises beziehst, ansonsten reicht auch _GDIPlus_GraphicsFillEllipse ;).
-
_ArrayAdd verwendet auch ReDim
. Inwiefern ist das aufwendiger?
Ich verstehe nicht wieso manche Leute einfach bestimmte Funktionen nicht benutzen wollen obwohl es genau das ist was sie suchen... -
Die findest du hier
. -
Du kannst für normale Musikdateien SoundPlay verwenden. Für Online Streams brauchst du wahrscheinlich die BASS.au3.

-
Jonathan musst du mir immer meine Ideen klauen :D?
Einen Herzlichen Glühstrumpf auch von mir!
[Blockierte Grafik: http://img155.imageshack.us/img155/4010/bdayi.png] -
Ich hab mal mit den Funktionen der GDIP.au3 herumexperimentiert, und das ist dabei herausgekommen...
Spoiler anzeigen
[autoit]#include <GDIP.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstants.au3>
#include <Misc.au3>Opt("GUIOnEventMode", 1)
[/autoit] [autoit][/autoit] [autoit]$iGUIColorBG = 0xFFFFFFFF
[/autoit] [autoit][/autoit] [autoit]
$iGUIWidth = 400
$iGUIHeight = 400$iX_Char = 50
[/autoit] [autoit][/autoit] [autoit]
$iY_Char = 50
$vX_Char = 0
$vY_Char = 0$hWnd = GUICreate("Kollisionstest", $iGUIWidth, $iGUIHeight)
[/autoit] [autoit][/autoit] [autoit]
GUISetState()_GDIPlus_Startup()
[/autoit] [autoit][/autoit] [autoit]$hGraphic = _GDIPlus_GraphicsCreateFromHWND($hWnd)
[/autoit] [autoit][/autoit] [autoit]
$hBitmap = _GDIPlus_BitmapCreateFromGraphics($iGUIWidth, $iGUIHeight, $hGraphic)
$hBuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)
_GDIPlus_GraphicsSetSmoothingMode($hBuffer, 2)$hPath = _GDIPlus_PathCreate()
[/autoit] [autoit][/autoit] [autoit]
_GDIPlus_PathAddRectangle($hPath, 100, 100, 25, 25)
_GDIPlus_PathAddEllipse($hPath, 250, 150, 200, 100)
Dim $aPoints[6][2]
$aPoints[0][0] = 5
$aPoints[1][0] = 125
$aPoints[1][1] = 125
$aPoints[2][0] = 150
$aPoints[2][1] = 125
$aPoints[3][0] = 135
$aPoints[3][1] = 150
$aPoints[4][0] = 200
$aPoints[4][1] = 210
$aPoints[5][0] = 100
$aPoints[5][1] = 300
_GDIPlus_PathAddCurve($hPath, $aPoints)
$hRegion = _GDIPlus_RegionCreateFromPath($hPath)GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
[/autoit] [autoit][/autoit] [autoit]While Sleep(20)
[/autoit] [autoit][/autoit] [autoit]
If _IsPressed("25") Then $vX_Char -= 0.2
If _IsPressed("26") Then $vY_Char -= 0.2
If _IsPressed("27") Then $vX_Char += 0.2
If _IsPressed("28") Then $vY_Char += 0.2$iX_Char += $vX_Char
[/autoit] [autoit][/autoit] [autoit]
$iY_Char += $vY_Char
$vX_Char *= 0.98
$vY_Char *= 0.98
If _GDIPlus_RegionIsVisibleRect($hRegion, $iX_Char, $iY_Char, 20, 20, $hBuffer) Then
$iX_Char -= $vX_Char
$iY_Char -= $vY_Char
$vX_Char = 0
$vY_Char = 0
EndIf
_GDIPlus_GraphicsClear($hBuffer, $iGUIColorBG)
_GDIPlus_GraphicsFillPath($hBuffer, $hPath)
_GDIPlus_GraphicsFillRect($hBuffer, $iX_Char, $iY_Char, 20, 20)
_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, 0, 0, $iGUIWidth, $iGUIHeight)
WEndFunc _Exit()
[/autoit]
_GDIPlus_GraphicsDispose($hGraphic)
_GDIPlus_GraphicsDispose($hBuffer)
_GDIPlus_BitmapDispose($hBitmap)
_GDIPlus_PathDispose($hPath)
_GDIPlus_RegionDispose($hRegion)
_GDIPlus_Shutdown()
Exit
EndFunc
Dazu benötigt ihr natürlich die GDIP.au3 (Anhang)
.
Das lässt sich auch noch optimieren, aber ich denke das ist mal ein Anfang für ein effektives Kollisions System.
-
Ich hab deinen Post noch nicht gesehen :P.
Da hab ich einfach 2 Minuten länger gebraucht. -
Zitat
das die gui das aus sieht wie spongbob geht so was????
GUISpongebobCreate?
Du kannst ein transparentes Bild in die GUI packen und mit _WinApi_SetLayeredWindowAttributes eine Farbe im Fenster transparent schalten. Dafür musst du die GUI aber mit dem Stil $WS_EX_LAYERED erstellen. -
Redest du von GUICtrlCreateTab bzw. GUICtrlCreateTabItem? Dazu brauchst du keinen Koda Form Designer.
-
Dann benutze StringSplit und teile den Rückgabewert der Inputbox in X und Y auf. Danach benutzt du WinMove mit diesen Werten.
-
Es gibt nicht direkt einen Befehl dafür, aber du kannst mit FileRead eine .pls Datei auslesen und weiterverarbeiten.
Die Adressen der Online Streams stehen in reiner Textform in der .pls Datei ;). -
ExitLoop... Das hättest du auch über die Hilfe oder die Forensuche herausfinden können.