Forum: Algorithmen, Datenstrukturen und Klassendesign
by himitsu,
7. Jul 2022
Wo ist da ein "String"?
Und was ist "Falsch"?
; default; gibt es ausschließlich für Array-Property.
default EineOrdinaleKonstante;, bzw. stored TrueOderFalseOderFunktion;, gibt es dagegen nur für einfache Property.
String: Meinst du sowas?
Forum: Algorithmen, Datenstrukturen und Klassendesign
by himitsu,
7. Jul 2022
Array-Property gingen in D7, aber Einiges davon funktioniert oftmals nur, wenn es auch als Default deklariert ist, sonst nicht.
Darum ist es in der StringList auch so
property Value: String ...
property ValueByIndex: String ...
weil es so nicht ging
property Value: String ...
property Value: String ...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by himitsu,
7. Jul 2022
Die Hilfe ist kaputt ... bei der automatischen Übersetzung sind ein paar Zeichen verloren gegangen.
Rate mal, was zwischen Name und Typ kommt, bzw. vor den Typ. :zwinker:
Forum: Algorithmen, Datenstrukturen und Klassendesign
by himitsu,
7. Jul 2022
Array-Property, das ist sowas, wie bei TList/TStrings/TStringList ... halt wie beim Array.
property Strings: string read GetString write SetStrings;
SL.Strings
SL.Value
Default-Property, sind jene, welche "implizit" genutzt werden können.
property Strings: string read GetString write SetStrings; default;
SL.Strings // direkt
Forum: Algorithmen, Datenstrukturen und Klassendesign
by himitsu,
6. Jul 2022
Das ist was Anderes.
Über "diesen" Index kann man für mehrere Property den selben Getter/Setter verwenden.
property IrgendwasA: TSonstwas index 1 read GetItgendwas ...
property IrgendwasB: TSonstwas index 2 read GetItgendwas ...
property IrgendwasC: TSonstwas index 3 read GetItgendwas ...
Man kann den Index einfach einfach nur zur Verwendung der Erkennung welches Irgendwas# gemeint ist...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by himitsu,
6. Jul 2022
https://docwiki.embarcadero.com/RADStudio/Sydney/de/Eigenschaften_(Delphi)
https://docwiki.embarcadero.com/RADStudio/Sydney/en/Properties_(Delphi)
in älteren Delphis ging eine Überladung nicht (mehrere Array-Property), aber wenn, dann gingen sie nur als Default-Property,
und in noch älteren Delphi ging es nur in Klassen aber noch nicht in Records.
Und die string-like Array-Operatoren...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by himitsu,
6. Jul 2022
Könnte man schon, wenn man will
record // oder class
A: TIrgendwas;
B: TIrgendwas;
C: TIrgendwas;
property basic: TIrgendwas read ... write ...; // die Getter/Setter nicht vergessen
end;
Zum Auslesen kein Problem ... beim Zuweisen mit Records muß man "bissl" aufpassen/rumpfuschen.
Forum: Algorithmen, Datenstrukturen und Klassendesign
by himitsu,
6. Jul 2022
Der Funktionsaufruf ist nur einen "Hauch" langsamer ('ne Hand voll CPU-Takte),
dagegen beim case-insensitven braucht der eine Parameter nur einmal kleingemacht werden, anstatt mehrmal je Zeile/IF.
// turborennschnecke
if TArray.BinarySearch(, AnsiLowerCase(S)) // kleingeschrieben und sortiert
// und natürlich ist ein
if AnsiIndexStr(AnsiLowerCase(S), ) // Suchwerte direkt...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by himitsu,
6. Jul 2022
(pars+'_B',
(pars, :stupid:
Schneller ist es nur bedingt ... eher fast gleich schnell oder vielleicht eine Millisekunde langsamer (ein Funktionsaufruf, aber gleich viele String-Vergleiche),
aber es macht den Code kürzer und ohne die viele IF....THEN dazwischen auch etwas übersichlicher.
Hier die 123: als Konstante oder mit {Name}123:, erspart sich, da der Kommentar/Name bereits als...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by himitsu,
6. Jul 2022
Die Datenstruktur ändern
und gleiche Teile zusammenfassen?
(und dann nachfolgend den größten Teil ignorieren)
// nicht
ini.basic.path_A := pars
ini.basic.path_B := pars
// sondern
ini.basic.A.path := pars
ini.basic.B.path := pars