AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TCaption = type String

Ein Thema von Rollo62 · begonnen am 22. Mai 2020 · letzter Beitrag vom 22. Mai 2020
Antwort Antwort
Rollo62

Registriert seit: 15. Mär 2007
3.896 Beiträge
 
Delphi 12 Athens
 
#1

TCaption = type String

  Alt 22. Mai 2020, 07:12
Delphi-Version: 10.3 Rio
Hallo zusammen,

es gibt hier eine interessante Zusammenstelung von J.Pluimers, zu dem Unterschied zwischen
Delphi-Quellcode:
type
    TCaption = type string;
und

Delphi-Quellcode:
type
    TCaption = string;
Oder verstehe ich das falsch, und es ist doch Letzteres ?

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.

Geändert von Rollo62 (22. Mai 2020 um 07:19 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.170 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: TCaption = type String

  Alt 22. Mai 2020, 07:38
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.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
3.896 Beiträge
 
Delphi 12 Athens
 
#3

AW: TCaption = type String

  Alt 22. Mai 2020, 08:16
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,
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.114 Beiträge
 
Delphi 12 Athens
 
#4

AW: TCaption = type String

  Alt 22. Mai 2020, 10:52
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.
Delphi-Referenz durchsuchenStripHotkey, Delphi-Referenz durchsuchenGetHotkey und Delphi-Referenz durchsuchenSameCaption im Helper, inkl. der Vergleichs-Operatoren.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (22. Mai 2020 um 13:46 Uhr) Grund: schlechtschreibung
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
3.896 Beiträge
 
Delphi 12 Athens
 
#5

AW: TCaption = type String

  Alt 22. Mai 2020, 12:35
Im Prinzip ist war soweine Typisierung nicht schlecht...

interessante Möglichkeiten, dort "auch" die Dateinamensbehandlungen, wie z.B. Exists, ExtractFilename, ExpandEnvironmentVariable, usw. dranzuhängen ...
Ic bin mehr der Verfechter von reinen Typen, denn das "dranhängen" kann nie vollständig oder richtig sein.
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.

Geändert von Rollo62 (22. Mai 2020 um 12:38 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.114 Beiträge
 
Delphi 12 Athens
 
#6

AW: TCaption = type String

  Alt 22. Mai 2020, 13:51
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 Variable. angezeigt bekommt was es da alles für Funktionen gibt.

Managed Records: Hey, die sollten letztes Jahr auch schonmal kommen ... ob es diemal wirklich klappt? (hab ja schon fast 10 Jahre drauf gewartet, als ich denen damals schon den fast fertigen Code-Vorschlag im CC übergab)
https://blog.marcocantu.com/blog/201...ds-delphi.html
https://blog.marcocantu.com/blog/201...erring-managed records.html
Und mit ARC im Windows wird das dann voll der Spaß.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (22. Mai 2020 um 13:55 Uhr)
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
3.896 Beiträge
 
Delphi 12 Athens
 
#7

AW: TCaption = type String

  Alt 22. Mai 2020, 14:26
erleichtern einem über die Codevervolständigung ...
Aha, noch mehr was funktionieren könnte/sollte
Ja, und ja, ich bleibe positiv und warte auf den Tag an dem das dann Alles in Harmonie läuft.
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.016 Beiträge
 
Delphi 2009 Professional
 
#8

AW: TCaption = type String

  Alt 22. Mai 2020, 21:56
Ach ja, noch schöner ist das alles bei TDateTime, aka Double. Da die ja auch semantisch nicht dasselbe sind.
Delphi-Quellcode:
procedure Tuwat(const Wuppdi: TDateTime); overload;
procedure Tuwat(const Wuppdi: Double); overload;
Ruft nicht immer das auf, was man denkt. Mit var scheint es besser zu laufen.
Und die Codevervollständigung/Programmierhilfe zeigt zu manchen Datums-Funktionen weder TDateTime noch Double an, sondern Extended...
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz