Zitatname22, was hat deine Antwort jetzt mit einer GUI-Hole zu tun?
Er will die GUI_Hole Funktion, welche einen Rechteckigen Abschnitt einer GUI transparent macht, als Rechteck haben... Ich wollte ihm erklären was ein Rechteck ist.
Zitatname22, was hat deine Antwort jetzt mit einer GUI-Hole zu tun?
Er will die GUI_Hole Funktion, welche einen Rechteckigen Abschnitt einer GUI transparent macht, als Rechteck haben... Ich wollte ihm erklären was ein Rechteck ist.
Das hier sollte dir helfen.
Ich denke du brauchst nur InetRead, BinaryToString und StringRegExp. ![]()
Diese Frage wurde hier schon ein paar mal gestellt ;).
Klick
ZitatJa, gerade gelesen. Aber im Prinzip hat das ja nichts mit dem alten Theme "Erweiterter Koda Formdesigner" zutun
Und? Es ist aber immer noch das selbe Problem ;).
Oder du machst es mit StringRegExp ;).
$sString = "HU-20110525-0024"
$sResult = StringRegExpReplace($sString, ".{7}(\d{4})-(\d{4})", "$1$2")
MsgBox(64, "Ergebnis", $sResult)
Ich hab vor einiger Zeit mal eine einfache Analoguhr mit GDI+ gebastelt.
#include <GDIP.au3>
#include <GUIConstants.au3>
#include <Misc.au3>
Opt("GUIOnEventMode", 1)
[/autoit] [autoit][/autoit] [autoit]$iGUIColorBG = 0xFFFFFFFF
$iGUIWidth = 400
$iGUIHeight = 400
$hWnd = GUICreate("Test", $iGUIWidth, $iGUIHeight)
GUISetState()
_GDIPlus_Startup()
[/autoit] [autoit][/autoit] [autoit]$hGraphic = _GDIPlus_GraphicsCreateFromHWND($hWnd)
$hBitmap = _GDIPlus_BitmapCreateFromGraphics($iGUIWidth, $iGUIHeight, $hGraphic)
$hBuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)
_GDIPlus_GraphicsSetSmoothingMode($hBuffer, 2)
$hPenHour = _GDIPlus_PenCreate(0xFF000000, 4)
$hPenMin = _GDIPlus_PenCreate(0xFF000000, 2)
$hPenSec = _GDIPlus_PenCreate(0xFFFF0000, 1)
GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
[/autoit] [autoit][/autoit] [autoit]While Sleep(20)
_GDIPlus_GraphicsClear($hBuffer, $iGUIColorBG)
_GDIPlus_GraphicsDrawLineWithAngle($hBuffer, $iGUIWidth / 2, $iGUIHeight / 2, 0, 0, 0, -170, @SEC * 6, $hPenSec)
_GDIPlus_GraphicsDrawLineWithAngle($hBuffer, $iGUIWidth / 2, $iGUIHeight / 2, 0, 0, 0, -190, @MIN * 6, $hPenMin)
_GDIPlus_GraphicsDrawLineWithAngle($hBuffer, $iGUIWidth / 2, $iGUIHeight / 2, 0, 0, 0, -140, @HOUR * 30, $hPenHour)
_GDIPlus_GraphicsFillEllipse($hBuffer, $iGUIWidth / 2 - 10, $iGUIHeight / 2 - 10, 20, 20)
_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, 0, 0, $iGUIWidth, $iGUIHeight)
WEnd
Func _Exit()
_GDIPlus_GraphicsDispose($hGraphic)
_GDIPlus_GraphicsDispose($hBuffer)
_GDIPlus_BitmapDispose($hBitmap)
_GDIPlus_PenDispose($hPenHour)
_GDIPlus_PenDispose($hPenSec)
_GDIPlus_PenDispose($hPenMin)
_GDIPlus_Shutdown()
Exit
EndFunc ;==>_Exit
Func _GDIPlus_GraphicsDrawLineWithAngle($hGraphics, $iX_Rotate, $iY_Rotate, $iX_Point1, $iY_Point1, $iX_Point2, $iY_Point2, $iAngle, $hPen = 0)
_GDIPlus_GraphicsTranslateTransform($hGraphics, $iX_Rotate, $iY_Rotate)
_GDIPlus_GraphicsRotateTransform($hGraphics, $iAngle)
_GDIPlus_GraphicsDrawLine($hGraphics, $iX_Point1, $iY_Point1, $iX_Point2, $iY_Point2, $hPen)
_GDIPlus_GraphicsResetTransform($hGraphics)
EndFunc ;==>_GDIPlus_GraphicsDrawLineWithAngle
Hier wird einfach die Graphic mithilfe von Rotationsmatrizen gedreht. Man könnte also statt _GDIPlus_GraphicsDrawLine auch einfach ein Bild zeichnen.;)
Zitatwie geht dieser fileinstall?
Das steht in der Hilfe beschrieben ;).
Du hättest auch einfach einen Moment warten können... Ich hab nämlich in deinem "alten" Thread bereits etwas Ähnliches gepostet. ![]()
Das hier müsste deinen Vorstellungen entsprechen:
#include <GUIConstants.au3>
#include <Misc.au3>
;- Author: name22 (http://www.autoit.de)
[/autoit] [autoit][/autoit] [autoit]$hWnd = GUICreate("Drag/Drop Controls", 400, 400)
$cDummy_Start = GUICtrlCreateDummy()
$cButton = GUICtrlCreateButton("Button", 50, 50, 60, 25)
$cLabel = GUICtrlCreateLabel("Label", 100, 200)
$cEdit = GUICtrlCreateEdit("Edit", 200, 50, 180, 100)
$cDummy_End = GUICtrlCreateDummy()
GUISetState()
$vUser32Dll = DllOpen("user32.dll")
[/autoit] [autoit][/autoit] [autoit]While True
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
For $i = $cDummy_Start + 1 To $cDummy_End - 1
$aPos = ControlGetPos($hWnd, "", $i)
IniWrite("ControlPos.ini", "Controls", $i, $aPos[0] & ":" & $aPos[1])
Next
DllClose($vUser32Dll)
Exit
Case $GUI_EVENT_PRIMARYDOWN
$aMousePos = GUIGetCursorInfo($hWnd)
If $aMousePos[4] Then
$iControl = $aMousePos[4]
$aPos = ControlGetPos($hWnd, "", $iControl)
$iDist_X = $aMousePos[0] - $aPos[0]
$iDist_Y = $aMousePos[1] - $aPos[1]
While _IsPressed("01", $vUser32Dll)
$aMousePos = GUIGetCursorInfo($hWnd)
ControlMove($hWnd, "", $iControl, $aMousePos[0] - $iDist_X, $aMousePos[1] - $iDist_Y)
Sleep(10)
WEnd
EndIf
EndSwitch
WEnd
Mach doch einfach eine Variable die den Wert True bekommt wenn der momentane Text von einer Datei stammt, oder in einer gespeichert ist, und den Wert False bkommt wenn der Text neu erstellt wurde und keine dazugehörige Datei hat.
Wenn die Variable True ist, dann kannst du den Text mit der Inhalt der Datei vergleichen, wenn sie False ist, dann nicht ;).
Ich sehe gerade, dass $filesa wohl erst deklariert wird, wenn man eine Datei speichert. Du musst eine zweite Abfrage hinzufügen, um zu überprüfen ob der Text überhaupt schon in einer Datei gespeichert wurde. ![]()
ZitatEs kommt immer ein Variablen-Fehler auf die $filesa bezogen...
Vielleicht verwendest du sie bevor du sie deklariert hast? Ich kann dir da nicht wirklich helfen ohne das Script zu sehen ;).
ZitatSchon klar, aber die Frage ist, der == Operator die Zeichenketten miteinader überprüft...
"==" ist ein Vergleichsoperator für Strings, der Groß-/Kleinschreibung berücksichtigt. Wenn du noch mehr über Operatoren wissen willst, dann gib mal in Scite "Operatoren" ein markiere den Text und drücke F1.
ZitatAber ich weiß garnet... ich hätte des anderster gemacht, also erst die $Ausgabe einlesen, dann den Text aus der Datei und dann miteinander vergleichen...
Genau das macht mein Beispiel auch... Nur ist bei mir $Edit die ID des EditControls und $Datei der Pfad zur Datei. ![]()
Du könntest es ja so in etwa machen:
[autoit]If GUICtrlRead($Edit) == FileRead($Date) Then ...
[/autoit]Wieso machst du nicht einfach mit einem externen Programm wie Paint o.Ä. ein Bild und lädst das dann in die GUI? ![]()
ZitatDa AutoIt auf Windows aufbaut kann es ja garkein OS werden. Es könnte höchstens eine Template werden quasi eine "Umgestaltung" des Designs. Nicht böse sein aber das wird nicht klappen. AutoIt ist eine Script Sprache mit der nur begrenztes möglich ist. Es ist möglich schnell und leicht etwas auf die beine zu stellen aber wird die sache komplizerter klappt es nicht mehr. Allein die Vorstellung das kein Thread möglich ist sollte einem zu denken geben. AutoIt ist um etwas zu automatisieren bzw kleine Programme zu schreiben eine tolle sache. Es ist eben nur eine Script sprache.
Das wurde doch hier schon in der einen oder anderen Form klargestellt, oder irre ich mich? ![]()
Ich hab geschrieben "$WS_SYSMENU + $WS_MAXIMIZEBOX". Wenn du die beiden Stile mit einem Komma trennst, dann wird der zweite wie ein weiterer Parameter behandelt (in diesem Fall als erwiterter Stil).
Wenn dann musst du es so schreiben:
$Form1_1 = GUICreate("Silbersurfer", 1032, 782, 192, 124,$WS_SYSMENU + $WS_MAXIMIZEBOX)
[/autoit]Happy Birthday Alina
!
Du hast garantiert nicht die Hilfe dazu verwendet... Da steht nämlich drin, dass du $WS_MAXIMIZEBOX in Kombination mit dem Stil $WS_SYSMENU verwenden sollst.
Also so: $WS_SYSMENU + $WS_MAXIMIZEBOX