Hallo,
ja, wie gesagt, dann musst du für breite UND Höhe einen Vorfaktor haben.
Schick am besten mal ein Script/Schnipsel, wo man dein Problem sehen kann.
mfg
Hauke
Hallo,
ja, wie gesagt, dann musst du für breite UND Höhe einen Vorfaktor haben.
Schick am besten mal ein Script/Schnipsel, wo man dein Problem sehen kann.
mfg
Hauke
Hallo,
ja stimmt. Den Faktor immer neu zu berechnen ist quatsch, da hab ich einen Denkfehler gemacht. Du musst für die Vorfaktoren eben die beiden Werte IMMER einsetzen, die ich vorhin ausgerechnet habe. DANN gehts^^
#include<Misc.au3> ; Für Tastendrücke
#include<GDIPlus.au3> ; Für GDI+
#include<WindowsConstants.au3> ; Für $GUI_POPUP ( s.u. )
MsgBox(0, "", 'Mit "ESC" schließen')
; Ich Definiere hier schon die Breite/Höhe der GUI, damit man das ganze auch für eine andere Auflösung testen kann...
$GUI_BREITE = 1024;@DesktopWidth
$GUI_HOEHE = 768;@DesktopHeight
$hGui = GUICreate("", $GUI_BREITE, $GUI_HOEHE, @DesktopWidth / 2 - $GUI_BREITE / 2, @DesktopHeight / 2 - $GUI_HOEHE / 2);, $WS_POPUP)
GUISetState()
_GDIPlus_Startup()
$hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGui) ; Grafik-Context holen, damit man auf der GUI zeichnen kann
; Den Buffer lasse ich mal weg, sollte man aber eigentlich machen.
$VORFAKTOR_BREITE = 0.2604166666666
$VORFAKTOR_HOEHE= 0.46296296296296 ; Für 16:9 Bildschirme
;~ $VORFAKTOR_HOEHE= 0.347222222222222 ; Für 4:3 Bildschirme
_GDIPlus_GraphicsFillRect($hGraphics, $GUI_BREITE / 2 - ($GUI_BREITE * $VORFAKTOR_BREITE) / 2, $GUI_HOEHE / 2 - ($GUI_HOEHE * $VORFAKTOR_HOEHE) / 2, $GUI_BREITE * $VORFAKTOR_BREITE, $GUI_HOEHE * $VORFAKTOR_HOEHE) ; Zeichnet ein "Bild" ( schwarzes Viereck ) an die angegebenen Koordinaten
; X-Koordinate , Y-Koordinate , Breite , Höhe
while NOT _IsPressed("1B")
sleep(50)
WEnd
Zu beachten ist auch noch, dass bei einem 4:3 Bildschirm das Verhältniss zum Bild ein ganz anderes ist ( Logisch, da das Seitenverhältnis ein anderes ist ). Habe aber auch hierfür den passenden Vorfaktor hingeschrieben.
Um das zu umgehen kannst du am besten für die Höhe des Quadrates die Breite nehmen, sprich Höhe = Breite. Dann wird es auch ein Quadrat. ( Du kannst natürlich auch Breite = Höhe nehmen, dann ist die Größe nur eine andere, aber es GEHT auch ).
mfg
Hauke
Hallo,
das geht im Prinzip genauso. Ich habe bei meinem Bildschirm eine Auflösung von 1920x1080 Pixeln und das Bild war 500x500 Pixel breit.
Um das Verhäntniss Bild -> Bildschirm herzustellen musst du einfach folgendes rechnen:
Du kannst im Prinzip also 500/1920 rechnen. Nun hast du also den Vorfaktor für deine 500.
Das ganze bringst du dann so in dein Script ein:
#include<Misc.au3> ; Für Tastendrücke
#include<GDIPlus.au3> ; Für GDI+
#include<WindowsConstants.au3> ; Für $GUI_POPUP ( s.u. )
MsgBox(0, "", 'Mit "ESC" schließen')
$hGui = GUICreate("", @DesktopWidth, @DesktopHeight, 0, 0, $WS_POPUP)
GUISetState()
_GDIPlus_Startup()
$hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGui) ; Grafik-Context holen, damit man auf der GUI zeichnen kann
; Den Buffer lasse ich mal weg, sollte man aber eigentlich machen.
$GUI_BREITE = @DesktopWidth
$GUI_HOEHE = @DesktopHeight
$BILD_BREITE = 500
$BILD_HOEHE = 500
$VORFAKTOR = $BILD_BREITE / $GUI_BREITE ; Alles dynamisch behalten, falls man die Bildbreite ändern möchte
_GDIPlus_GraphicsFillRect($hGraphics, $GUI_BREITE / 2 - ($GUI_BREITE * $VORFAKTOR) / 2, $GUI_HOEHE / 2 - ($GUI_HOEHE * $VORFAKTOR) / 2, $GUI_BREITE * $VORFAKTOR, $GUI_HOEHE * $VORFAKTOR) ; Zeichnet ein "Bild" ( schwarzes Viereck ) an die angegebenen Koordinaten
; X-Koordinate , Y-Koordinate , Breite , Höhe
while NOT _IsPressed("1B")
sleep(50)
WEnd
Nun siehst du, dass das Quadrat nun nichtmehr quadratisch ist ( es sei denn du hast einen 1:1 Bildschirm ).
Um nun wieder ein Quadrat zu bekommen müssen wir nichtnur die Beziehung zur Breite, sondern auch zur Höhe herstellen:
Der Code sieht dann vollständigkeitshalber so aus:
#include<Misc.au3> ; Für Tastendrücke
#include<GDIPlus.au3> ; Für GDI+
#include<WindowsConstants.au3> ; Für $GUI_POPUP ( s.u. )
MsgBox(0, "", 'Mit "ESC" schließen')
$hGui = GUICreate("", @DesktopWidth, @DesktopHeight, 0, 0, $WS_POPUP)
GUISetState()
_GDIPlus_Startup()
$hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGui) ; Grafik-Context holen, damit man auf der GUI zeichnen kann
; Den Buffer lasse ich mal weg, sollte man aber eigentlich machen.
$GUI_BREITE = @DesktopWidth
$GUI_HOEHE = @DesktopHeight
$BILD_BREITE = 500
$BILD_HOEHE = 500
$VORFAKTOR_BREITE = $BILD_BREITE / $GUI_BREITE ; Alles dynamisch behalten, falls man die Bildbreite ändern möchte
$VORFAKTOR_HOEHE= $BILD_HOEHE / $GUI_HOEHE ; Alles dynamisch behalten, falls man die Bildbreite ändern möchte
_GDIPlus_GraphicsFillRect($hGraphics, $GUI_BREITE / 2 - ($GUI_BREITE * $VORFAKTOR_BREITE) / 2, $GUI_HOEHE / 2 - ($GUI_HOEHE * $VORFAKTOR_HOEHE) / 2, $GUI_BREITE * $VORFAKTOR_BREITE, $GUI_HOEHE * $VORFAKTOR_HOEHE) ; Zeichnet ein "Bild" ( schwarzes Viereck ) an die angegebenen Koordinaten
; X-Koordinate , Y-Koordinate , Breite , Höhe
while NOT _IsPressed("1B")
sleep(50)
WEnd
Ich hoffe ich konnte dir ein wenig weiterhelfen.
mfg
Hauke
Hallo,
soweit ich das Problem richtig verstehe, hast du ein paar Grafiken, die bei deiner Auflösung gut Positioniert sind, aber bei einer anderen nicht?
Sofern das der Fall ist habe ich hier ein paar Tipps:
Wie du schon richtig gesagt hast musst du das in Abhängigkeit zur Bildschirmbreiter/Höhe machen.
Beispiel:
Du möchtest ein Bild genau mittig im Bildschirm anzeigen, dann musst du das so machen:
#include<Misc.au3> ; Für Tastendrücke
#include<GDIPlus.au3> ; Für GDI+
#include<WindowsConstants.au3> ; Für $GUI_POPUP ( s.u. )
MsgBox(0, "", 'Mit "ESC" schließen')
$hGui = GUICreate("", @DesktopWidth, @DesktopHeight, 0, 0, $WS_POPUP)
GUISetState()
_GDIPlus_Startup()
$hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGui) ; Grafik-Context holen, damit man auf der GUI zeichnen kann
; Den Buffer lasse ich mal weg, sollte man aber eigentlich machen.
$GUI_BREITE = @DesktopWidth
$GUI_HOEHE = @DesktopHeight
$BILD_BREITE = 500
$BILD_HOEHE = 500
_GDIPlus_GraphicsFillRect($hGraphics, $GUI_BREITE / 2 - $BILD_BREITE / 2, $GUI_HOEHE / 2 - $BILD_HOEHE / 2, $BILD_BREITE, $BILD_HOEHE) ; Zeichnet ein "Bild" ( schwarzes Viereck ) an die angegebenen Koordinaten
; X-Koordinate , Y-Koordinate , Breite , Höhe
while NOT _IsPressed("1B")
sleep(50)
WEnd
Ich hoffe das hilft ein wenig. Habs auch kommentiert.
Ich nehme ( für Arengu ) immer einen Faktor für die Abhängigkeit. Hier habe ich ja " / 2" ( "Durch 2" ) gerechnet, in Arengu würde ich "* 0.5" schreiben. Somit kannst du ein Drittel des Bildschirms mit "* (1/3) " darstellen.
Ich hoffe das war ein wenig verständlich^^
Wenn du noch Fragen hast, dann Frag einfach
mfg
Hauke
ps.: Schick doch einfach einen FUNKTIONIERENDEN Code (-Schnipsel) mit, dann können wir dir ggf. besser helfen.
Hallo,
sind ja ganz interessante Wünsche und sehr verschieden. Keiner wünscht sich also Weltfrieden oder, dass keine Menschen mehr verdursten ( ich könnte jetzt sagen, dass ihr alle den Menschen Krieg und Dürreperioden wünscht aber das lass ich mal ).
autoBert:
Also nicht Frieden für die Welt, aber Frieden fürs Forum
mfg
Hauke
Hallo liebes Forum,
bald ist es wieder soweit und das Christkind steht schon in den Startlöchern. Nur noch ( von haute aus ) 12 Tage bis Heiligabend und da habe ich einfach folgende Frage an euch:
Was wünscht ihr euch zu Weihnachten?
Ich fang mal an:
Ich wünsche mir ...
... einen haufen elektronischen "Schnick-Schnack" ( für meine Mikrocontroller basteleien ).
... nen Flachbildschirm ( LG Flatron E2251 )
... ein neues Gehäuse für meinen Rechner ( Cieftec LF-01B )
alles eher technische Sachen, also weder Lego, noch Weltfrieden^^
Also, was ist mit euch, was wünscht ihr euch so?
mfg
Hauke
Hallo,
erstmal willkommen im Forum.
Zum lernen von AutoIt eignen sich neben der Hilfe-Datei die Beispiele im AutoIt3 Ordner. Wenn man sich die einfachsten raussucht und ein bisschen an den Befehlen schraubt, kann man mit manchem "AHA"-Effekt schon ein wenig was lernen.
Wenn du das ganze Audio-Visuell erleben möchtest, kannst du ja mal auf meinem Youtube-Kanel vorbeischauen.
Außerdem habe ich dort noch eine Anfangs-Tutorial Reihe , in der von Anfang an alles erklärt wird.
Viel Spaß mit den Videos!
mfg
Hauke
Hallo,
um erstmal die Syntax und die wirklichen Grundbefehle kennen zu lernen, kannst du dir ja mal meine Video Reihe ( 5 Videos ) angucken, die alles von Anfang an erklären. Wenn du dann weiter lernen möchtest, kannst du ja mal meinen Kanal durchstöbern ( auf YouTube ).
Zu den Anfangs-Tutorials
Zum YouTube-Kanal
mfg
Hauke
Hallo,
Sieht echt Hammer aus, RESPEKT!
EIne Frage: Gibts irgendwo ein WinAPI Tutorial für AutoIt?
mfg
Hauke
Danke^^
Der Link zum Blog heißt http://me-and-my-mc.blogspot.de/
ich sollte mehr kopieren anstatt selbst zu tippen
mfg
Hauke
Ich bin auch für nein, weil Windows 8 von der Benutzerfreundlichkeit einfach das aller letzte ist. Wenn du nicht gerade ein Tablet hast, oder die - ehemals - Metro-Oberfläche mit etwas Mühe abschaffen möchtest, dann nicht. Auch WENN, würde ich dir IMMER von Windows 8 abraten.
ABER: Du kannst ja Windows 8 RTM einfach in VirtualBox installieren und testen. Ich habs gemacht und bin absolut enttäuscht, da ich Win8 z.B. 2 Kerne ( minimal ), sowie 2 GB RAM geben musste, damit ich etwas flüssig arbeiten kann!!!
Also: Windows 8 ist für mich ein total Reinfall.
mfg
Hauke
Hallo,
ich habs endlich geschafft das LCD-Display an zu steuern, welches ich bekommen habe.
Ich hab natürlich gleich alles im Blog gepostet, also schaut doch mal vorbei, danke.
mfg
Hauke
Hallo,
Ob das schon bei der Eingabe geht, sprich, dass man Buchstaben und so garnicht erst eingeben kann weiß ich nicht.
Bei der überprüfung der Eingabe kann man allerdings folgendermaßen vorgehen:
if IsNumber($InputRead) Or $InputRead = "." Or $InputRead = "," Then ;...
[/autoit]
habs nicht getestet, aber müsste eigentlich funktionieren.
mfg
Hauke
Das heißt also, dass Riot ( von League of Legends ) bei jedem Summoner Showcase, jedem Patch Preview, etc. Youtube fragt, ob die das Video in ihre GUI einbetten dürfen?
mfg
Hauke
Also ich habs damals im Preview getestets und auf Tesktop gings. Ich weiß allerdings nicht wie das mit den Kacheln um Hauptmenü läuft, obs da auch irgendwie angezeigt wird.
Aber rein theoretisch läufts.
mfg
Hauke
Hallo,
Danke für eure positiven Kritiken. Die GUI ansich sieht bis jetzt noch etwas leer aus, aber das füllt sich schon noch ( hoffentlich wirds nicht zu unübersichtlich ).
WICHTIG!
Beim dreh des 1.5.1 Previews ist mir ein schwerwiegender Bug im Starter von 1.5.1 aufgefallen.
Ich habe nun eine neue Version rausgebracht, in der dieser Bug nicht mehr auftretet.
Alternativ kann man auch mit dem Updater einfach updaten.
[size=x-large]--- Download ---[/size] ( neue Version heißt auch 1.5.0 )
mfg
Hauke
Hallo,
auf meinem Blog hatte ich vor einiger Zeit mal angekündigt, dass ich ein Preview des momentanen Entwicklungsstandes mache. Heute habe ich dann ( passend zum Weekly Update #07 ) ein kleines Video gemacht.
!!! !!! !!!
Kritisiert bitte nicht die Zahlreichen Bugs!
Ich weiß, dass sie da sind und (noch) stören.
Beachtet bitte, dass 1.5.1 noch eine offene Baustelle ist
!!! !!! !!!
mfg
Hauke
Hallo,
ich habe zwar schon einen Beitrag diesbezüglich gepostet, aber deiner ist "etwas" kürzer und auch auf OSX gerichtet.
@TheShadow
GDI+ funktionierte schon seit 10.04 ( und früher ? ). Aber GANZ umsteigen würde ich nicht. Ich habs mal versucht, hab dann aber wieder Windows installiert. Ubuntu - bzw. Linux - ist zwar ein tolles System, aber für AutoIt und Spiele noch recht ungeeignet. Wenn es AutoIt und ein paar Spiele für Linux geben würde, dann läge Windows schon lange im Papierkorb von Ubuntu.
mfg
Hauke
Hallo,
16x16px (oder 32x32) für Titles der Karte
Ich nehme 32x32, weil die Felder doch schon recht groß sind. Da hat man dann schöne Details. Die 10x10 Grafiken waren halt nur zum Test des Systems gedacht. Bis ich allerdings die Mapgrafiken neu mache, dauert es laaaange^^
mfg
Hauke
Hallo,
ansich nciht schlecht, aber das Problem ist oft, dass ich halt am Code was machen muss, der momentan eine totale Baustelle ist. Nur ich weiß, was momentan funktionsfähig ist und was nicht^^.
Bei Grafiken sieht es schon ganz anders aus. Aber ich denke das passt eher ins Programmieranfragen-Forum.
Noch kann ich aber alles selber machen, aber ich werde, wenn es soweit ist, auch jedenfall mal was posten und evt. halt so eine art Wettbewerb draus machen.
mfg
Hauke