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

Beiträge von eukalyptus

  • µit - September

    • eukalyptus
    • 31. August 2008 um 20:16

    @Pee: Darf ich fragen, wie lange bei dir die Addition braucht?
    derzeit bin ich insgesammt bei ca. 0.165, die Addition benötigt ca. 0.048

    Und ich werde noch NICHT aufgeben!!! :rock:
    (auch was scriptgröße betrifft...)

    lgE

  • µit - September

    • eukalyptus
    • 31. August 2008 um 12:40

    Yeah, jetzt wirds interessant :thumbup:

  • µit - September

    • eukalyptus
    • 30. August 2008 um 17:58

    Und ich dachte zunächst, meine Lösung wär die langsamste ;)

    Hab noch etwas Speed optimiert...
    Ich muß aber zugeben, daß die optimierte Version auf max 200-stellige Zahlen ausgelegt ist, wärend die alte auch weit längere Zahlen schaffen müsste.


    lgE

  • µit - September

    • eukalyptus
    • 29. August 2008 um 16:22

    UFF: erste erfolgreiche Version geschafft :)

    Bin mit der Performance noch nicht zufrieden...
    Aber zumindest funktionierts schon mal

    lgE


    //EDIT: Ups, da hatte ich wohl das falsche Archiv erwischt ;)
    jetzt ists meins!

  • Mediaplayer der mehrere Formate abspielen kann

    • eukalyptus
    • 29. August 2008 um 01:06

    In diesem Beispiel wird der Dll ein Array übergeben - Geht das überhaupt mit AutoIt?!?

    Man kann jedoch die Funktion auch so aufrufen:
    VLC_Init(1,0,Nil)
    (erster Parameter ist die Instanz von VLC, zweiter Parameter die Größe des Arrays, 3 Parameter ist das Array)
    also: 2 Param=0 und 3 Param=Nil - Funktioniert anscheinent in Delphi, aber wie kriegt man Nil in Autoit zustande? (Nil= Nichts oder None)
    hab schon "" , 0 , Chr(0) und was weiß ich probiert...

    Also:
    1) Weiß jemand, wie man in Autoit mit DllCall ein Array als Parameter übergeben kann?
    2) Wie Übergibt man den Delphiparameter "Nil"?

    *Daumenhaltdaßunsdajemandhelfenkann*

    ;)E

    //Edit: Das Array des 3 Parameters kann die normalen Commandlineparameter von VLC enthalten; Ein 1-Dimensionales Array mit "dvd://F:" würde z.b. eine DVD im Laufwerk F: abspielen usw...

  • GuiCrtlSendMsg und die Hex-Codes

    • eukalyptus
    • 28. August 2008 um 00:06

    Die Hexcodes bzw. die zugehörigen Konstanten findest du in der Datei "EditConstants.au3" (im AutoIt Include Ordner)

    Dein Hexcode 0x00B7 Scrollt zum Carret (Cursor im Edit)

    [autoit]

    GUICtrlSendMsg($Edit , "0xB5", 1, 0); $EM_SCROLL

    [/autoit]


    Scrollt rauf/runter; der erste Parameter kann folgende Werte haben:
    0=Lineup
    1=Linedown
    2=Pageup
    3=Pagedown
    der zweite Parameter wird nicht benutzt


    [autoit]

    GUICtrlSendMsg($Edit , "0xB6", 5, -2); $EM_LINESCROLL

    [/autoit]


    Erster Parameter = Anzahl der Zeichen Horizontal scrollen
    Zweiter Parameter = Anzahl der Zeilen Vertikal scrollen
    bei negativen Werten in die andere Richtung...

    lgE

  • Mediaplayer der mehrere Formate abspielen kann

    • eukalyptus
    • 27. August 2008 um 20:59

    Nein, ich denke mit VLC_PositionSet kann man an eine bestimmte Stelle des Videos fahren...
    vielleicht video_set_visual?!?

    Hast du erfolgreich VLC_Init ausgeführt? Wenn ja, dann bitte code posten ;)

  • Mediaplayer der mehrere Formate abspielen kann

    • eukalyptus
    • 27. August 2008 um 15:55

    Es gibt da glaub ich noch die LibVLC.dll die sich einfach ansteuern lassen sollte.

    mit einfachen dll-funktionen wie: VLC_Play, VLC_Pause, VLC_Stop ...

    Kann grad nicht nachsehen, ob die bei der "normalen" Version schon dabei ist...

    Das muß ich mir demnächst mal genauer ansehen, wenn ich mal wieder etwas Zeit hab...


    lgE

  • "Maus-O-Meter"

    • eukalyptus
    • 24. August 2008 um 00:56

    Verstehe ich richtig: Ihr wollt anhand der Mauszeigerbewegung die Entfernungszurücklegung der Hardwaremaus ausrechnen?!?

    erstmal GtaSpider hat Recht! Der Mauszeiger bewegt sich immer gleich, egal ob 14" Bildschirm, oder 70" Beamer ;)
    wenn man die Maus immer gleich bewegt, dann wird auch die selbe Strecke in Pixel zurückgelegt, egal ob 640x480 oder sonst irgendeine Auflösung eingestellt ist.
    (DPI sind da irreführend, denn bei 14" ist die zurückgelegte Strecke (in inch) natürlich kleiner als bei größeren Displays)

    Das große Problem ist die Mauszeigerbeschleunigung: Je schneller man die Maus bewegt, desto weiter wandert der Mauszeiger (bei gleicher Distanz der Hardwaremaus)
    Ist die Beschleunigung aktiv?
    Wie ist die Zeigergeschwindigkeit eingstellt?
    Funktionieren alle Mäuse gleich? (optische Mäuse haben unterschiedliche DPI-Auflösungen)
    usw...

    lgE

  • µit - August

    • eukalyptus
    • 23. August 2008 um 18:14

    Installier Oscars Script in ein Verzeichnis OHNE Leerzeichen, dann sollte es gehn... (also der komplette Pfad ohne Leerzeichen...)

  • µit - August

    • eukalyptus
    • 23. August 2008 um 16:45
    Zitat von Oscar

    Ich hab mein Passwort eingetragen (Post #10).

    ACHTUNG!!! Bei Oscar muß beim Passwort das erste Leerzeichen mitgenommen werden!

  • Dlls

    • eukalyptus
    • 22. August 2008 um 20:38

    Ich kenn mich nur in Dev-Pascal (freepascal) aus, da wird das so gemacht:

    Code
    library TestDLL;
    
    
    Function TestFunction(Text:PChar):Integer; export;
    begin
     	writeln(Text);
     	result:=1;
    end;
    
    
    exports
       	TestFunction;
    
    
    begin
     	writeln('TestDLL gestartet');
    end.
    Alles anzeigen

    es reicht "library" ganz oben und die Funtion muß exportiert (freigegeben) werden, schon ist die Dll fertig :)

    das ganze kompiliert und via Autoit aufgerufen

    [autoit]

    DllCall(@ScriptDir & "\TestDLL.dll", "int", "TestFunction", "str", "Dieser Text wird übergeben")

    [/autoit]

    ich nehme an, daß das mit C++ ähnlich funktioniert...

    Dev-C++ von http://www.bloodshed.net kannst du kostenlos downloaden und hat auch eine DLL-Vorlage

    EDIT: Sorry, hab´s mit C# verwechselt ;)

    lgE

  • Startzeit / Laufzeit 1 Stunde

    • eukalyptus
    • 21. August 2008 um 10:01

    Fast richtig!

    entweder Timderdiff() *1000 *3600
    oder Timerdiff() *3600000
    ;)

    Du könntest es so machen:

    [autoit]

    TimerDiff($startSktipt) >= $sktiptTime * 1000 * $zeitvorgabe Then Exit (0)

    [/autoit]

    Sekunden: $zeitvorgabe=1
    Minuten: $zeitvorgabe=60
    Stunden: $zeitvorgabe=3600
    usw...

    lgE

  • Hintergrundfarbe eines TabItems ändern.

    • eukalyptus
    • 19. August 2008 um 16:23

    OK, das funktioniert doch eingentlich ganz gut!

    jedoch hab ich das Gefühl, daß das irgendwie anders gehen muß.

    bei AutoHotKey geht das mit 3 Zeilen:

    Code
    Gui, Color, FFAA00
    Gui, Add, Tab2,, Tab1|Tab2|Tab3
    Gui, Show

    Macht AHK intern dasselbe wie RR04´s Beispiel, oder gibt es die Funktion Tab-Einfärben, muß jedoch erst in Autoit implementiert werden?!?

    lgE

  • Hintergrundfarbe eines TabItems ändern.

    • eukalyptus
    • 18. August 2008 um 23:40

    Tabs sind WindowsControls und keine AutoitControls, deshalb funktioniert GuiCtrlSetBkColor nicht.

    https://autoit.de/index.php?page=Thread&postID=40747

    wenn deine Tabs weiß sind, dann ist das wahrscheinlich in Windows so eingestellt:
    Desktop -> Rechtsklick -> Eigenschaften -> Darstellung -> Erweitert...
    (also ich nehm mal an, daß auf deinem Rechner auch Tabs von anderen Programmen weiß sind, oder?!)

    lgE

  • Kleines Spiel - Kanonenschießen

    • eukalyptus
    • 18. August 2008 um 23:17

    So, habs wieder etwas erweitert:
    größeres Spielfeld, Kanonen stehen jetzt immer am Boden, es gibt Gegen/Mit-Wind, KI etwas besser usw...

    Natürlich ist da nichts perfekt, ich wollte eigentlich nur etwas mit Parabelflugbahnen experimentieren.
    Und bei der Gelegenheit gleich mal etwas in GDI+ reinschnuppern...

    Übrigens hab ich grad im englischen Forum gelesen, daß die _GDIPlus_GraphicsFillPolygon Funktion in der aktuellen Beta enthalten ist (hätte mir Arbeit erspart) ;)

  • Programmfenster Popup sporadisch, wie abfangen?

    • eukalyptus
    • 17. August 2008 um 19:45

    du machst ein extra script:

    [autoit]

    While 1
    Sleep(100)
    If WinExists("Titel") Then WinClose("Titel")
    WEnd

    [/autoit]


    und compilierst dies z.b. zu KillWerbung.exe

    in das Hauptscript schreibst am Anfang

    [autoit]

    Run(@ScriptDir & "\KillWerbung.exe")

    [/autoit]


    und am Ende

    [autoit]

    ProcessClose("KillWerbung.exe")

    [/autoit]

    KillWerbung.exe läuft somit gleichzeitig zu deinem Script und schließt das Werbefenster, falls es auftauchen sollte...

    lgE

  • Kleines Spiel - Kanonenschießen

    • eukalyptus
    • 17. August 2008 um 19:22

    Hab mir ein kleines Spiel gebastelt

    und vielleicht kann ja jemand die Funktion _GDIPlus_GraphicsFillPolygon gebrauchen:

    Spoiler anzeigen
    [autoit]

    Func _GDIPlus_GraphicsFillPolygon($hGraphics, $aPoints, $hBrush = 0)
    Local $iI, $iCount, $pPoints, $tPoints, $aResult, $tmpError, $tmpExError

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

    $iCount = $aPoints[0][0]
    $tPoints = DllStructCreate("int[" & $iCount * 2 & "]")
    $pPoints = DllStructGetPtr($tPoints)
    For $iI = 1 To $iCount
    DllStructSetData($tPoints, 1, $aPoints[$iI][0], (($iI - 1) * 2) + 1)
    DllStructSetData($tPoints, 1, $aPoints[$iI][1], (($iI - 1) * 2) + 2)
    Next

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

    _GDIPlus_BrushDefCreate($hBrush)
    $aResult = DllCall($ghGDIPDll, "int", "GdipFillPolygon2I", "hwnd", $hGraphics, "hwnd", $hBrush, "ptr", $pPoints, "int", $iCount)
    $tmpError = @error
    $tmpExError = @extended
    _GDIPlus_BrushDefDispose()
    If $tmpError Then Return SetError($tmpError, $tmpExError, False)
    Return SetError($aResult[0], 0, $aResult[0] = 0)
    EndFunc

    [/autoit]


    Das Spiel:

    Spoiler anzeigen
    [autoit]

    #include <GDIPlus.au3>
    #include <WindowsConstants.au3>
    #include <EditConstants.au3>
    Opt("PixelCoordMode",2)

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

    Global $MainX=800
    Global $MainY=600
    Global $H1,$H2,$H3,$C_Angel,$C_Power,$Wind,$Rem=False
    _SetValues()

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

    _GDIPlus_Startup()

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

    $hGui=GUICreate("Game",$MainX,$MainY)
    GUISetBkColor(0x00FF00)
    GUIRegisterMsg($WM_PAINT, '_Redraw')
    $hGraphic = _GDIPlus_GraphicsCreateFromHWND ($hGui)
    GUICtrlCreateLabel("Angle",50,$MainY-23,50,20)
    GUICtrlSetColor(-1,0xFFFFFF)
    $hAngle=GUICtrlCreateInput("45",10,$MainY-25,35,20,$ES_READONLY)
    GUICtrlCreateUpdown(-1)
    GUICtrlSetLimit(-1,80,0)
    GUICtrlCreateLabel("Power",165,$MainY-23,50,20)
    GUICtrlSetColor(-1,0xFFFFFF)
    $hPower=GUICtrlCreateInput("70",120,$MainY-25,40,20,$ES_READONLY)
    GUICtrlCreateUpdown(-1)
    GUICtrlSetLimit(-1,120,40)
    $hFire=GUICtrlCreateButton("Fire",230,$MainY-25,55,20)
    $hNew=GUICtrlCreateButton("New",340,$MainY-25,55,20)

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

    GUISetState()
    _CreateBK($H1,$H2,$H3)

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

    While 1
    $msg=GUIGetMsg()
    If $msg=-3 Then ExitLoop
    If $msg=$hNew Then
    _SetValues()
    _CreateBK($H1,$H2,$H3)
    EndIf
    If $msg=$hFire Then _Fire($H1,$H2)

    Sleep(5)
    WEnd

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

    _GDIPlus_Shutdown()

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

    Func _Fire($H1,$H2)
    Local $pi = 3.14159265358979
    Local $ymax =0
    Local $v = GUICtrlRead($hPower)
    Local $alpha = GUICtrlRead($hAngle)*(-1)
    Local $x_alt=0, $y_alt=0
    Local $Treffer=False
    Local $Gras=False
    $hBrush_Del = _GDIPlus_BrushCreateSolid(0xFF0000FF)
    $hBrush = _GDIPlus_BrushCreateSolid(0xFF222222)
    _ShotSound()
    For $t=0 To 35 Step 0.3
    $x = (cos($pi/180 *$alpha) * ($v-$Wind) * $t)
    $y = (sin($pi/180 *$alpha) * $v * $t) - ( 0.5 * -9.81 * $t * $t )
    PixelSearch(45+$x,$MainY-$H1-60+$y,45+$x+25,$MainY-$H1-60+$y+25,0x887766)
    If Not @error Then $Treffer=True
    If 45+$x>$MainX Then ExitLoop
    If $MainY-$H1-60+$y>=$MainY-50 Then ExitLoop
    PixelSearch(45+$x,$MainY-$H1-60+$y,45+$x+25,$MainY-$H1-60+$y+25,0x00FF00)
    If Not @error Then $Gras=True
    _GDIPlus_GraphicsFillPie($hGraphic,45+$x_alt,$MainY-$H1-60+$y_alt,25,25,0,360,$hBrush_Del)
    _GDIPlus_GraphicsFillPie($hGraphic,45+$x,$MainY-$H1-60+$y,25,25,0,360,$hBrush)
    $x_alt=$x
    $y_alt=$y
    If $Treffer=True Then ExitLoop
    If $Gras=True Then ExitLoop
    Sleep(20)
    Next
    _GDIPlus_GraphicsFillPie($hGraphic,45+$x_alt,$MainY-$H1-60+$y_alt,25,25,0,360,$hBrush_Del)
    If $Treffer=True Then
    $hBrush = _GDIPlus_BrushCreateSolid(0xAA000000)
    _GDIPlus_GraphicsFillPie($hGraphic,$MainX-60,$MainY-$H2-60,60,80,0,360,$hBrush)
    _HitSound()
    MsgBox(0,"Treffer","Hurra, du hast getroffen")
    Else
    ;Computer Anfang
    Sleep(500)
    If $C_Power<20 Then $C_Power=20
    If $C_Power>150 Then $C_Power=150
    If $C_Angel<0 Then $C_Angel=0
    If $C_Angel>80 Then $C_Angel=80
    $v=$C_Power+$Wind
    $alpha=$C_Angel*(-1)
    $x_alt=0
    $y_alt=0
    $Gras=False
    $Treffer=False
    _ShotSound()
    For $t=0 To 35 Step 0.3
    $x = (cos($pi/180 *$alpha) * ($v+$Wind) * $t)
    $y = (sin($pi/180 *$alpha) * $v * $t) - ( 0.5 * -9.81 * $t * $t )
    If ($y*(-1))>$ymax Then $ymax=$y*(-1)
    PixelSearch($MainX-75-$x,$MainY-$H2-60+$y,$MainX-75-$x+25,$MainY-$H2-60+$y+25,0x887766)
    If Not @error Then $Treffer=True
    If $MainX-75-$x<0 Then
    If ($y*(-1))<$ymax Then
    $C_Power-=Random(1,10,1)
    If $Rem=True Then
    $C_Angel+=Random(1,5,1)
    $Rem=False
    EndIf
    Else
    $C_Angel-=Random(3,10,1)
    EndIf
    ExitLoop
    EndIf
    If $MainY-$H2-60+$y>=$MainY-50 Then ExitLoop
    PixelSearch($MainX-75-$x,$MainY-$H2-60+$y,$MainX-75-$x+25,$MainY-$H2-60+$y+25,0x00FF00)
    If Not @error Then
    If $MainX-75-$x < $MainX/2 Then
    $C_Power+=Random(1,10,1)
    Else
    If ($y*(-1))<$ymax Then
    $C_Power+=Random(10,20,1)
    $C_Angel-=Random(1,5,1)
    $Rem=True
    Else
    $C_Angel+=Random(3,10,1)
    EndIf
    EndIf
    $Gras=True
    EndIf
    _GDIPlus_GraphicsFillPie($hGraphic,$MainX-75-$x_alt,$MainY-$H2-60+$y_alt,25,25,0,360,$hBrush_Del)
    _GDIPlus_GraphicsFillPie($hGraphic,$MainX-75-$x,$MainY-$H2-60+$y,25,25,0,360,$hBrush)
    $x_alt=$x
    $y_alt=$y
    If $Treffer=True Then ExitLoop
    If $Gras=True Then ExitLoop
    Sleep(20)
    Next
    _GDIPlus_GraphicsFillPie($hGraphic,$MainX-75-$x_alt,$MainY-$H2-60+$y_alt,25,25,0,360,$hBrush_Del)
    If $Treffer=True Then
    $hBrush = _GDIPlus_BrushCreateSolid(0xAA000000)
    _GDIPlus_GraphicsFillPie($hGraphic,5,$MainY-$H1-60,60,80,0,360,$hBrush)
    _HitSound()
    MsgBox(0,"Treffer","Schade, du bist tot")
    EndIf
    ;Computer Ende
    EndIf

    EndFunc

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

    Func _ShotSound()
    Beep(200,10)
    Beep(100,10)
    Beep(200,10)
    Beep(100,10)
    EndFunc

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

    Func _HitSound()
    For $i=200 to 50 Step -20
    Beep($i,1)
    Beep($i*2,1)
    Beep($i,1)
    Beep($i*2,1)
    Next
    EndFunc

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

    Func _CreateBK($H1,$H2,$H3)
    Local $aPoints[13][2],$W=3
    $hBrush = _GDIPlus_BrushCreateSolid(0xFF0000FF)
    _GDIPlus_GraphicsFillRect($hGraphic, 0, 0, $MainX, $MainY-60, $hBrush)
    $hPen = _GDIPlus_PenCreate(0xFFFFFF00)
    _GDIPlus_GraphicsDrawLine($hGraphic, $MainX/2,10,$MainX/2-$Wind*10,10,$hPen)
    If $Wind < 0 Then $W=-3
    _GDIPlus_GraphicsDrawLine($hGraphic, $MainX/2-$Wind*10,10,$MainX/2-$Wind*10+$W,7,$hPen)
    _GDIPlus_GraphicsDrawLine($hGraphic, $MainX/2-$Wind*10,10,$MainX/2-$Wind*10+$W,13,$hPen)

    $aPoints[0][0] = 12
    $aPoints[1][0] = -50
    $aPoints[1][1] = $MainY-$H1
    $aPoints[2][0] = 50
    $aPoints[2][1] = $MainY-$H1
    $aPoints[3][0] = 180
    $aPoints[3][1] = $MainY-$H1-($H3-$H1)/5
    $aPoints[4][0] = $MainX/2
    $aPoints[4][1] = $MainY-$H3
    $aPoints[5][0] = $MainX-180
    $aPoints[5][1] = $MainY-$H2-($H3-$H2)/5
    $aPoints[6][0] = $MainX-50
    $aPoints[6][1] = $MainY-$H2
    $aPoints[7][0] = $MainX+50
    $aPoints[7][1] = $MainY-$H2
    $aPoints[8][0] = $MainX+51
    $aPoints[8][1] = $MainY-$H2-1
    $aPoints[9][0] = $MainX+50
    $aPoints[9][1] = $MainY-55
    $aPoints[10][0] = $MainX/2
    $aPoints[10][1] = $MainY-55
    $aPoints[11][0] = -50
    $aPoints[11][1] = $MainY-55
    $aPoints[12][0] = -51
    $aPoints[12][1] = $MainY-$H1-1
    $hBrush = _GDIPlus_BrushCreateSolid(0xFF00FF00)
    _GDIPlus_GraphicsFillClosedCurve($hGraphic, $aPoints, $hBrush)

    $hBrush = _GDIPlus_BrushCreateSolid(0xFF887766)
    _GDIPlus_GraphicsFillPie($hGraphic,11,$MainY-$H1-30,28,28,0,360,$hBrush)
    $aPoints[0][0] = 4
    $aPoints[1][0] = 15
    $aPoints[1][1] = $MainY-$H1-25
    $aPoints[2][0] = 35
    $aPoints[2][1] = $MainY-$H1-45
    $aPoints[3][0] = 55
    $aPoints[3][1] = $MainY-$H1-25
    $aPoints[4][0] = 35
    $aPoints[4][1] = $MainY-$H1-5
    _GDIPlus_GraphicsFillPolygon($hGraphic, $aPoints, $hBrush)
    $hBrush = _GDIPlus_BrushCreateSolid(0xFF443322)
    _GDIPlus_GraphicsFillPie($hGraphic,15,$MainY-$H1-20,28,28,0,360,$hBrush)

    $hBrush = _GDIPlus_BrushCreateSolid(0xFF887766)
    _GDIPlus_GraphicsFillPie($hGraphic,$MainX-40,$MainY-$H2-30,28,28,0,360,$hBrush)
    $aPoints[0][0] = 4
    $aPoints[1][0] = $MainX-15
    $aPoints[1][1] = $MainY-$H2-25
    $aPoints[2][0] = $MainX-35
    $aPoints[2][1] = $MainY-$H2-45
    $aPoints[3][0] = $MainX-55
    $aPoints[3][1] = $MainY-$H2-25
    $aPoints[4][0] = $MainX-35
    $aPoints[4][1] = $MainY-$H2-5
    _GDIPlus_GraphicsFillPolygon($hGraphic, $aPoints, $hBrush)
    $hBrush = _GDIPlus_BrushCreateSolid(0xFF443322)
    _GDIPlus_GraphicsFillPie($hGraphic,$MainX-43,$MainY-$H2-20,28,28,0,360,$hBrush)
    EndFunc

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

    Func _SetValues()
    $H1=Random(65,$MainY-180,1)
    $H2=Random(65,$MainY-180,1)
    $H3=Random(120,$MainY-50,1)
    $C_Angel=Round((($H3-$H2)*100)/500+Random(-5,5,1),0)
    If $C_Angel<40 Then $C_Angel=40
    If $C_Angel>80 Then $C_Angel=80
    $Wind=Random(-20,20,1)
    $C_Power=40-$Wind+$C_Angel+Random(-5,5,1)
    EndFunc

    Func _Redraw()
    _CreateBK($H1,$H2,$H3)
    EndFunc

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

    Func _GDIPlus_GraphicsFillPolygon($hGraphics, $aPoints, $hBrush = 0)
    Local $iI, $iCount, $pPoints, $tPoints, $aResult, $tmpError, $tmpExError

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

    $iCount = $aPoints[0][0]
    $tPoints = DllStructCreate("int[" & $iCount * 2 & "]")
    $pPoints = DllStructGetPtr($tPoints)
    For $iI = 1 To $iCount
    DllStructSetData($tPoints, 1, $aPoints[$iI][0], (($iI - 1) * 2) + 1)
    DllStructSetData($tPoints, 1, $aPoints[$iI][1], (($iI - 1) * 2) + 2)
    Next

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

    _GDIPlus_BrushDefCreate($hBrush)
    $aResult = DllCall($ghGDIPDll, "int", "GdipFillPolygon2I", "hwnd", $hGraphics, "hwnd", $hBrush, "ptr", $pPoints, "int", $iCount)
    $tmpError = @error
    $tmpExError = @extended
    _GDIPlus_BrushDefDispose()
    If $tmpError Then Return SetError($tmpError, $tmpExError, False)
    Return SetError($aResult[0], 0, $aResult[0] = 0)
    EndFunc

    [/autoit]

    Viel Spaß ;)

  • Text wird falsch angezeigt

    • eukalyptus
    • 16. August 2008 um 18:51

    Du müsstest, wenn du das Tab3-Control löschst/erstellst auch alle darin befindlichen Controls löschen/erstellen.
    Und das mit jedem AN/AUS-Buttonklick erneut.

    Wie wärs mit folgendem Vorschlag:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>

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

    Global $Tab[4], $Button, $msg, $TabState=True, $CtrlStart, $CtrlEnd

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

    GUICreate("Test",400,300)
    $Button=GUICtrlCreateButton("Aus",10,20,40,20)
    GUICtrlCreateTab(10,60,380,230)
    $Tab[1]=GUICtrlCreateTabItem("Tab 1")
    GUICtrlCreateLabel("Ist nur in Tab1",20,100)
    $Tab[2]=GUICtrlCreateTabItem("Tab 2")
    GUICtrlCreateLabel("Ist nur in Tab2",20,100)
    $Tab[3]=GUICtrlCreateTabItem("Tab 3")
    $CtrlStart=GUICtrlCreateDummy()
    GUICtrlCreateLabel("Ist nur in Tab3",20,100)
    GUICtrlCreateInput("Blablabla",20,130)
    ;usw...
    $CtrlEnd=GUICtrlCreateDummy()
    GUISetState()


    While 1
    $msg=GUIGetMsg()
    If $msg=-3 Then Exit
    If $msg=$Button Then
    $TabState= Not $TabState
    _SetTabState()
    EndIf
    Sleep(5)
    WEnd

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

    Func _SetTabState()
    If $TabState=True Then
    GUICtrlSetData($Button,"Aus")
    For $i=$CtrlStart+1 to $CtrlEnd-1
    GUICtrlSetState($i,$GUI_SHOW)
    Next
    Else
    GUICtrlSetData($Button,"An")
    For $i=$CtrlStart+1 to $CtrlEnd-1
    GUICtrlSetState($i,$GUI_HIDE)
    Next
    EndIf
    EndFunc

    [/autoit]


    Löscht NICHT das TabItem, sondern versteckt nur die Controls...

    lgE

  • Eintrag im "Rechtsklick" Menü machen?

    • eukalyptus
    • 15. August 2008 um 22:03
    [autoit]

    RegWrite("HKEY_CLASSES_ROOT\*\shell\Test\command","","REG_SZ",'"Test.Exe" "%1"')
    ;RegDelete("HKEY_CLASSES_ROOT\*\shell\Test")

    [/autoit]

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™