Ich hab für mich ne kleine GDI+ Übeung gemacht, naja, die Übung stellt sich als Schwieriger dar als ich Dachte.
Und zwar, hatte ich vor sowas wie einen "Abspann" zu machen, viele ma chen sicherlich ein kleinen Spiel mit AutoIt und da kann man sowas dan schonmal brauchen, aber nicht nur für Spiele.
Meine Idee war, man hat eine .txt Datei, mit sämtlichen namen und Infos welche Angezeigt werde sollen.
Soweit so gut, das einlessen, kein thema, mit GDI+ das eingelessene Zeichnen, geht auch.
Aber ich bekomm es nicht hin, dass mir das gezeichnete von Oben nach Unten oder Unten Nach oben (Erstmal von Oben nach Unten) verschoben wird.
Das ganze sieht momentan so aus
GDI+ Abspann.au3
#include <file.au3>
#include <Array.au3>
;~
Global $Creator[1] = [_FileCountLines(@ScriptDir & '\Creator.txt')]
Global $fSize = 20
Global $iStyle = 0
Global $iUnit = 2
Global $Speed = 50
Global $Distance[1] = [0]
;~
Global $hGUI
Global $Size = WinGetClientSize($hGUI)
;~
For $d = 1 To $Creator[0]
_ArrayInsert($Distance, $d, $d * $fSize)
Next
;~
For $i = 1 To $Creator[0]
_ArrayInsert($Creator, $i, FileReadLine('Creator.txt', $i))
Next
;~
;~ _ArrayDisplay($Creator)
;~ _ArrayDisplay($Distance)
;~ _ArrayDisplay($Draw)
;~
Func _LastWord($hGUI)
;~ $Size[0] = Breite(X) des Fensters
;~ $Size[1] = Höhe(Y) des Fensters
Local $Size = WinGetClientSize($hGUI)
Local $i = 0,$a = 1
Local $Progress = GUICtrlCreateProgress(0, $Size[1] - 20, $Size[0], 20)
;~
$hStringFormat = _GDIPlus_StringFormatCreate()
$hFormat = _GDIPlus_StringFormatSetAlign($hStringFormat, 1)
$hBrush = _GDIPlus_BrushCreateSolid(0xFFFF0000)
$hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI)
$hFamily = _GDIPlus_FontFamilyCreate('Arial')
$hFont = _GDIPlus_FontCreate($hFamily, $fSize, $iStyle, $iUnit)
;~
Do
GUICtrlSetData($Progress, Floor($i / $Size[1]))
$tLayout = _GDIPlus_RectFCreate($Size[0] / 2 - 100,$i, 300, $Size[1])
If $i = $Distance[$a-1] Then
_GDIPlus_GraphicsDrawStringEx($hGraphic, $Creator[$a], $hFont, $tLayout, $hFormat, $hBrush)
$a = $a +1
EndIf
;~
$i = $i + 1
Sleep($Speed)
Until $i = $Size[1]
EndFunc ;==>_LastWord
Test.au3
#include <GuiConstants.au3>
#include <Constants.au3>
#include <WindowsConstants.au3>
#include <StaticConstants.au3>
#include <GdiPlus.au3>
#include 'GDI+ Game Abspann.au3'
;~
OnAutoItExitRegister("_end")
Global $width = 1000, $height = 500
;~
_GDIPlus_Startup()
;~
$hGui = GUICreate('Test', $width, $height, -1, -1)
GUISetState(@SW_SHOW, $hGUI)
;~
_LastWord($hGui)
;~
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
;~
Func _end()
_GDIPlus_Shutdown()
EndFunc ;==>_end
Creator.txt
Test 0 = Info 0
Test 1 = Info 1
Test 2 = Info 2
Test 3 = Info 3
Test 4 = Info 4
Test 5 = Info 5
Test 6 = Info 6
Test 7 = Info 7
Test 8 = Info 8
Test 9 = Info 9
Test 10 = Info 10
Test 11 = Info 11
Test 12 = Info 12
Test 13 = Info 13
Test 14 = Info 14
Test 15 = Info 15
Test 16 = Info 16
Test 17 = Info 17
Test 18 = Info 18
Test 19 = Info 19
Test 20 = Info 20
Alles anzeigen
Das ist bisjetz dass was ich hinbekommen habe, leider weiss ich nicht weiter und hoffe Ihr versteht was ich da vorhabe.
Erfräulich währen Denk anstösse, oder Möglichkeiten, wie mein Vorhaben vorranschreiten kann und nicht jetz schon zum Scheitern Verurteilt ist.
Greez
Skilkor
**Edit 1**
Die Progressbar hab ich mal so eingebaut, und nicht grossartig RICHTIG bearbeitet, da es eine Idee war und ich mich kenne, wenn ich es nicht gleich reinbaue, vergess ichs wieder