![]() |
Delphi-Version: 10.3 Rio
TCaption = type String
Hallo zusammen,
es gibt hier eine interessante ![]()
Delphi-Quellcode:
und
type
TCaption = type string;
Delphi-Quellcode:
Oder verstehe ich das falsch, und es ist
type
TCaption = string; ![]() War vielleicht mal in älteren Delphi's so, aber warum hat man dann dafür eigentlich Ersteres gewählt, und nicht das zweite, was mehr kompatibel wäre ? Hat das wohl einen bestimmten Grund den ich nicht sehe, oder ist das nur ein "Typo". Ich bin generell auf "Typenreduzierung" aus, nicht so sehr wie in JS, aber zumindest so das nicht jeder triviale Typ auch noch separiert wird. Das erleichtert für mich den Austausch zwischen Komponenten erheblich. |
AW: TCaption = type String
Diese Definition ist schon seit "Urzeiten" von Delphi so.
Ob es noch jemand bei Emba gibt der das Weiß ist mehr als fraglich. Evtl. war initial mal angedacht das die Zeichenmenge in Captions reduziert ist um z.B. Steuerzeichen zu verbieten. Hat sich halt überlebt und keiner wollte hier durch Änderung "Codebreaks" provozieren. |
AW: TCaption = type String
Aha, dankesehr.
Zeichenmenge, Stringlänge, oder sonstige Zeichensatz-Beschränkungen wäre eine Erklärung. Wobei man dann doch nur den Typ als "Hinweis" hat, die eigentliche Beschränkungen muss man aussenrum machen, |
AW: TCaption = type String
Jupp, da bin ich auch schon drauf reingefallen.
Im Prinzip ist war soeine Typisierung nicht schlecht, wären da nun nicht die RecordHelper. Das ist aber nicht der Fehler dieser Typen, sondern dass diese Helperdrecksdinger keine Vererbung kennen und somit hängen sie ausschließlich an "string" hängen. Gut, warum TCaption so abgeleitet ist, dafür fällt mir kein Grund ein, aber z.B. für TFilename gäbe es da nun interessante Möglichkeiten, dort "auch" die Dateinamensbehandlungen, wie z.B. Exists, ExtractFilename, ExpandEnvironmentVariable, usw. dranzuhängen. (nur darauf war in den letzten Jahren bei Emba auch noch niemand gekommen, selbst wenn man es denen sagte) [edit] Wobei, eine Sache fällt mir grade noch für die Captions ein, das Ampersand. ![]() ![]() ![]() |
AW: TCaption = type String
Zitat:
Für die ein Anwendung passts, für die Andere nicht. Deshalb besser "String" statt zu versuchen zuviel Brimborium drumrum zu bauen. Wer das will könnte ja besser einen Record nehmen, und sich das was fehlt drumrum bauen (kommt jetzt wohl in die Gänge mit den Custom Managed Records). RecordHelper-Vererbung wäre wirklich schön, aber weil die reinen Typen auch keine Pointer sind ist das wohl schwieriger, aber wohl nicht total unlösbar für einen cleveren Compiler. |
AW: TCaption = type String
Nja, Record-Methoden und Helper erleichtern einem über die Codevervolständigung (wenn sie denn funktioniert) das Leben ungemein.
Wenn man einen Caption- oder Filename-Typen hat und über
Delphi-Quellcode:
angezeigt bekommt was es da alles für Funktionen gibt.
Variable.
Managed Records: Hey, die sollten letztes Jahr auch schonmal kommen ... ob es diemal wirklich klappt? :stupid: (hab ja schon fast 10 Jahre drauf gewartet, als ich denen damals schon den fast fertigen Code-Vorschlag im CC übergab) ![]() ![]() Und mit ARC im Windows wird das dann voll der Spaß. :freak: |
AW: TCaption = type String
Zitat:
Ja, und ja, ich bleibe positiv und warte auf den Tag an dem das dann Alles in Harmonie läuft. |
AW: TCaption = type String
Ach ja, noch schöner ist das alles bei TDateTime, aka Double. Da die ja auch semantisch nicht dasselbe sind.
Delphi-Quellcode:
Ruft nicht immer das auf, was man denkt. Mit
procedure Tuwat(const Wuppdi: TDateTime); overload;
procedure Tuwat(const Wuppdi: Double); overload;
Delphi-Quellcode:
scheint es besser zu laufen.
var
Und die Codevervollständigung/Programmierhilfe zeigt zu manchen Datums-Funktionen weder TDateTime noch Double an, sondern Extended... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:12 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-2025 by Thomas Breitkreuz