Du konntest und kannst hier
* entweder sagen, wieviel gemacht werden kann
* oder es wird über Stream.Size das Ende bestimmt (und über Stream.Size-Stream.Position die Anzahl)
* ein Stream mit unbestimmter Länge (lese so lange bis Stream.Read=0 sagt) wird selten von "allgemeinen" Funktionen unterstützt.
* * entweder wir bauen dafür eine neue Funktion ein, oder sagen z.B. DataSize = -2 wird dieser Modus (und = -1 der mir Stream.Size)
Die meisten Parameter änder sich niemals.
Min, Max und Pos sind Int64 und das kann keine ProgressBar anzeigen.
Original kann/konnte sie sogar nur
16 15 Bit varabeiten (PBM_SETRANGE) und inzwischen geht auch
32 32 Bit (PBM_SETRANGE32).
Ein Bit weniger, wegen dem Signed (Vorzeichen).
https://docs.microsoft.com/en-us/win...trol-reference
Ja, es gibt genügend Leute, die
sind zu doof ähh vergessen den Wertebereich notfals umzurechnen, daher hatte ich gleich auch direkt noch den Prozenz-Wert mit reingepackt.
Gut, man kann sich streiten wann "zuviel" ist, aber wenn es zuviele Parameter werden (wovon hier ursprünglich 33% immer wieder sinnlos übergeben werden), dann wird von Vielen empfohlen das in ein Datenobjekt zu packen, also nur noch einen Parameter.
Vorteil ist auch, dass wenn man später noch etwas hinzufügt, dass man nirgendwo was umbauen muß. (die Signatur ändert sich nicht)
Andere dürfen gern diesen Typen verwenden, oder sie definieren ihren eigenen Record oder Objekt, der gleich heißt. (man könnte sich hier vielleich überlegen dem Record einen "neutralen" Namen zu geben)