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

Beiträge von Floooooo24

  • PNG mit transparenz in PDF einfügen

    • Floooooo24
    • 17. Juli 2024 um 18:57

    Tut mir leid das ich erst jetzt antworte, ich hat zwischenzeitlich keine Zeit weiter daran zu arbeiten.

    was ich geändert habe, ist:

    - es wird eine temporäre png statt einer Jpg erstellt
    - ich habe den Farbraum auf PXF32ARGB umgestellt, damit die Transparenten pixel bestehen bleiben
    - ich hab bei _GDIPlus_GraphicsClear die Farbe auf 0x00FFFFFF umgestellt
    - und im ersten _ToBuffer /FlateDecode statt /DCTDecode angegeben.

    Das was ich jetzt im Internet gelesen habe, scheint es aber recht aufwändig zusein ein PNG in ein PDF einzusetzten, wenn der Alpha kanal bestehen bleiben soll. Da man dafür die RGB werte vom A entfernt und dann mit /mask arbeitet.

    Ich bin jetzt dazu übergeangen einfach mit GDI+ die pngs übereinander zu legen.

  • PNG mit transparenz in PDF einfügen

    • Floooooo24
    • 13. Juli 2024 um 23:22

    Guten Abend,

    ich bin gerade am versuchen ein PNG Bild in ein PDF einzufügen, was auch ohne Probleme funktioniert. Dafür verwende ich die MPDF_UDF in der Version 103 (laut Ordnername)

    Mein Problem ist, dass die Bilder immer einen weißen Hintergrund haben, weil in der UDF die Datein in ein jpg umgewandelt werden. Und damit alle Tranzparenten pixel in weiße umgewandelt werden.

    Ich hab schon selbst versucht die UDF umzuschreiben, aber jetzt werden die Bilder nicht angezeigt. Hier ist der geänderte Code-teil:

    Code
    Func _LoadResImage($sImgAlias, $sImage)
    	Local $iW, $iH, $ImgBuf, $hImage, $hImageExt, $newImg, $hClone, $hGraphics, $iObj
    	If $sImgAlias = "" Then __Error("You don't have an alias for the image", @ScriptLineNumber)
    	If $sImage = ""  Then
    		__Error("You don't have any images to insert or the path is invalid",@ScriptLineNumber)
    	Else
    		$hImageExt = StringUpper(StringRight($sImage, 3))
    		Switch $hImageExt
    			Case "BMP", "GIF", "TIF", "TIFF", "JPG", "JPEG", "ICO";, "PNG"
    				$newImg = _TempFile(@ScriptDir, "~", ".jpg")
    				_GDIPlus_Startup()
    				$hImage = _GDIPlus_ImageLoadFromFile($sImage)
    				$iW = _GDIPlus_ImageGetWidth($hImage)
    				$iH = _GDIPlus_ImageGetHeight($hImage)
    				$hClone = _GDIPlus_BitmapCloneArea($hImage, 0, 0, $iW, $iH, $GDIP_PXF24RGB)
    				$hGraphics = _GDIPlus_ImageGetGraphicsContext($hClone)
    				_GDIPlus_GraphicsSetSmoothingMode($hGraphics, 2)
    				_GDIPlus_GraphicsClear($hGraphics, 0xFFFFFFFF)
    				_GDIPlus_GraphicsDrawImage($hGraphics, $hImage, 0, 0)
    				_GDIPlus_ImageSaveToFile($hClone, $newImg)
    				$ImgBuf = __ToBinary($newImg)
    				$_iImageW = $iW
    				$_iImageH = $iH
    				$iObj = __InitObj()
    				__ToBuffer("<</Type /XObject /Subtype /Image /Name /" & $sImgAlias & " /Width " & $_iImageW & " /Height " & $_iImageH & " /Filter /DCTDecode /ColorSpace /DeviceRGB /BitsPerComponent 8" & " /Length " & $iObj + 1 & " 0 R" & ">>")
    				__ToBuffer("stream" & @CRLF & $ImgBuf & @CRLF & "endstream")
    				__EndObj()
    				$_Image &= "/" & $sImgAlias & " " & $iObj & " 0 R " & @CRLF
    				__InitObj()
    				__ToBuffer(StringLen($ImgBuf))
    				__EndObj()
    				_GDIPlus_ImageDispose($hImage)
    				_GDIPlus_GraphicsDispose($hGraphics)
    				_GDIPlus_BitmapDispose($hClone)
    				_GDIPlus_Shutdown()
    				FileDelete($newImg)
    			Case "PNG"
    				$newImg = _TempFile(@ScriptDir, "~", ".png")
    				_GDIPlus_Startup()
    				$hImage = _GDIPlus_ImageLoadFromFile($sImage)
    				$iW = _GDIPlus_ImageGetWidth($hImage)
    				$iH = _GDIPlus_ImageGetHeight($hImage)
    				$hClone = _GDIPlus_BitmapCloneArea($hImage, 0, 0, $iW, $iH, $GDIP_PXF32ARGB)
    				$hGraphics = _GDIPlus_ImageGetGraphicsContext($hClone)
    				_GDIPlus_GraphicsSetSmoothingMode($hGraphics, 2)
    				_GDIPlus_GraphicsClear($hGraphics, 0x00FFFFFF)
    				_GDIPlus_GraphicsDrawImage($hGraphics, $hImage, 0, 0)
    				_GDIPlus_ImageSaveToFile($hClone, $newImg)
    				$ImgBuf = __ToBinary($newImg)
    				$_iImageW = $iW
    				$_iImageH = $iH
    				$iObj = __InitObj()
    				__ToBuffer("<</Type /XObject /Subtype /Image /Name /" & $sImgAlias & " /Width " & $_iImageW & " /Height " & $_iImageH & " /Filter /FlateDecode /ColorSpace /DeviceRGB /BitsPerComponent 8" & " /Length " & $iObj + 1 & " 0 R" & ">>")
    				__ToBuffer("stream" & @CRLF & $ImgBuf & @CRLF & "endstream")
    				__EndObj()
    				$_Image &= "/" & $sImgAlias & " " & $iObj & " 0 R " & @CRLF
    				__InitObj()
    				__ToBuffer(StringLen($ImgBuf))
    				__EndObj()
    				_GDIPlus_ImageDispose($hImage)
    				_GDIPlus_GraphicsDispose($hGraphics)
    				_GDIPlus_BitmapDispose($hClone)
    				_GDIPlus_Shutdown()
       				FileDelete($newImg)
    			Case Else
    				__Error("The image is invalid",@ScriptLineNumber)
    				Exit
    		EndSwitch
    	EndIf
    	Return $_Image
    EndFunc   ;==>_LoadResImage
    Alles anzeigen

    im Anhang ist noch ein PDF mit dem das die UDF normalerweiße aus gibt.("mit_JPG_Umwandlung.pdf")

    und das mit dem geändertem Code.("mit_PNG.pdf")

    Kann mir jemand helfen entweder den Code richtig zu ändern, oder mir eine UDF zeigen die Bilder in welchem Format auch immer mit transparenz einfügen kann?


    Vielen Dank schon mal

    Flo

    Dateien

    mit_JPG_Umwandlung.pdf 109,12 kB – 142 Downloads mit_PNG.pdf 58 kB – 167 Downloads
  • Datei per Skript ausführen

    • Floooooo24
    • 16. Mai 2023 um 16:45

    Vielen Dank dir

  • Datei per Skript ausführen

    • Floooooo24
    • 16. Mai 2023 um 15:54

    Hi Andy,

    Vielen Dank. Heißt Windows startet die ".exe" und hängt als Startparameter einfach den Dateipfad an?

  • Datei per Skript ausführen

    • Floooooo24
    • 16. Mai 2023 um 14:22

    Hallo zusammen,

    ich möchte ein Programm schreiben, welches gestartet wird, wenn man auf eine Datei mit der Endung ".Bsp" doppel Klickt (oder über "Öffnen mit" mein Programm auswählt). Das Programm soll dann eben diese Datei verarbeiten und Anzeigen.

    Ich finde aber leider nicht, wie ich das mache. Kann mir jemand einen Hinweis in die richtige Richtung geben?

    Vielen Dank

    Grüße

    Flo

  • Farbiger header der Listview verschwindet

    • Floooooo24
    • 3. Mai 2023 um 09:55

    Velted

    Vielen Dank, das war die Lösung. warum das ConsoleWrite das ganze auch behoben hat ist immer noch ein Wunder.

    Ich hab einfach noch eine abfrage für ungleich 1 eingefügt und es klappt:

    Code
    If $aPosControl[2] < $aPosLastSubitem[0] And ($aPosLastSubitem[2] - $aPosLastSubitem[0]) <> 50 Then
        If ($aPosLastSubitem[2] - $aPosLastSubitem[0]) <> 1
            _GUICtrlListView_SetColumnWidth($gListviewPoints, _GUICtrlListView_GetColumnCount($gListviewPoints)-1, 1)
        EndIf
    ElseIf $aPosControl[2] <> $aPosLastSubitem[2] Then
        _GUICtrlListView_SetColumnWidth($gListviewPoints, _GUICtrlListView_GetColumnCount($gListviewPoints)-1, $aPosControl[2] - $aPosLastSubitem[0])
    EndIf
  • Farbiger header der Listview verschwindet

    • Floooooo24
    • 25. April 2023 um 15:18

    Sers Velted,

    danke für deine Antwort.

    Der horizontale Scrollbalken stört mich schon. deswegen bearbeite ich auch die Nachricht "$HDN_ITEMCHANGEDW" und "$HDN_BEGINTRACKW" welche aber diesen Komischen Probleme mit dem Consolwirte haben.

    Weiß noch jemand weiter? Werden vielleicht irgendwelche Bilioteken oder Funktionen in Consolwrite aufgerufen oder eben nicht aufgerufen? ich habe den Code der hinter der Funktion steht leider nicht gefunden, da es wie s aussieht nicht um eine Bibliotek handelt, in welcher die Funktion ist.

    Mit freundlichen Grüßen

    Flo

  • Farbiger header der Listview verschwindet

    • Floooooo24
    • 20. April 2023 um 16:03

    Hi,

    ich bin dabei eine Listview farbig einfärben, was auch so weit mit diesem Code klappt:

    AutoIt
    ; *** Start added by AutoIt3Wrapper ***
    #include <GUIConstantsEx.au3>
    #include <HeaderConstants.au3>
    #include <ListViewConstants.au3>
    #include <StaticConstants.au3>
    #include <StructureConstants.au3>
    #include <WindowsConstants.au3>
    ; *** End added by AutoIt3Wrapper ***
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Add_Constants=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    
    #include <WinAPISysWin.au3>
    #include <GuiListView.au3>
    #include <GDIPlus.au3>
    
    #Region Variablen
        ;Color with 6-digit
        Global Const $iColorBK_GUI6 = 0x13161F
        Global Const $iColorCtrlActive_GUI6 = 0x353840
        Global Const $iColorText_GUI6 = 0xFFFFFF ;Text Color
         ;Color with 8-digit
        Global Const $iColorCtrlActive_GUI8 = 0xFF353840
        Global Const $iColorText_GUI8 = 0xFFFFFFFF ;Text Color
    
        ;Listview
        Global $aListviewColumNames = ["Column 1", "Column 2", "Column 3", ""]
        Global Const $tagNMCUSTOMDRAW = "struct;" & $tagNMHDR & ";dword dwDrawStage;handle hdc;" & $tagRECT & ";dword_ptr dwItemSpec;uint uItemState;lparam lItemlParam;endstruct"
    #EndRegion Variablen
    
    
    #Region - hGui
        #Region - Create GUI
            Global $hGUI = GUICreate("Masetcam Settings Switch", 500, 300);, -1, -1, BitOR($WS_POPUP, $WS_BORDER))
            GUISetBkColor($iColorBK_GUI6)
    
            ;Fenstergröße bestimmen
            Local $aWinPos = WinGetPos($hGUI)
            Global $GUI_Width = $aWinPos[2]
            Global $GUI_Height = $aWinPos[3]
        #EndRegion - Create GUI
    
    
        #Region - Main Gui
            Local $gListviewPoints = _GUICtrlListView_Create($hGUI, "", 10,10, 480, 280, -1,  $LVS_EX_FULLROWSELECT)
            _GUICtrlListView_SetBkColor($gListviewPoints, _WinAPI_SwitchColor($iColorCtrlActive_GUI6))
            _GUICtrlListView_SetTextColor($gListviewPoints, _WinAPI_SwitchColor($iColorText_GUI6))
            _GUICtrlListView_SetTextBkColor($gListviewPoints, _WinAPI_SwitchColor($iColorText_GUI8))
    
            _GUICtrlListView_AddColumn($gListviewPoints, "1Test Header", 100)
            _GUICtrlListView_AddColumn($gListviewPoints, "2Test Header", 100)
            _GUICtrlListView_AddColumn($gListviewPoints, "3Test Header", 100)
            _GUICtrlListView_AddItem($gListviewPoints, "Row 0: Col 0",0)
            _GUICtrlListView_AddSubItem($gListviewPoints, 0, "Row 0: Col 1", 1)
            _GUICtrlListView_AddSubItem($gListviewPoints, 0, "Row 0: Col 2", 2)
            _GUICtrlListView_AddItem($gListviewPoints, "Row 1: Col 0",0)
            _GUICtrlListView_AddSubItem($gListviewPoints, 1, "Row 1: Col 1", 1)
            _GUICtrlListView_AddSubItem($gListviewPoints, 1, "Row 1: Col 2", 2)
            _GUICtrlListView_AddItem($gListviewPoints, "Row 2: Col 0",0)
            _GUICtrlListView_AddSubItem($gListviewPoints, 2, "Row 2: Col 1", 1)
            _GUICtrlListView_AddSubItem($gListviewPoints, 2, "Row 2: Col 2", 2)
            _GUICtrlListView_AddItem($gListviewPoints, "Row 3: Col 0",0)
            _GUICtrlListView_AddSubItem($gListviewPoints, 3, "Row 3: Col 1", 1)
            _GUICtrlListView_AddSubItem($gListviewPoints, 3, "Row 3: Col 2", 2)
    
            GUISetState(@SW_SHOW, $hGUI)
        #EndRegion - Main Gui
    #EndRegion - hGui
    
    
    #Region - Activate Stuff
    ;GDIPlus starten
    _GDIPlus_Startup()
    
    ;Listview Header einfärben
    Global $hHeader = _GUICtrlListView_GetHeader($gListviewPoints) ;Get Header handle
    Global $hHdrFont = Listview_getHeaderFont($hHeader)
    
    ;WM_ Funktionen registieren
    GUIRegisterMsg($WM_Notify, "WM_NOTIFY")
    
    _GUICtrlListView_SetColumnWidth($gListviewPoints, _GUICtrlListView_AddColumn($gListviewPoints, "", 99), 50)
    
    _GUICtrlListView_BeginUpdate($gListviewPoints)
    _GUICtrlListView_EndUpdate($gListviewPoints)
    #EndRegion - Activate Stuff
    
    Func Listview_getHeaderFont($hHeader)
        Local $hDC = _WinAPI_GetDC($hHeader) ;Get Font of the Header Control
        Local $hFont = _SendMessage($hHeader, $WM_GETFONT)
        Local $hObject = _WinAPI_SelectObject($hDC, $hFont)
        Local $tLogFont = DllStructCreate($tagLOGFONT)
    
        _WinAPI_GetObject($hFont, DllStructGetSize($tLogFont), DllStructGetPtr($tLogFont))
        _WinAPI_SelectObject($hDC, $hObject)
        _winapi_ReleaseDC($hHeader, $hDC)
    
        Local $iWeight = DllStructGetData($tLogFont, "Weight")
        DllStructSetData($tLogFont, "Weight", $iWeight)
        $hHdrFont = _WinAPI_CreateFontIndirect($tLogFont)
    EndFunc
    
    
    #Region While
    While 1
        Switch GUIGetMsg() ;Empfängt alle klicks auf Buttons und verarbeitet diese
            Case $GUI_EVENT_CLOSE ;hGui (Main Gui)
                GUIDelete($hGUI) ;Gui löschen
                Exit
        EndSwitch
    WEnd
    #EndRegion While
    
    #Region Functions
    #STOP DBUG
    #Region - WM_Notify
    Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
        #forceref $hWnd, $iMsg, $iMsg, $iwParam
        Local $hWndFrom, $iCode, $tNMHDR, $tDropFiles, $hDrop, $aFileList, $sFileString
    
        $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
        $hWndFrom = HWnd($tNMHDR.hWndFrom)
        $iCode = $tNMHDR.Code
    
        Switch $hWndFrom
            Case $hHeader
                Switch $iCode
                    Case $NM_CUSTOMDRAW
                        Local $tNMCustomDraw = DllStructCreate($tagNMCUSTOMDRAW, $ilParam)
                        Local $dwDrawStage = DllStructGetData($tNMCustomDraw,"dwDrawStage") ;Draw stage abrufen
                        Switch $dwDrawStage
                            Case $CDDS_PREPAINT ;Stage bevor der Zeichen Prozess beginnt
                                Return $CDRF_NOTIFYITEMDRAW ;Notify parent window of any item related drawing operations
    
                            Case $CDDS_ITEMPREPAINT ;Before an item is drawn: Default painting (frames and background)
                                Return $CDRF_NOTIFYPOSTPAINT ; Notify parent window of any post item related drawing operations
    
                            Case $CDDS_ITEMPOSTPAINT ;After an item is drawn: Custom painting (item texts)
                                Local $iTextOffsetX = 0, $iTextOffsetY = 0, $sFont = "Arial", $iFontSize = 10, $iFontStyle = 0, $iAlign = 0, $iLineAlign = 1
    
                                Local $tRECT = DllStructCreate($tagRECT)
                                Local $iIndex = DllStructGetData($tNMCustomDraw, "dwItemSpec") ;Item index
                                Local $hDC = DllStructGetData($tNMCustomDraw, "hdc") ;Device context
                                _WinAPI_SelectObject($hDC, $hHdrFont) ;Set text font
                                _WinAPI_SetBkMode($hDC, 0xFF00A000) ;Transparent background
                                _WinAPI_SetTextColor($hDC, _WinAPI_SwitchColor($iColorText_GUI6)) ;Set text colour
                                ;Get header section size
                                $tRECT.Left = DllStructGetData($tNMCustomDraw, 6); + 1)
                                $tRECT.Top = DllStructGetData($tNMCustomDraw, 7); + 1)
                                $tRECT.Right = DllStructGetData($tNMCustomDraw, 8); - 1
                                $tRECT.Bottom = DllStructGetData($tNMCustomDraw, 9); - 1
    
                                ;GDI Starten und
                                ;Hintergrund
                                Local $hDCGrafik = _GDIPlus_GraphicsCreateFromHDC($hDC) ;Zechenfläche
                                Local $hBrush = _GDIPlus_BrushCreateSolid($iColorCtrlActive_GUI8) ;Rechteck ausfüllen
                                Local $hPen =_GDIPlus_PenCreate("0xFF" & Hex(_WinAPI_ColorAdjustLuma($iColorCtrlActive_GUI6, 20), 6)) ;Linien
                                ;Text
                                Local $hBrushTxt = _GDIPlus_BrushCreateSolid($iColorText_GUI8) ;Pinsel
                                Local $hFormat = _GDIPlus_StringFormatCreate() ;Format
                                Local $hFamily = _GDIPlus_FontFamilyCreate($sFont) ;Font Family
                                Local $hFont = _GDIPlus_FontCreate($hFamily, $iFontSize, $iFontStyle) ;Font
                                Local $tLayout = _GDIPlus_RectFCreate($tRECT.Left + $iTextOffsetX, $tRECT.Top+$iTextOffsetY, $tRECT.Right - $tRECT.Left, $tRECT.Bottom - $tRECT.Top) ;Rechteck in dem der String kommt
                                _GDIPlus_StringFormatSetAlign($hFormat, $iAlign) ;Width Ausrichtung
                                _GDIPlus_StringFormatSetLineAlign($hFormat, $iLineAlign) ;Hight Ausrichtung
    
                                ;Hintergurnd zeichnen
                                _GDIPlus_GraphicsFillRect($hDCGrafik, $tRECT.Left, $tRECT.Top, $tRECT.Right, $tRECT.Bottom, $hBrush)
                                _GDIPlus_GraphicsDrawLine($hDCGrafik, $tRECT.Left, $tRECT.Bottom-1, $tRECT.Right, $tRECT.Bottom-1, $hPen)
                                _GDIPlus_GraphicsDrawLine($hDCGrafik, $tRECT.Right-1, $tRECT.Bottom-1, $tRECT.Right-1, $tRECT.Top, $hPen)
    
                                ;Text schreiben
                                _GDIPlus_GraphicsDrawStringEx($hDCGrafik, $aListviewColumNames[$iIndex], $hFont, $tLayout, $hFormat, $hBrushTxt) ;Zeichnet den String
                                ;Resoursen frei geben
                                ;Bild
                                _GDIPlus_BrushDispose($hBrush)
                                _GDIPlus_PenDispose($hPen)
                                _GDIPlus_GraphicsDispose($hDCGrafik)
                                ;Text
                                _GDIPlus_BrushDispose($hBrushTxt)
                                _GDIPlus_FontDispose($hFont)
                                _GDIPlus_FontFamilyDispose($hFamily)
                                _GDIPlus_StringFormatDispose($hFormat)
    
                                Return $CDRF_NEWFONT ;$CDRF_NEWFONT must be returned after changing font or colors
                        EndSwitch
    
                    Case $HDN_BEGINTRACKW
                        Local $tNMHeader = DllStructCreate($tagNMHEADER, $ilParam)
                        Local $iIndex = $tNMHeader.Item
    
                        If $iIndex = _GUICtrlListView_GetColumnCount($gListviewPoints)-1 Then
                            Return True
                        Else
                            Return False
                        EndIf
    
                    Case $HDN_ITEMCHANGINGW
                        _GUICtrlListView_BeginUpdate($gListviewPoints)
    
                    Case $HDN_ITEMCHANGEDW
    ;~                     ConsoleWrite(" ")
    
    
                        ;Find Chanched-Item
                        Local $tNMHeader = DllStructCreate($tagNMHEADER, $ilParam)
                        Local $iIndex = $tNMHeader.Item
                        ;If Chanched-Item is the last one then return
                        If $iIndex = _GUICtrlListView_GetColumnCount($gListviewPoints)-1 Then
                            Return $GUI_RUNDEFMSG
                        EndIf
    
                        ;Get Positions and Sizes
                        Local $aPosControl = ControlGetPos($hGUI, "", $gListviewPoints)
                        Local $aPosLastSubitem = _GUICtrlListView_GetSubItemRect($gListviewPoints, 0, _GUICtrlListView_GetColumnCount($gListviewPoints)-1)
    
                        ;passt die Größe der letzten Spalte an, damit der Header immer mindestens so groß ist, wie die Listview und kein weißer rand entsteht.
                        If $aPosControl[2] < $aPosLastSubitem[0] And ($aPosLastSubitem[2] - $aPosLastSubitem[0]) <> 50 Then
    ;~                         ConsoleWrite("1" & @CRLF)
                            _GUICtrlListView_SetColumnWidth($gListviewPoints, _GUICtrlListView_GetColumnCount($gListviewPoints)-1, 1)
                        ElseIf $aPosControl[2] <> $aPosLastSubitem[2] Then
    ;~                         ConsoleWrite("2" & @CRLF)
                            _GUICtrlListView_SetColumnWidth($gListviewPoints, _GUICtrlListView_GetColumnCount($gListviewPoints)-1, $aPosControl[2] - $aPosLastSubitem[0])
                        EndIf
                        _GUICtrlListView_EndUpdate($gListviewPoints)
    
    
                EndSwitch
        EndSwitch
    
        Return $GUI_RUNDEFMSG
    EndFunc   ;==>WM_NOTIFY
    #EndRegion - WM_Notify
    #START DBUG
    #EndRegion Functions
    Alles anzeigen

    Damit der Weiße Bereich oben rechts verschwindet habe ich eine Weiter Spalte eingefügt, Welche man von hand nicht größer oder kleiner machen kann, dafür aber sich dafür aber automatisch bis zum Rechten rand ausdehnt, sobald man eine Spalte in der größe verändert.

    Das klappt auch und sieht so weit gut aus, bis die Vorletzte Spalte so groß ist, das eine scroll bar angezeigt wird, dann verschwinden die ganzen farbigen Header Elemente.

    Wenn man das erste oder die beiden unteren ";~" entfernt, dann funktioniert es, bis man es Compaliert, da dann scheinbar ConsolWrite nicht mehr ausgeführt wird oder es seine Magische Eigenschaft verliert.

    Kann mir da jemand helfen?

    Noch alles gut:

    Wärend Column 2 Größer gemacht wird und Colum 3 rechts zu groß ist:


    Mit freundlichen Grüßen

    Florian Etzel

  • Richedit Verlinken einer Datei per Drag-And-Drop

    • Floooooo24
    • 8. Februar 2023 um 16:34

    Hi,

    Velted danke dir, ich hab einiges davon gut verwenden und einbauen können.

  • Richedit Verlinken einer Datei per Drag-And-Drop

    • Floooooo24
    • 1. Februar 2023 um 14:13

    Hallo noch mal, ich habe nun die Lösung gefunden, welche nicht wirklich aufwendig ist, wenn man weiß, was alles zu tun ist. Die Lösung hab ich hier gefunden:

    Richedit : drag/drop .txt files and display content
    Hello I was used to drag and drop .txt files in Edit controls and then display the text at once But I got problems when trying to do the same with a Richedit…
    www.autoitscript.com

    Ich hab das skript von ihn abgeändert zu:

    C
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GuiEdit.au3>
    #include <GuiRichEdit.au3>
    #include <WinAPISys.au3>
    #include <Array.au3>
    
    
    Global Const $ES_NOOLEDRAGDROP = 0x08
    Global Const $tagDROPFILES  = $tagNMHDR & ";handle hDrop;long cp;bool fProtected"
    
    $gui = GUICreate("test", 600, 400, -1, 100)
    $hRichEdit = _GUICtrlRichEdit_Create($gui, "", 10, 10, 580, 380, BitOr($ES_NOOLEDRAGDROP, $ES_MULTILINE, $ES_WANTRETURN, $WS_VSCROLL, $ES_AUTOVSCROLL))
    _GUICtrlRichEdit_AutoDetectURL($hRichEdit, True)
    _WinAPI_DragAcceptFiles ($hRichEdit)
    _GUICtrlRichEdit_SetEventMask($hRichEdit, $ENM_DROPFILES)
    
    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
    
    GUISetState()
    While 1
      $nMsg = GUIGetMsg()
      Switch $nMsg
            Case $GUI_EVENT_CLOSE
                Exit
      EndSwitch
    WEnd
    
    
    Func WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)
        #forceref $iMsg, $wParam
        Local $hWndFrom, $iCode, $tNMHDR, $tDropFiles, $hDrop, $aFileList
        $tNMHDR = DllStructCreate($tagNMHDR, $lParam)
        $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
        $iCode = DllStructGetData($tNMHDR, "Code")
        Switch $hWndFrom
            Case $hRichEdit
                Switch $iCode
                    Case $EN_DROPFILES
                        ;Droped File Names extrahieren
                        $tDropFiles = DllStructCreate($tagDROPFILES, $lParam)
                        $hDrop = DllStructGetData($tDropFiles, "hDrop")
                        $aFileList = _WinAPI_DragQueryFileEx($hDrop, 0)
                        $sFileString = " File:" & _ArrayToString($aFileList, @CRLF & " File:", 1) & " "
    
                        Local $iCharPos = _GUICtrlRichEdit_GetCharPosFromXY($hWndFrom, _WinAPI_GetMousePosX(True, $hWndFrom), _WinAPI_GetMousePosY(True, $hWndFrom))
                        _GUICtrlRichEdit_SetSel($hWndFrom, $iCharPos, $iCharPos)
                        _GUICtrlRichEdit_InsertText($hWndFrom, $sFileString)
                        Return 1
                EndSwitch
        EndSwitch
        Return $GUI_RUNDEFMSG
    EndFunc   ;==>WM_NOTIFY
    
    
    Func _NewFile($newfile)
        $filetxt = FileRead($newfile)
        _GUICtrlRichEdit_SetText($hRichEdit, "")
        _GUICtrlRichEdit_AppendText($hRichEdit, $filetxt)
        _GUICtrlRichEdit_SetSel($hRichEdit, 0, 0)
    EndFunc
    Alles anzeigen

    Wichtig sind die Befehle:

    _WinAPI_DragAcceptFiles ($hRichEdit)

    _GUICtrlRichEdit_SetEventMask($hRichEdit, $ENM_DROPFILES)

    und wichtig ist, dass man in der WM_NOTIFY das ganze abfragt und verarbeitet und anschließend ein Retrun 1 sendet, wenn man nicht möchte, das die Standart Befehle für die Nachricht ausgeführt werden.

    und sobald man einmal den Befehl _GUICtrlRichEdit_SetReadOnly verwendet, funktioniert das ganze nicht mehr. Man kann aber mit _GUICtrlRichEdit_SetcharAttributes auf alle Charakter die eigenschaft "pr" setzen und auch wieder in WM_NOTIFY verarbeiten und einfach wenn $EN_Protect kommt Return 1 senden.

    Das man draufklicken kann kann man über $EN_Link erreichen.

  • Richedit Verlinken einer Datei per Drag-And-Drop

    • Floooooo24
    • 31. Januar 2023 um 12:57

    Es funktioniert schon alles so wie ich das möchte, nur was mir eben fehlt, ist das man Datein rin ein Richtextedit zeihen kann und diese dann per klick/doppel klick öffnen kann.

    Weiß jemand wie man das am besten anstellen kann?

  • Richedit Verlinken einer Datei per Drag-And-Drop

    • Floooooo24
    • 31. Januar 2023 um 12:03

    weil du sie nicht direkt öffnest. Das kam vielleicht falsch rüber:

    Es gibt einen Ordner der zu speichern von verschieden Text datein verwendet wird. In den Textdateien kann man sich organisieren, und den Stand von verschiedenen Projekten reinschreiben. Damit man einen Ort hat an welchem alles steht. Da man ja aber auch immer wieder die verschiedesten Datein hat, welche für das Projekt relevant sind, sollen diese auch dort verknüpft werden können. Damit man diese schneller findet und am besten auch direkt öffnen kann.

  • Richedit Verlinken einer Datei per Drag-And-Drop

    • Floooooo24
    • 31. Januar 2023 um 10:58

    Moombas, dass das Standart Programm verwendet werden soll, ist schon der Plan, ich hab die schwierigkeiten mit dem Auflisten der Datei, weil sie per Drag-And-Drop eingefügt werden sollen.

  • Richedit Verlinken einer Datei per Drag-And-Drop

    • Floooooo24
    • 31. Januar 2023 um 10:40

    Ich bin dabei ein Projektmanager zuschreiben, welcher alle Datein auflistet, welche in einem Ordner sind, und dort dann möglichkeiten bietet die text-Datei zu bearbeiten, zum Beispiel einen Eintrag mit Zeitstempel einzufügen, die Datein zu durch suchen und die Suchergebnisse dann unteranderem Hervorzuheben,...

    Jetzt bin ich gerade dabei, das man Datein ablegen kann, welche sich dann öffnen, sobald man draufklickt, aber es sollen eben die Orginalen Datein geöffnet werden.

  • Richedit Verlinken einer Datei per Drag-And-Drop

    • Floooooo24
    • 31. Januar 2023 um 09:20

    Hallo water,

    leider hat mir das nichts gebracht. Ich kann erkennen, wenn eine Drag-And-Drop-Aktion passiert ist, in dem ich schaue, was mir die funktion _GUICtrlRichEdit_GetNextUndo zurückgibt. Aber ich habe leider nicht rausgefunden, wie ich die Objekte, welche automatisch eingefügt werden, manipulieren kann, weil das für mich einfach nur sinnlose Zahlen und Buchstaben sind.

    Auch habe ich leider nicht rausfinden können, wie ich beeinflussen kann, was bei einem doppel klick auf ein solches Objekt passieren soll.

    Ich rede von diesen Objekten:

  • Richedit Verlinken einer Datei per Drag-And-Drop

    • Floooooo24
    • 30. Januar 2023 um 16:49

    Hallo zusammen,

    ich würde gerne in ein Richtextconrol Datein per Drag-and-Drop hinzufügen. Nur sollen sie als Verknüpft werden mit der Datei und nicht koppiert werden.

    MfG Flo

  • Switch Bitmap Flackert beim Deaktivieren

    • Floooooo24
    • 25. November 2022 um 13:07

    Danke für deine Hilfe aufjeden Fall!

    Weiß Jemand ob man das Blitzen unterdrücken kann?

  • Switch Bitmap Flackert beim Deaktivieren

    • Floooooo24
    • 25. November 2022 um 12:02

    Das bringt mir leider in meinem Anwendungsfall (Nicht in dem Beispiel) auch nicht das was ich brauche.

    Ich muss wissen, ob der Button deaktiviert wurde. Wie zum Beispiel mit _GUICtrlButton_Enable($gSwitch, False).

  • Switch Bitmap Flackert beim Deaktivieren

    • Floooooo24
    • 25. November 2022 um 09:51

    Danke fürs Verschieben

    - Die While Schleife war unbeabsichtigt, hab sie beseitig

    - da mir GUICtrlGetState($gSwitch) immer 80 zurück gibt, war das die einzige Möglichkeit, welche ich gefunden habe. Wie kann ich denn noch abfragen, ob das Control Deaktiviert ist?

    - Meine Titelbar ist immer 30, da ich sie selbst aus einem Lable erstelle im normal Fall.

  • Switch Bitmap Flackert beim Deaktivieren

    • Floooooo24
    • 25. November 2022 um 09:06

    Hallo zusammen,

    Mir ist gerade aufgefallen, das Ich den Falschen Ordner für diesen Post ausgewählt haben. Kann er bitte nach Hilfe & Unterstützung verschoben werden? GtaSpider

    Gruß Flo

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™