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

Beiträge von Ilse

  • Gdi+ Grafik speichern

    • Ilse
    • 24. Juli 2012 um 18:49

    gui ist schon klar.
    Aber wie kann man die System-Fonts und Größen verarbeiten.
    Gibt es da irgendwas mit api...

  • Gdi+ Grafik speichern

    • Ilse
    • 24. Juli 2012 um 18:36

    Hallo m-obi,

    ja genau so. Super!
    Darf ich nochwas fragen?

    Gibt es wie.Z.B. wie bei Word die Möglichkeit
    in einer Combo alle Schriftarten und Größen anzuzeigen.
    So daß man vorher per Laufzeit das ändern kann?
    Kannst du mir da einen Tip geben?

    Ich habe nichts gefunden.

    ;) Ilse

  • Gdi+ Grafik speichern

    • Ilse
    • 24. Juli 2012 um 18:23

    Hallo m-obi,

    hatte ich auch schon probiert.
    Dann wird einfach nur das Originalbild unter neuem Namen gespeichert.

    Aber es sollte ja mit dem Text abgespeichert werden.
    Und das geht nicht...

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <gdiplus.au3>
    #include <ScreenCapture.au3>
    #include <WinAPI.au3>

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

    $Form1 = GUICreate("Form1", 625, 443, 192, 124)
    GUISetState(@SW_SHOW)

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

    _GDIPlus_Startup()

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

    $hgraphics = _GDIPlus_GraphicsCreateFromHWND($form1)
    ;$Bild1 = _GDIPlus_ImageLoadFromFile(@ScriptDir&"\bk.jpg")
    $Bild1 = _GDIPlus_BitmapCreateFromFile(FileOpenDialog("Bild auswählen", @UserProfileDir, "Bilder (*.*)"))

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

    _GDIPlus_GraphicsDrawImage($hgraphics,$Bild1,0,0)
    _GDIPlus_GraphicsDrawString($hGraphics, "Das ist ein Text", 50, 10,"Arial","50")

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

    _GDIPlus_ImageSaveToFile($Bild1, @ScriptDir & "\GDIPlus.jpg")

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

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

    :( Grüße Ilse

  • Gdi+ Grafik speichern

    • Ilse
    • 24. Juli 2012 um 18:14

    Hallo,

    ich habe folgendes Problem:

    1. Ich öffne ein Bild
    2, Ich zeichne darauf Text

    und dann sollte alles unter einem neuen Namen abgespeichert werden.
    Aber das klappt nicht!

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <gdiplus.au3>
    #include <ScreenCapture.au3>
    #include <WinAPI.au3>

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

    $Form1 = GUICreate("Form1", 625, 443, 192, 124)
    GUISetState(@SW_SHOW)

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

    _GDIPlus_Startup()

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

    $hgraphics = _GDIPlus_GraphicsCreateFromHWND($form1)
    ;$Bild1 = _GDIPlus_ImageLoadFromFile(@ScriptDir&"\bk.jpg")
    $Bild1 = _GDIPlus_BitmapCreateFromFile(FileOpenDialog("Bild auswählen", @UserProfileDir, "Bilder (*.*)"))

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

    _GDIPlus_GraphicsDrawImage($hgraphics,$Bild1,0,0)
    _GDIPlus_GraphicsDrawString($hGraphics, "Das ist ein Text", 50, 10,"Arial","50")

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

    _GDIPlus_ImageSaveToFile($hGraphics, @ScriptDir & "\GDIPlus.jpg")

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

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


    Liebe Grüße
    Ilse ;)

  • Checkbox Textfarbe ändern

    • Ilse
    • 21. Juli 2012 um 09:30

    @ RR04,

    Danke nochmals, sieht gut aus.
    Muß jetzt leider schon wieder los.
    Ich hoffe daß ich am Wochenende alles hinbekomme.

    Schönes Wochenende
    und viele Grüße

    ;) Ilse

  • Checkbox Textfarbe ändern

    • Ilse
    • 20. Juli 2012 um 17:39

    Hallo RR04,

    danke für dein Beispiel.
    Ich bin noch am probieren und kämpfen. Muß da einiges ändern.
    Es gibt bei mir keine feste Größe.

    [autoit]


    For $i = 0 To 24 ;

    [/autoit]

    melde mich wieder.
    Kann etwas dauern...

    ;) Viele Grüße Ilse

  • Checkbox Textfarbe ändern

    • Ilse
    • 20. Juli 2012 um 15:32

    ...muß mich wieder melden.

    Die Arrays machen mir mal wieder das leben schwer!

    Wenn mein Loop so aussieht,
    wie kann ich daraus ein zweidimensionales array machen?
    ubound kann ich nicht verwenden

    Sieht so aus:

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

    For $i = 1 To $Split[0] - 1

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

    $chkName = StringTrimLeft($Split[$i], 3)

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

    $Checkbox[$i][0] = GUICtrlCreateCheckbox('', $Links + Int($i / $Zeilen) * $Abstand, $Oben + Mod($i, $Zeilen) * $Zwischen, 13, 13)
    $Checkbox[$i][1] = GUICtrlCreateLabel($chkName[$i][1], $Links + 20 + Int($i / $Zeilen) * $Abstand, $Oben + Mod($i, $Zeilen) * $Zwischen, 200, 50)
    next

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

    :( Ilse

  • Checkbox Textfarbe ändern

    • Ilse
    • 20. Juli 2012 um 15:13

    @ alle
    erstmal merci für eure Hilfe

    Das Beispiel v. $Var löst genau das Problem :rock:
    ...zweidimensionales Array


    Liebe Grüße
    an alle

    Ilse ;)

  • Checkbox Textfarbe ändern

    • Ilse
    • 20. Juli 2012 um 14:33

    Hallo $Var,

    muß mich kurz wieder melden.
    Wenn ich die checkboxen so erzeuge

    [autoit]


    For $i = 1 To $Split[0] - 1

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

    $chkName = StringTrimLeft($Split[$i], 3)

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

    $Checkbox[$i] = GUICtrlCreateCheckbox($chkName...

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

    next

    [/autoit]

    bedeutet das, ich kann $chkName nachträglich nicht mehr beeinflussen?
    Es geht mir nur um den "Bezeichner"

    Das heißt also, beim erzeugen müsste ich einmal die Checkbox ohne Bezeichner anlegen
    und dann die Positionen für das Label berechnen und erzeugen...?


    Grüße Ilse
    :(

  • Checkbox Textfarbe ändern

    • Ilse
    • 20. Juli 2012 um 14:04

    Hallo,

    ich möchte gerne für meine Checkboxen
    wenn sie angewählt sind, für die "Beschriftung" die Farbe ändern.

    Also:
    Es gibt eine Function.
    Beim aufrufen, werden betreffende Checkboxen abgehakt.

    [autoit]


    Func _Auswahl()
    GUICtrlSetState($Checkbox[9], $gui_checked)
    GUICtrlSetState($Checkbox[5], $gui_checked)
    GUICtrlSetState($Checkbox[19], $gui_checked)
    endfunc

    [/autoit]

    Soweit ok.

    Die Checkboxen wurden vorher so erzeugt

    [autoit]


    $Checkbox[$i] = GUICtrlCreateCheckbox($chkname, 10, 10, 120, 20)

    [/autoit]

    Die Frage:
    Wie kann ich $chkname farblich ändern, wenn die Funktion aufgerufen wird
    bzw. wenn geklickt wird.
    1 = blau und 0 = schwarz

    Das checken kann ich per Loop beeinflussen

    [autoit]


    For $i = 1 To $Split[0] - 1
    GUICtrlSetState($Checkbox[$i], $gui_unchecked)

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

    next

    [/autoit]

    aber ich komm nicht an $chkname!


    Liebe Grüße
    Ilse ;)

  • Objekte auf Gui aktualisieren

    • Ilse
    • 20. Juli 2012 um 10:32

    Hallo,

    ich konnte das Problem jetzt so lösen:

    [autoit]


    _GUICtrlTab_SetCurFocus($Tab1,2)
    _GUICtrlTab_SetCurFocus($Tab1,0)

    [/autoit]

    Grüße
    Ilse ;)

  • Objekte auf Gui aktualisieren

    • Ilse
    • 20. Juli 2012 um 09:28

    Guten Morgen m-obi,

    das ist die Checkbox Func()

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

    Global $language = ''
    Global $spaltenNr = 0
    Global $reihenAnzahl = 5
    Global $oben = 60
    Global $TabSheet1, $Form1_1
    Global $Checkbox, $CheckboxText

    $Split = StringSplit($lang, "|")
    Dim $Checkbox[$Split[0]]
    Dim $CheckboxText[$Split[0]]

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

    Func _Checkbox()
    For $i = 1 To $Split[0] - 1
    If $i > 2 Then
    If Mod($i - 1, $reihenAnzahl) = 0 Then $spaltenNr += 1
    EndIf
    $chkName = StringTrimLeft($Split[$i], 3)
    GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
    $Checkbox[$i] = GUICtrlCreateCheckbox($chkName & "-" & $i, 40 + 40 * $spaltenNr, $oben * $i - $spaltenNr * $oben * $reihenAnzahl, 35, 30)

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

    Next
    EndFunc

    [/autoit]

    ist alles viel Code, deswegen nur das wichtigste.

    Wie gesagt, wird alles erzeugt aber nicht gleich in der Gui angezeigt.
    Also:
    Beim Starten v. Scite F5 (run Script) ist TAB1 aktiv aber leer.
    Wird der Tab gewechselt und dann wieder TAB1 geklickt sind sie da!

    Hier wird die _Checkbox() aufgerufen

    Spoiler anzeigen
    [autoit]


    ;Gui.....
    GUISetState(@SW_SHOW)
    #EndRegion GUI section

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

    _checkbox(); Die chkBoxen werden erzeugt in TAB 1

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

    GUISetState(@SW_MAXIMIZE)

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

    While 1;..................

    [/autoit]

    Grüße
    Ilse ;)

  • Objekte auf Gui aktualisieren

    • Ilse
    • 20. Juli 2012 um 08:57

    Hallo,

    Ich lasse per Funktion Objekte auf der Gui in z.B. Tab1 erzeugen.
    Alles gut soweit

    [autoit]


    Func _Felder()
    If IsInt($TabSheet1) Then

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

    GUISwitch($Form1_1, $TabSheet1); Per GuiSwitch auf das Tab umschalten, auf welchem die Controls erstellt werden sollen
    _Checkbox() ; hier werden die Controls erstellt

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

    EndIf

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

    EndFunc ;==>_Felder

    [/autoit]

    Aber folgendes Problem tritt auf:
    Die Objekte werden danach nicht direkt in TAB1 gezeigt.
    Wechsele ich auf TAB 2 und dann Auf TAB1 zurück, dann sind sie da.

    Gibt es irgendein Befehl der nach dem erstellen der Controls sofort die Gui aktualisiert?


    Liebe Grüße
    Ilse ;)

  • Screenshot Problem

    • Ilse
    • 18. Juli 2012 um 17:21

    m-obi,
    schon gut...

    [autoit]


    _GDIPlus_GraphicsDrawStringCustom ($h_Graphics, 'Dein String', 20, 50, 11.5, 0xFFFF0000)
    _GDIPlus_GraphicsDrawStringCustom ($h_Graphics, '_GDIPlus_GraphicsDrawStringCustom', 20, 100, 9, 0xFF333333, 0, 1, 'Arial')

    [/autoit]

    Die 2. Zeile hat mich etwas verwirrt. Ich dachte wieso wird
    '_GDIPlus_GraphicsDrawStringCustom' nochmal aufgerufen

    Daß das String wie die Func heißt hat mich aufs Glatteis geführt.

    Dein 2. String ... und der Groschen wäre gleich gefallen. So kanns gehen...

    ;) Ilse

  • Screenshot Problem

    • Ilse
    • 18. Juli 2012 um 16:58

    ok...,

    war heute ein wenig zu viel für mich.
    Ich übe mal etwas und gehe alles nochmal in Ruhe durch.

    Dank euch für die Geduld mit mir
    Ich schließe mal den Thread
    kämpfe mich durch und melde mich wieder.


    Liebe Grüße
    Ilse ;)

  • Screenshot Problem

    • Ilse
    • 18. Juli 2012 um 16:05

    Hallo m-obi,

    hm... das ist mir schon klar.

    Beispiel: $nSize ändert die Größe

    [autoit]


    $n_Size - Font size to use for drawing

    [/autoit]

    OK
    Muß ich dann z.B.

    $nSize = 22
    außerhalb der Funktion Global deklarieren
    oder muß ich das in die Funktion ändern?.

    $n_Size
    ist in der Funktion drin. Muß ich den Wert 22
    z.B. so ändern

    [autoit]


    Func _GDIPlus_GraphicsDrawStringCustom ($h_Graphics, $s_String, $i_X, $i_Y, $n_Size = 22, $b_Color,

    [/autoit]


    Steh etwas auf dem Schlauch
    Muß mal ne Paue machen...

    :( Grüße Ilse

  • Screenshot Problem

    • Ilse
    • 18. Juli 2012 um 14:08

    Hallo,

    danke für die Info!

    Also ich meinte diese Funktion von $Var

    Spoiler anzeigen
    [autoit]


    ; #FUNCTION# ===================================================================
    ; Name ..........: _GDIPlus_GraphicsDrawStringCustom
    ; Description ...: Draw a customized string
    ; AutoIt Version : v3.3.6.1
    ; Syntax ........: _GDIPlus_GraphicsDrawStringCustom ($h_Graphics, $s_String, $i_X, $i_Y, $n_Size, $b_Color[, $i_Align = 0[, $i_Weight = 0[, $s_Font = 'Tahoma']]])
    ; Parameter(s): .: $h_Graphics - Handle to a Graphics object
    ; $s_String - String to be drawn
    ; $i_X - X coordinate where the string will be drawn
    ; $i_Y - Y coordinate where the string will be drawn
    ; $n_Size - Font size to use for drawing
    ; $b_Color - Alpha, Red, Green and Blue components
    ; $i_Align - The alignment can be one of the following:
    ; |0 - The text is aligned to the left
    ; |1 - The text is centered
    ; |2 - The text is aligned to the right
    ; $i_Weight - The style of the typeface. Can be a combination of the following:
    ; |0 - Normal weight or thickness of the typeface
    ; |1 - Bold typeface
    ; |2 - Italic typeface
    ; |4 - Underline
    ; |8 - Strikethrough
    ; $s_Font - Name of the Font Family
    ; Return Value ..: Success - True
    ; Failure - False
    ; Author(s) .....: $var
    ; ==============================================================================
    Func _GDIPlus_GraphicsDrawStringCustom ($h_Graphics, $s_String, $i_X, $i_Y, $n_Size, $b_Color, $i_Align = 0, $i_Weight = 0, $s_Font = 'Tahoma')
    Local $a_CreateSolidFill, $a_CreateStringFormat, $a_CreateFontFamilyFromName, $a_CreateFont, $t_Struct, $p_Layout, $a_Return
    $a_CreateSolidFill = DllCall ($ghGDIPDll, 'int', 'GdipCreateSolidFill', 'int', $b_Color, 'dword*', 0)
    $a_CreateStringFormat = DllCall ($ghGDIPDll, 'int', 'GdipCreateStringFormat', 'int', 0, 'word', 0, 'ptr*', 0)
    $a_CreateFontFamilyFromName = DllCall ($ghGDIPDll, 'int', 'GdipCreateFontFamilyFromName', 'wstr', $s_Font, 'ptr', 0, 'handle*', 0)
    $a_CreateFont = DllCall ($ghGDIPDll, 'int', 'GdipCreateFont', 'handle', $a_CreateFontFamilyFromName[3], 'float', $n_Size, 'int', $i_Weight, 'int', 3, 'ptr*', 0)
    $t_Struct = DllStructCreate ($tagGDIPRECTF)
    $p_Layout = DllStructGetPtr ($t_Struct)
    DllStructSetData ($t_Struct, 'X', $i_X)
    DllStructSetData ($t_Struct, 'Y', $i_Y)
    DllStructSetData ($t_Struct, 'Width', 0)
    DllStructSetData ($t_Struct, 'Height', 0)
    DllCall ($ghGDIPDll, 'int', 'GdipSetStringFormatAlign', 'handle', $a_CreateStringFormat[3], 'int', $i_Align)
    $a_Return = DllCall ($ghGDIPDll, 'int', 'GdipDrawString', 'handle', $h_Graphics, 'wstr', $s_String, 'int', -1, 'handle', $a_CreateFont[5], _
    'ptr', $p_Layout, 'handle', $a_CreateStringFormat[3], 'handle', $a_CreateSolidFill[2])
    Return $a_Return[0] = 0
    EndFunc ;==> _GDIPlus_GraphicsDrawStringCustom

    [/autoit]

    Er meinte daß man damit die Stringattribute u.v.m. einfach ändern kann.
    Und meine Frage war, was ich an der Func ändern muß?

    Wenn ich z.B. die Schriftart und Größe ändern will
    was muß ich da an der Funktion ändern?


    ?( Grüße Ilse

  • Screenshot Problem

    • Ilse
    • 18. Juli 2012 um 12:55

    Hallo $Var,

    noch kurz ne Frage:

    Die Funktion verwirrt mich noch etwas:
    Wo genau muß ich was ändern?

    [autoit]


    ; $s_Font - Name of the Font Family

    [/autoit]

    Muß ich das aktivieren? Oder die Zeile in die Funktion einbauen?

    [autoit]


    $s_Font = "Arial"

    [/autoit]

    ?( Ilse

  • Screenshot Problem

    • Ilse
    • 18. Juli 2012 um 12:47

    Hallo $Var,

    merci für deine Hilfe!
    Und den GDI Link...

    Naja, sieht alles mächtig aus...ich melde mich dann nächstes Jahr wieder. ;)

    Mach mich gleich dran und arbeite mich mal rein.

    Vielen Dank

    Liebe Grüße
    Ilse ;)

  • Screenshot Problem

    • Ilse
    • 18. Juli 2012 um 12:24

    Hallo $Var,

    super das klappt.
    Eine GDI Frage noch:

    Wie kann man die Schriftattribute ändern?
    Hab das in der Hilfe gefunden

    [autoit]


    $hFormat = _GDIPlus_StringFormatCreate()
    $hFamily = _GDIPlus_FontFamilyCreate("Arial")
    $hFont = _GDIPlus_FontCreate($hFamily, 12, 2)
    $tLayout = _GDIPlus_RectFCreate(140, 110, 100, 20)

    [/autoit]

    Wenn ich z.B. diese Zeile habe

    [autoit]


    Local $hImage = WTOB($iFile, Clipget(), "Arial", 40, 200, 200, 2, 2)

    [/autoit]

    Wo finde ich, daß die Schrift z.B. rot, blau...ausgefüllt wird?
    Bin in der Hilfe noch nicht so ganz durchgestiegen...

    Gibt es vielleicht irgendwo ein GDIPlus Tutorial?

    :( Grüße Ilse

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™