Interessant, eine Einsatzmöglichkeit für Static (?)
Wieso müssen Funktionen innerhalb einer UDF miteinander "kommunizieren"? Kann doch eigentlich nur für Debugzwecke nützlich sein? ![]()
Beiträge von nuts
-
-
Worin liegt da jetzt der Vorteil?
-
1. Stimmt das 100% nicht.
2. Wie kommt man nochmal an das Skript ohne sich durch deine Seite zu fühlen? -
Ja aber mit der Definition von Global $B_DESCENDING=false geht mit dem Fehler auch der Effekt (sortierung nur in eine Richtung) verloren.
Trägt man "false" oder "true" in die Funktion ein und übergeht den Fehler (der bei einigen gar nicht kommt?
) funktionierts.Ah
Fehler erkannt, der Wert wird ja wieder verändert 
edit \ Genau ohje - danke Raupi

-
Genau, deine Version funktioniert - wäre nur schön wenn Scite nicht immer den Fehler bringen würde

-
Du hast meine Lösung noch gar nicht umgesetzt
Die erste Zeile wird dabei außerhalb der While ... Wend Schleife ausgelesen (und kann von dir beliebig weiterverarbeitet werden). -
Ich kann das auch nicht bestätigen. Die BASS UDF funktioniert hier auch @XP (nicht alle Funktionen ausprobiert ...).
Bei den Problemen immer auf den ganzen INR Sourcecode zu verweisen finde ich etwas dünn.
Schließlich müsste man ja den ganzen Code auf 2 Systemen durchgehen und so versuchen die Unterschiede zu erarbeiten ...Vielleicht bekommst du dein Problem auf bestimmte Funktionen eingegrenzz? Dann kann man auch besser darauf eingehen.
z.B. Funktion "Play" funktioniert unter winXP nicht und wir schauen dann voran das liegen kann.

P.S: Es ist auch sicher kein 32/64 bit Problem? D.h. win7@32bit läuft -> winXP@32bit läuft nicht?
-
Spoiler anzeigen
[autoit]
[/autoit]
Func Load() ; Datenbank-Datei laden
_GUICtrlListView_DeleteAllItems($hLVHandle)
Local $sItem
Local $hFile = FileOpen($sDBFile, 0) ; Datei zum lesen öffnen
Local $hLabelInfo = FileReadLine($hfile) ; 1. Zeile der Datenbank wird gelesen -> Für Labelbeschriftung
; GUICtrlSetData($hinput ,$hLabelInfo)
If $hFile <> -1 Then ; wenn das öffnen erfolgreich war, dann...
_GUICtrlListView_BeginUpdate($hLVHandle) ; Listview sperren
While True ; Endlosschleife
$sItem = FileReadLine($hFile) ; Zeile aus der Datei lesen
If @error Then ExitLoop ; wenn das Ende der Datei erreicht ist, dann Endlosschleife verlassen
GUICtrlCreateListViewItem($sItem, $hListView) ; mit den eingelesenen Daten einen neuen Listview-Eintrag erstellen
WEnd
_GUICtrlListView_EndUpdate($hLVHandle) ; Listview wieder freigeben
FileClose($hFile) ; Datei schließen
EndIf
EndFunc ;==>Load -
Funktioniert wirklich, danke dir.
Ist wohl eine falsch Meldung von Scite
Ärgerlich, hatte schon mit einer eigenen Routine angefangen.
-
Ist bei mir nicht lauffähig.
CodeD:\autoitskripte\kasse\Buchungssatzerfasser\sortbeispiel2.au3(27,78) : ERROR: _GUICtrlListView_SimpleSort() called with Const or expression on ByRef-param(s). _GUICtrlListView_SimpleSort(GUICtrlGetHandle($ListView1), True, 0)
Definiert man das true/false vorher läuft es, allerdings ohne den erwünschten Effekt.
-
Kannst du mir mal ein Beispiel mit _GUICtrlListView_SimpleSort machen?

-
Wüsste nicht wo ... :wacko:
Bin schon dabei die ListviewUDF zu durchstöbern, bist jetzt ohne Erfolg. -
Hey,
folgendes Problem:
Eine Listviewspalte soll wie gewöhnlich durch einen Klick auf den Header sortiert werden.
Allerdings nicht in beide Richtung sondern nur in eine:
1,3,2 -> 1,2,3 -> 1,2,3 (und nicht zu 3,2,1)Abfragen des ersten und letzten Items und ggf. nochmal sortieren möchte ich aus Geschwindigkeitsgründen vermeiden.
Bei einer anderen Abfrage müsste man auch alle Items durchgehen.
Hier das Beispiel zum Probieren:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIListview.au3>
#include <ListViewConstants.au3>
#include <WindowsConstants.au3>#Region ### START Koda GUI section ### Form=
[/autoit] [autoit][/autoit] [autoit]
$Form1 = GUICreate("Form1", 327, 505, 192, 124)
$ListView1 = GUICtrlCreateListView("Test", 8, 16, 313, 401)
$Button1 = GUICtrlCreateButton("Button1", 112, 448, 105, 33, $WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###global $hLVHandle = GUICtrlGetHandle($ListView1)
[/autoit] [autoit][/autoit] [autoit]
for $i = 0 to 50
GUICtrlCreateListViewItem(Random(1,100,1), $ListView1)
next
_GUICtrlListView_RegisterSortCallBack($hLVHandle)While 1
[/autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
_GUICtrlListView_UnRegisterSortCallBack($hLVHandle)
Exit
case $ListView1
_GUICtrlListView_SortItems($hLVHandle, GUICtrlGetState($ListView1))
EndSwitch
WEnd -
Die maximal zulässige Größe beträgt imho 64kb bei ini's (hängt auch vom OS ab?).
Wobei es ab 32kb zu Problemen kommen kann? Ähnlich wie bei den Leerzeichen vor dem "=". -
Schauen wie es bei deinem Anbieter funktioniert?
Fremde Handys lassen sich darüber natürlich nicht orten (wäre ja noch schöner ...) -
Die Netzwerkkarte könnt ihr über das MS-Tool devcon neustarten:
[autoit]
[/autoit]
Func _Refresh($ID) ;führt Devcon mit der übergebenen ID aus
$ID = "@" & $ID
RunWait(@ScriptDir & "\devcon\i386\devcon.exe" & ' disable ' & $ID, "", @SW_HIDE) ; deaktivieren
Sleep(2000) ;2 Sekunden warten (kann man bei der Netzwerkkarte auch weglassen)
RunWait(@ScriptDir & "\devcon\i386\devcon.exe" & ' enable ' & $ID, "", @SW_HIDE) ; aktivieren
EndFunc ;==>_Refresh -
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include-once_ChangeScreenRes(1024,768)
[/autoit] [autoit][/autoit] [autoit];===============================================================================
[/autoit]
;
; Function Name: _ChangeScreenRes()
; Description: Changes the current screen geometry, colour and refresh rate.
; Version: 1.0.0.1
; Parameter(s): $i_Width - Width of the desktop screen in pixels. (horizontal resolution)
; $i_Height - Height of the desktop screen in pixels. (vertical resolution)
; $i_BitsPP - Depth of the desktop screen in bits per pixel.
; $i_RefreshRate - Refresh rate of the desktop screen in hertz.
; Requirement(s): AutoIt Beta > 3.1
; Return Value(s): On Success - Screen is adjusted, @ERROR = 0
; On Failure - sets @ERROR = 1
; Forum(s): http://www.autoitscript.com/forum/index.php?showtopic=20121
; Author(s): Original code - psandu.ro
; Modifications - PartyPooper
;
;===============================================================================
Func _ChangeScreenRes($i_Width = @DesktopWidth, $i_Height = @DesktopHeight, $i_BitsPP = @DesktopDepth, $i_RefreshRate = @DesktopRefresh)
Local Const $DM_PELSWIDTH = 0x00080000
Local Const $DM_PELSHEIGHT = 0x00100000
Local Const $DM_BITSPERPEL = 0x00040000
Local Const $DM_DISPLAYFREQUENCY = 0x00400000
Local Const $CDS_TEST = 0x00000002
Local Const $CDS_UPDATEREGISTRY = 0x00000001
Local Const $DISP_CHANGE_RESTART = 1
Local Const $DISP_CHANGE_SUCCESSFUL = 0
Local Const $HWND_BROADCAST = 0xffff
Local Const $WM_DISPLAYCHANGE = 0x007E
If $i_Width = "" Or $i_Width = -1 Then $i_Width = @DesktopWidth ; default to current setting
If $i_Height = "" Or $i_Height = -1 Then $i_Height = @DesktopHeight ; default to current setting
If $i_BitsPP = "" Or $i_BitsPP = -1 Then $i_BitsPP = @DesktopDepth ; default to current setting
If $i_RefreshRate = "" Or $i_RefreshRate = -1 Then $i_RefreshRate = @DesktopRefresh ; default to current setting
Local $DEVMODE = DllStructCreate("byte[32];int[10];byte[32];int[6]")
Local $B = DllCall("user32.dll", "int", "EnumDisplaySettings", "ptr", 0, "long", 0, "ptr", DllStructGetPtr($DEVMODE))
If @error Then
$B = 0
SetError(1)
Return $B
Else
$B = $B[0]
EndIf
If $B <> 0 Then
DllStructSetData($DEVMODE, 2, BitOR($DM_PELSWIDTH, $DM_PELSHEIGHT, $DM_BITSPERPEL, $DM_DISPLAYFREQUENCY), 5)
DllStructSetData($DEVMODE, 4, $i_Width, 2)
DllStructSetData($DEVMODE, 4, $i_Height, 3)
DllStructSetData($DEVMODE, 4, $i_BitsPP, 1)
DllStructSetData($DEVMODE, 4, $i_RefreshRate, 5)
$B = DllCall("user32.dll", "int", "ChangeDisplaySettings", "ptr", DllStructGetPtr($DEVMODE), "int", $CDS_TEST)
If @error Then
$B = -1
Else
$B = $B[0]
EndIf
Select
Case $B = $DISP_CHANGE_RESTART
$DEVMODE = ""
Return 2
Case $B = $DISP_CHANGE_SUCCESSFUL
DllCall("user32.dll", "int", "ChangeDisplaySettings", "ptr", DllStructGetPtr($DEVMODE), "int", $CDS_UPDATEREGISTRY)
DllCall("user32.dll", "int", "SendMessage", "hwnd", $HWND_BROADCAST, "int", $WM_DISPLAYCHANGE, _
"int", $i_BitsPP, "int", $i_Height * 2 ^ 16 + $i_Width)
$DEVMODE = ""
Return 1
Case Else
$DEVMODE = ""
SetError(1)
Return $B
EndSelect
EndIf
EndFunc ;==>_ChangeScreenRes -
Ich würde ja ein paar schöne Buttons mit Farbverlauf mit GDI+ zeichnen.

Und ich würde davon gern ein Beispielskript sehen
-
Und wie können wir jetzt helfen? Keiner wird dir hier einen MP3-Player schreiben, du musst schon etwas mitarbeiten!
Was sind genau die Probleme mit dem Link? -
Zeile 127 und 628: Adlibenable in AdlibRegister ändern.
Zeile 560: Adlibdisable in AdlibUnRegister ändern.P.S. Changelog lesen!
