![]() |
AW: Stringlänge parsen
Zitat:
Da muss man auch nichts sortieren. PseudoCode:
Delphi-Quellcode:
function GetTextWidth(MyStrings: TStrings {ja, nur ein Beispiel, kannst auch Array nehmen}): Integer;
var Result, NewWidth: Integer; MyString: string; begin Result := 0; NewWidth := 0; for MyString in MyStrings do begin NewWidth := GetTextBoundOnlyWidth(MyString); // Platzhalterfunktion zum Ermitteln der Breite des Strings if NewWidth > Result then // Immer wenn die Breite größer ist von diesen String, dann Result entsprechen erhöhen Result := NewWidth; end; end; |
AW: Stringlänge parsen
Zitat:
Was anderes macht dein Code auch nicht! Ob nun dein Vorschlag oder meiner: das Ergebnis ist am Ende dasselbe je nachdem wie man es auswertet. |
AW: Stringlänge parsen
Zitat:
Danach noch zu sortieren ist Unsinn weil man sich in der Schleife auch grad immer merken kann ob das aktuelle Element das (bisher) größte ist:
Delphi-Quellcode:
if NewWidth > Result then // Immer wenn die Breite größer ist von diesen String, dann Result entsprechen erhöhen
Result := NewWidth; |
AW: Stringlänge parsen
Zitat:
TStrings sind ok.. gruss |
AW: Stringlänge parsen
Zitat:
Zitat:
|
AW: Stringlänge parsen
Zitat:
:roll: :wall: :roll: |
AW: Stringlänge parsen
Ich bin wahrscheinlich schon OffTopic weil ich das Problem falsch verstehe,
oder dieser Vorschlag steht hier schonmal irgendwo im Thread: Aber du könntest die Strings einmalig beim Erzeugen parsen und die Längen und was auch immer separat verwalten, z.B. als Liste oder Array, o.ä. Damit könntest du die Länge relativ schnell über das Array finden. Mal so hingeschrieben, ohne Test und Sicherheitsabfragen.
Delphi-Quellcode:
Dazu müsste aber das Array immer mit der Stringliste synchron laufen, ein Insert, Delete, etc. wenn du das gewährleisten kannst.
intMax := SucheMaxLänge(intStart, intAnzahl);
function SucheMaxLänge(intStart, intAnzahl) : Integer; begin Result := 0; while intAnzahl > 0 do begin if FLenArray[intStart+IntAnzahl] > Result then Result := FLenArray[intStart+IntAnzahl]; Dec(intAnzahl); end; end; Rollo |
AW: Stringlänge parsen
Theoretisch ist das machbar praktisch leider nicht weil sich die Menüs immer ändern dynamisch.
Irgendwelche Strings im Speicher halten würde also nicht viel bringen. Bei jeden neuen Film sieht das anders aus. gruss |
AW: Stringlänge parsen
Nur die Längen im Speicher halten ...
|
AW: Stringlänge parsen
Hallo,
gibt es hier überhaupt ein Performance-Problem, oder ist es eine theoretische Diskussion? "Minimal-Bsp." bitte, was das Problem zeigt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz