Nochwas zu HotKeys. Diese sollte man nicht mit einer GUI verwenden, da sind GuiSetAccelerator wesentlich besser geeignet, da diese von Haus aus nur für die jeweilige GUI gelten.
HotKeys sind nur sinnvoll für systemweite Anwendungen.
Beiträge von BugFix
-
-
WM-Messages wertest du aus, durch registrieren einer Funktion dazu:
AutoIt
Alles anzeigen#include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> Opt("GUIOnEventMode", 1) $hGui = GUICreate("Test") GUISetOnEvent($GUI_EVENT_CLOSE, '_ende') $cInput = GUICtrlCreateInput('', 50, 20, 100, 20) GUISetState(@SW_SHOW) GUIRegisterMsg($WM_COMMAND, "WM_COMMAND") While True Sleep(100) WEnd Func _ende() Exit EndFunc Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam) Local $hWndFrom, $iIDFrom, $iCode, $hWndEdit = GUICtrlGetHandle($cInput) $hWndFrom = $ilParam $iCode = BitShift($iwParam, 16) ; Hi Word Switch $hWndFrom Case $hWndEdit Switch $iCode Case $EN_CHANGE ; Sent when the user has taken an action that may have altered text in an edit control Local $sRead = ControlGetText($hWnd, '', $iIDFrom) If StringRegExp($sRead, ',\Z') Then ; last Input = ',' ControlSetText($hWnd, '', $iIDFrom, StringTrimRight($sRead, 1)) ; Komma abschneiden ControlSend($hWnd, '', $iIDFrom, '{END}') ; Cursor ans Ende setzen EndIf EndSwitch EndSwitch Return $GUI_RUNDEFMSG EndFunc ;==>WM_COMMAND -
Eigentlich gibt es nur ein einziges Problem:
Wir sind auf eine neue Forensoftware(version) umgezogen.Und das ist genau, wie bei den Windows-Updates: häufig geht das erbarmungslos in die Hose.
Mir erschließt sich bis heute nicht, warum dieser Umzug durchgeführt wurde. Ich bin der Meinung, was läuft, sollte man auch laufen lassen.
Nun ist das aber passiert. Und wie es aussieht, sind weit intensivere administrative Eingriffe erforderlich um aus diesem Webseiten-Haufen wieder ein Forum zu machen, als im Vorfeld gedacht. Was Zeit/Lust etc. auf Adminseite angeht, kann ich nicht einschätzen, warum hier kaum etwas vorangeht. Kosten dürften wohl eher kein Problem darstellen, wenn finanzieller Bedarf war, haben wir bisher immer in kürzester Zeit diesen decken können.@Gun-Food - Sofern du das liest, wäre es nett, wenn du mal eine klare Ansage machen könntest, wie der aktuelle Status ist und ob ein Zeitplan zum Lösen der Probleme besteht.
-
OMG - ich werde echt alt.
Vergesst, was ich sagte. Ich bin mental die ganze Zeit auf "User-Abbrevs" aus gewesen anstatt auf "User-Calltips".
Da ich die Calltips nicht verwende ist mir das Problem auch nie aufgekommen.
Also Sorry für die Verwirrung, die ich gestiftet habe.@opaed Ich glaube aber, du hast da etwas in den falschen Hals bekommen. Meine Hinweise waren tatsächlich als Hilfe gemeint und nicht als irgendeine Form der Zurechtweisung. Das maße ich mir nicht an. Und wer lange genug dabei ist, der hat bestimmt schon mal mitbekommen, wie es aussieht, wenn ich dann mal etwas "intensiver" werde. Was im Normalfall nur beim Thema Bots passiert.
Also frag weiter, wenn was unklar ist.Was die Zeichenzahl angeht:
SciTE ist in der Größe der Dokumente nur vom verfügbaren Speicher abhängig. Das heißt, du kannst bequem 2GB-Dateien (oder mit einem 64Bit-SciTE 4GB-Dateien) öffnen. Die tatsächlich genutze Speichergröße ist dann aber deutlich größer, da Positions- und Styleinformationen sowie Folding hinzukommen. -
Die SciTEUser.properties ist im Normalfall erstmal gänzlich nackich.
Sie dient nur dazu Standardeinstellungen zu überschreiben. Dazu muß man wissen, wie die Properties geladen werden.
1. Globale Einstellungen
2. Anwendungsspezifische Einstellungen (au3.properties)
3. SciTEUser.propertiesErstmal werden also alle Einstellungen aus der Globalen geladen, diese kann man dann für die jeweilige Anwendung überschreiben oder letztlich weitere Änderungen durch den User vornehmen.
Es gibt aber auch Properties, die nur hardcodiert vorliegen aber trotzdem existieren und verändert werden können. Ist vergleichbar als ob du in einem Skript versuchst einen INI-Schlüssel zu lesen und wenn er nicht existiert diesen mit Standardwerten anlegst.Um das gegen zu prüfen lösche doch die Property einfach - das wird nichts am Verhalten ändern.

-
Falls du mir nicht glaubst - teste es.
Ich habe in meinem bisherigen Schaffen schon mindestens 20 SciTE-Installationen hinter mir. In meinen Tools verwende ich auch massig die Möglichkeit von Zeilenumbrüchen die auch immer erkannt werden. Noch nie mußte ich diese Property setzen. Aber vielleicht hat meine SciTE-Installation einfach Schiß vor meiner unbändigen Rache und tut unkonfiguriert, was es soll...

Im Übrigen habe ich bereits 2007 ein Tool für UserCalltips geschrieben, und das setzt die Zeilenumbrüche auch sauber ein. Auch bei allen, die das Tool nutzen funktioniert es ohne Setzen einer extra Property.
Apropos Suche: Ich gehe für Forum-Suche ausschliesslich über Google. site:autoit.de SUCHBEGRIFF
-
Nun wollte ich wenn der Benutzer eines anklickt (markiert) das Covers größer machen.
Dann blende es in dem Moment doch einfach in einem extra Fenster gezoomt an dieser Stelle ein.
-
Wie lange sind rückblickend Anhänge im Forum verfügbar?
Normalerweise unbegrenzt.
Warum wurden damals Threads wie eben genannter geschlossen?
Das passierte im Zusammenhang mit Forenumzug auf neue Version (hier bereits beim vorletzten mal). Damals wurden nur die meisten Post geschlossen. Diesmal wurde alle Anhänge geschreddert. Ob das wiederhergestellt werden kann/wird steht noch in den Sternen.
-
Na dann nimm doch direkt FileZilla. Damit kannst du auch synchronisieren.
Entweder Lokal als Basis und Server wird synchronisiert oder in Gegenrichtung.
Ich verwende ausschliesslich FZ zur FTP-Kommunikation.Edit:
Falls du suchst, es gibt keinen eigenen Punkt Synchronisation. Das legst du in den Settings für Up-/Download fest. Mit "Überschreiben, wenn Quelle neuer" wird auf das Zielsystem nur kopiert, wenn die Quelle neuer ist. Es gibt auch noch andere Optionen (neuer oder unterschiedliche Größe), das kannst du dann nach Geschmack bestimmen.
Dann einfach kpl. Ordner markieren und up- od. downloaden. Was sich nicht geändert hat wird einfach übersprungen. -
Ist mein Vorhaben überhaupt möglich ?
Die max. Größe für die Images legst du beim Erstellen der Imagelist fest. Und diese Größe ist für alle Elemente bindend.
Eine individuelle Anpassung für einzelne Elemente läßt sich möglicherweise mittels Ownerdraw realisieren. Dann mußt du aber die kpl. Verwaltung des Listview (zeichnen, Text zuweisen, Größe festlegen, etc.) auch selbst realisieren. Ein gehöriger Aufwand.
Warum skalierst du größere Images nicht einfach auf die Standard-Höhe, ist doch der einfachste Weg? -
-
calltip.*.use.escapes=1
Im Normallfall muß diese Einstellung nicht gesetzt werden. Gibt es diese Property nicht, ist der Default-Wert 1.
Auch mußt du nicht zwingend diee Scintilla-Doku durchforsten. Hier im Forum findest du gerade zur SciTE-Konfiguration reichlich Hinweise und PlugIns.
-
Nun werde mal konkret:
- was für eine Datei ist offen (Suffix)
- welche Hilfedatei soll geöffnet werdenWenn du die AutoIt-Hilfe ersetzen willst, dann sag das bitte. AutoIt nutzt keine *.chm sondern eine *.exe als Hilfedatei, bzw. mit der exe wird die chm aufgerufen.
Die Dateianhänge fehlen bei allen Threads, die sind bei der Forum-Umstellung geschrottet worden.

-
Kannst du in SciTE einbinden mit:
command.help.FILEPATTERN=$(CurrentWord)!C:\DEINE\HILFE.chm
FILEPATTERN = *.suffix - also *.py oder *.lua
Ein zweiter Eintrag ist noch erforderlich:
command.help.subsystem.FILEPATTERN=4Diese Hilfe wird dann automatisch über F1 angesprochen. Also eine Hilfe für ein Sprache, wo schon eine Hilfe existiert (also wie bei *.au3) geht natürlich nicht über F1.
Achja, hatte ich vergessen zu erwähnen: Eintrag erfolgt in SciTEUser.properties Menü: <Optionen><Benutzereinstellungen>
-
Also dass der IE es nicht so hat mit der Umsetzung von Normen ist ja nix Neues. Aber dass im IE sich nicht mal ein Background-Image anzeigen läßt, hat mich dann doch etwas irritiert (oder besser schockiert). Durch Zufall hatte ich ein Tut von mir im IE geöffnet und mich gewundert, dass der BG weg ist. Jetzt habe ich mal weitere Seiten im IE angeschaut -- überall dasselbe, es werden keine BG-Bilder angezeigt. ???
Ich vermute mal, der IE ist einfach zu doof um body { background: url("pict_url") } zu verstehen. Aber auch Versuche mit body { background-image: ("pict_url") } schlugen fehl.Daher mal meine Frage an jene, die noch den IE nutzen: Wie kann ich dort Hintergrundbilder anzeigen? Meine Websites lassen sich inzwischen auf allen Mobilgeräten und allen Browsern ansehen - ausser dem IE. Naja - vielleicht ist das ja ein besonderes Qualitätsmerkmal.

EDIT:
Ha-Ha-Ha - was für ein Ei. Auf dem PC war 'Bilder anzeigen' bei den IE-Einstellungen nicht aktiv. Also, IE ist doch nicht ganz so doof, wie gedacht.
-
-
So, ich hab den Fehler gefunden.
Die Imagelist muss dem Listview zugeordnet werden bevor Item hinzugefügt werden:AutoIt
Alles anzeigen#include <GuiImageList.au3> #include <GuiListView.au3> _Main() Func _Main() Local $hImage, $hListView GUICreate("ListView: Setzt die Imagelist", 800, 620) $hListView = GUICtrlCreateListView("test", 2, 2, 750, 550) _GUICtrlListView_SetColumnWidth($hListview, 0, 105) $hImage = _GUIImageList_Create(100, 150) ;~ _GUIImageList_SetIconSize($hImage, 100, 150) For $i = 0 To 20 _GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($hListView, _RandomRGB(), 100, 150)) Next Local $hPrevImageList = _GUICtrlListView_SetImageList($hListView, $hImage, 1) ;== ImageList muss zugeordnet werden bevor!! Item zugefügt werden For $i = 0 To 20 _GUICtrlListView_AddItem($hListView, "Item " & $i, $i) Next GUISetState() Do Until GUIGetMsg() = -3 GUIDelete() EndFunc ;==>_Main Func _RandomRGB() Local $iR = Random(0,255,1), $iG = Random(0,255,1), $iB = Random(0,255,1) Return "0x" & Hex($iR,2) & Hex($iG,2) & Hex($iB,2) EndFunc -
Mangels Bildern kann ich mit deinem Code wenig anfangen. Du solltest versuchen, ein auf jedem PC lauffähiges Musterskript zu erstellen, das deinen Fehler beinhaltet.
Meiner Meinung nach verursachen die Images das Verhalten.
Übrigens brauchst du die Images nicht zählen. Beim Hinzufügen zur Imagelist wird der Index für dieses Image zurückgegeben (Hilfe lesen hilft).AutoIt
Alles anzeigenGlobal $anzahl_zeile = 0 ; Wozu?? For $anzahl_array = 1 To UBound($array_dateien) - 1 _GUIImageList_AddBitmap($hImage, $array_dateien[$anzahl_array][0] & "#cover.bmp") ;Bild hinzufügen ; BESSER: $iNewIndex = _GUIImageList_AddBitmap($hImage, $array_dateien[$anzahl_array][0] & "#cover.bmp") ;Bild hinzufügen ;~ $anzahl_array = $anzahl_array + 1 ;Nur wenn Film vorhanden zähle Bild eingefügt zähle eine Zeile weiter zum Film ;~ _GUICtrlListView_AddItem($idListview, "test", $anzahl_zeile) ;Leerer Text für "Cover" _GUICtrlListView_AddItem($idListview, "", $iNewIndex) ;Leerer Text für "Cover" ; wozu soll $anzahl_zeile gut sein? $anzahl_zeile = $anzahl_zeile + 1 ;Am Ende die geschriebene Zeile um eins erhöhen Next -
Und wenn ich schon mal schreibe, kann ich die Beträge auch mit 1.000 er Trennpunkt darstellen?
AutoIt
Alles anzeigen; === Formatierter Währungsstring ; Ausgabe Euro, Standard-Währungseinstellung ConsoleWrite(_FormatCurrency(200*12345) & @CRLF) ; ==> 2.469.000,00 € ; Ausgabe Dollar, Währungssymbol führend ConsoleWrite(_FormatCurrency(-200*12345, -1, -1, ' , -1, 1) & @CRLF) ;==> $ -2.469.000,00 ; Ausgabe Dollar, Währungssymbol führend, negativer Wert in Klammern ConsoleWrite(_FormatCurrency(-200*12345, -1, -1, ' , -1, 1, 1) & @CRLF) ;==> [$ -2.469.000,00] ; Ausgabe Euro, mit Vornull ConsoleWrite(_FormatCurrency(4/80) & @CRLF) ;==> 0,05 € ; Ausgabe Euro, ohne Vornull ConsoleWrite(_FormatCurrency(4/80, -1, -1, -1, 0) & @CRLF) ;==> ,05 € ;=============================================================================== ; Function Name...: _FormatCurrency ; Description.....: Formatiert einen Ausdruck als Währung ; Parameter(s)....: $iExpression der zu formatierende Ausdruck ; Requirement(s)..: $iNumDigit Anzahl Nachkommastellen, -1 = Währungseinstellung PC (Standard) ; $iGroupDig Anzahl Zeichen für Gruppierung, -1 = 3 Zeichen (Standard) ; $sCurr Währungszeichen, -1 = Währungseinstellung PC (Standard) ; $iLeadingZero Führende Null anzeigen, -1 = Währungseinstellung PC (Standard), 0 = nein ; $fLeadingSign Währungszeichen führend anzeigen, 0 = nein (Standard) ; $fNegNumInPara Negative Werte in eckigen Klammern anzeigen, 0 = nein (Standard) ; Return Value(s).: Der formatierte Währungsstring ; Note............: Die Gruppierung ermöglicht maximal 8 Blöcke ; Author(s).......: BugFix (bugfix@autoit.de) ;=============================================================================== Func _FormatCurrency($iExpression, $iNumDigit=-1, $iGroupDig=-1, $sCurr=-1, $iLeadingZero=-1, $fLeadingSign=0, $fNegNumInPara=0) Local $sRegKey = 'HKCU\Control Panel\International', $sReturn, $aTmp, $sTmp, $sNul = '000000000', $fNeg = 0 Local $sDec = RegRead($sRegKey, 'sMonDecimalSep'), $sThousand = RegRead($sRegKey, 'sMonThousandSep') Local $sNegative = RegRead($sRegKey, 'sNegativeSign') If $iGroupDig < 0 Then $iGroupDig = 3 If $sCurr = -1 Then $sCurr = RegRead($sRegKey, 'sCurrency') If $iNumDigit = -1 Then $iNumDigit = RegRead($sRegKey, 'iCurrDigits') If $iLeadingZero = -1 Then $iLeadingZero = RegRead($sRegKey, 'iLZero') If IsFloat($iExpression) Then $iExpression = Round($iExpression, $iNumDigit) $sReturn = String($iExpression) If $iNumDigit Then $aTmp = StringSplit(String($iExpression), '.') $sReturn = $aTmp[1] & Chr(29) & StringLeft($aTmp[2] & $sNul, $iNumDigit) EndIf Else $sReturn = String($iExpression) If $iNumDigit Then $sReturn = String($iExpression) & Chr(29) & StringLeft($sNul, $iNumDigit) EndIf If Not $iLeadingZero And StringRegExp($sReturn, '^-?0' & Chr(29) & '\d*') Then $sReturn = StringReplace($sReturn, '0' & Chr(29), Chr(29), 1) If $iGroupDig > 0 And StringLen(Abs($sReturn)) >= $iGroupDig Then $aTmp = StringRegExp(StringReplace($sReturn, '.', Chr(29)), _ "(-?\d{1,"&$iGroupDig&"})(\d{"&$iGroupDig&"})?(\d{"&$iGroupDig&"})?(\d{"&$iGroupDig&"})?(\d{"&$iGroupDig&"})?(\d{"&$iGroupDig&"})?(\d{"&$iGroupDig&"})?(\d{"&$iGroupDig&"})?(?:\Z|("&Chr(29)&"\d+))", 3) For $i = 0 To UBound($aTmp) -1 If $aTmp[$i] <> '' Then $sTmp &= $sThousand & $aTmp[$i] Next $sReturn = StringTrimLeft(StringReplace($sTmp, $sThousand&Chr(29), Chr(29)), 1) EndIf If StringLeft($sReturn, 1) = '-' Then $fNeg = 1 $sReturn = StringReplace(StringReplace($sReturn, '-', $sNegative), Chr(29), $sDec) If $fLeadingSign Then $sReturn = $sCurr & ' ' & $sReturn Else $sReturn &= ' ' & $sCurr EndIf If $fNeg And $fNegNumInPara Then $sReturn = '[' & $sReturn & ']' Return $sReturn EndFunc ;==>_FormatCurrencyBoah - das Syntaxhighlighting ist ja noch immer abartig.
500,33 € * 0,5 = 250,16 € anstatt wie es richtig wäre 250,17 € oder
Verwende Round(Expression, 2) zum kaufmännischen Runden.
-
Kann aber nur Beispiele für 90-Grad text im Gui finden.
Ich hatte mal eine kleine Oberfläche zum Testen gebastelt - Text in jedem Winkel. Probier einfach mal.
AutoIt
Alles anzeigen; ver 3.2.12.1 #Include <WinAPI.au3> #include <GUIConstantsEx.au3> #include <StructureConstants.au3> #include <WindowsConstants.au3> Global $GUI = GUICreate('Test Rotation') GUICtrlCreateLabel('Text:', 10, 13, 50, 17) Global $In = GUICtrlCreateInput('Hallo!', 70, 10, 150, 20) Global $bt = GUICtrlCreateButton('Schreibe Text', 250, 10, 100, 20) Global $btDel = GUICtrlCreateButton('Lösche Text', 250, 40, 100, 20) GUICtrlCreateLabel('Pos. X:', 10, 43, 50, 17) Global $inX = GUICtrlCreateInput('80', 70, 40, 30, 20) GUICtrlCreateLabel('Pos. Y:', 110, 43, 50, 17) Global $inY = GUICtrlCreateInput('280', 170, 40, 30, 20) GUICtrlCreateLabel('Winkel:', 10, 73, 50, 17) Global $inDeg = GUICtrlCreateInput('30', 70, 70, 30, 20) GUICtrlCreateLabel('Höhe:', 110, 73, 50, 17) Global $inSize = GUICtrlCreateInput('60', 170, 70, 30, 20) GUICtrlCreateLabel('Breite:', 10, 103, 50, 17) Global $inWeight = GUICtrlCreateInput('400', 70, 100, 30, 20) GUICtrlCreateLabel('Font:', 110, 103, 50, 17) Global $inFont = GUICtrlCreateInput('Comic Sans MS', 170, 100, 200, 20) GUICtrlCreateGroup(' Stil ', 10, 130, 280, 40) Global $rDef = GUICtrlCreateRadio('Standard', 15, 145, 65) GUICtrlSetState(-1, $GUI_CHECKED) Global $rIt = GUICtrlCreateRadio('Italic', 85, 145, 45) Global $cbUn = GUICtrlCreateCheckbox('Underlined', 135, 145, 70) Global $cbSt = GUICtrlCreateCheckbox('StrikeOut', 215, 145, 70) GUICtrlCreateGroup("", -99, -99, 1, 1) GUICtrlCreateLabel('Farbe Schrift:', 10, 183, 80, 17) Global $inCol = GUICtrlCreateInput('', 90, 180, 60, 20) GUICtrlCreateLabel('Hintergrund:', 160, 183, 80, 17) Global $inbCol = GUICtrlCreateInput('', 230, 180, 60, 20) GUISetState() Global $Rect Do $msg = GUIGetMsg() If $msg = $bt Then Local $type = 1, $col = -1, $bkcol = -1 If BitAND(GUICtrlRead($rIt), $GUI_CHECKED) Then $type = 2 If BitAND(GUICtrlRead($cbUn), $GUI_CHECKED) Then $type += 4 If BitAND(GUICtrlRead($cbSt), $GUI_CHECKED) Then $type += 8 Local $readFont = GUICtrlRead($inFont) If $readFont = '' Then $readFont = -1 Local $col = GUICtrlRead($inCol), $bkcol = GUICtrlRead($inbCol) If $col = '' Then $col = -1 If $bkcol = '' Then $bkcol = -1 _WriteRotateText($GUI, GUICtrlRead($In), GUICtrlRead($inX), GUICtrlRead($inY), GUICtrlRead($inDeg), _ GUICtrlRead($inSize), GUICtrlRead($inWeight), $type, $readFont, $col, $bkcol) ElseIf $msg = $btDel Then _WinAPI_RedrawWindow($GUI) EndIf Until $msg = $GUI_EVENT_CLOSE ;================================================================================================== ; Function Name: _WriteRotateText($hWnd, $sWrite, $iX, $iY, $iDeg, $iSize [, $iWeight=400 _ ; [, $iType=1 [, $sFont=-1 [, $iCol=-1 [, $iBkCol=-1 [,$bRedraw=True]]]]]]) ; Description: Schreibt einen Text mit bestimmtem Winkel in das angegebene Fenster ; Parameter(s): $hWnd Handle des Fensters ; $sWrite der zu schreibende Text ; $iX x-Position auf dem Fenster ; $iY y-Position auf dem Fenster ; $iDeg Rotationswinkel des Textes ; $iSize Höhe des Textes ; optional: $iWeight Fontbreite 0 - 1000 (Standard 400) ; optional: $iType Fonttyp 1=normal (Standard); 2=Italic; 4=Underline; 8=StrikeOut ; 1 oder 2 können mit 4 und 8 kombiniert werden (5;9 od. 6;10) ; optional: $sFont Fontname -1=Font der Form (Standard) ; optional: $iCol Fontfarbe -1=schwarz (Standard) ; optional: $iBkCol Hintergrundfarbe -1=Hintergrundfarbe des Fensters (Standard) ; optional: $bRedraw True=Fenster vorher neu zeichnen (vorige Beschriftung löschen - Standard) ; Requirement(s): #Include <WinAPI.au3>; #include <StructureConstants.au3>; #include <WindowsConstants.au3> ;================================================================================================== Func _WriteRotateText($hWnd, $sWrite, $iX, $iY, $iDeg, $iSize, $iWeight=400, $iType=1, $sFont=-1, $iCol=-1, $iBkCol=-1, $bRedraw=True) If $bRedraw Then _WinAPI_RedrawWindow($hWnd) Local $tRect = DllStructCreate($tagRECT) DllStructSetData($tRect, 'Left', $iX) DllStructSetData($tRect, 'Top', $iY) Local $rotate = $iDeg *10 If ($rotate = 900) Or ($rotate = 1800) Or ($rotate = 2700) Then $rotate += 1 Local $RotateMe = DllStructCreate($tagLOGFONT) DllStructSetData($RotateMe, 'Escapement', $rotate) DllStructSetData($RotateMe, 'Height', ($iSize * -20)/_WinAPI_TwipsPerPixelY()) If $iWeight <> 400 Then DllStructSetData($RotateMe, 'Weight', $iWeight) If BitAND($iType, 2) Then DllStructSetData($RotateMe, 'Italic', True) If BitAND($iType, 4) Then DllStructSetData($RotateMe, 'Underline', True) If BitAND($iType, 8) Then DllStructSetData($RotateMe, 'StrikeOut', True) If $sFont <> -1 Then DllStructSetData($RotateMe, 'FaceName', $sFont) Local $rFont = _WinAPI_CreateFontIndirect($RotateMe) Local $hDC = _WinAPI_GetDC($hWnd) If $iCol <> -1 Then _WinAPI_SetTextColor($hDC, $iCol) If $iBkCol <> -1 Then _WinAPI_SetBkColor($hDC, $iBkCol) ; wenn Transparenz gewünscht, Folgezeile aktivieren ;~ _WinAPI_SetBkMode($hDC, $TRANSPARENT) _WinAPI_SelectObject($hdc, $rFont) _WinAPI_DrawText($hDC, $sWrite, $tRect, BitOR($DT_NOCLIP,$DT_NOPREFIX)) _WinAPI_ReleaseDC($hWnd, $hDC) EndFunc ;==>_WriteRotateText -
Also ich kann deinen Fehler nicht erkennen. Reduziere dein Skript mal soweit, dass nur noch das Listview mit dem Verhalten übrigbleibt. Lagere erst mal nicht in eine Funktion aus, ich denke dabei entsteht das Problem. Allerdings hat mir bisher _WinAPI_RedrawWindow($hLV) jedes Listview ordentlich neu gezeichnet.
Mit meinem Minimalskript kann ich deinen Fehler nicht abbilden.Spoiler anzeigen
AutoIt
Alles anzeigen#include <GuiListView.au3> _Test() Func _Test() Local $hGui = GUICreate('Test') Local $hLV = GuiCtrlCreateListView('A|B|C', 10, 10, 300, 100) _GUICtrlListView_SetColumnWidth($hLV, 0, 100) _GUICtrlListView_SetColumnWidth($hLV, 1, 100) _GUICtrlListView_SetColumnWidth($hLV, 2, $LVSCW_AUTOSIZE_USEHEADER) For $i = 1 To 50 GUICtrlCreateListViewItem(StringFormat('Zeile_%i - Spalte_A|Zeile_%i - Spalte_B|Zeile_%i - Spalte_C', $i, $i, $i), $hLV) Next GUISetState() Do Until GUIGetMsg() = -3 EndFunc