AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Variable.Create;

Ein Thema von himitsu · begonnen am 5. Mär 2014 · letzter Beitrag vom 10. Mär 2014
Antwort Antwort
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.659 Beiträge
 
Delphi 12 Athens
 
#1

AW: Variable.Create;

  Alt 10. Mär 2014, 07:53
Gerade durch Zufall entdeckt: http://docwiki.embarcadero.com/CodeE...e_%28Delphi%29
Zitat:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  regex: TRegEx;
  input: string;
  myEval: TMatchEvaluator;
begin
  i := 0;
  input := Edit1.Text;
  regex.Create('cc'); //<-- Nanu?
  myEval := ReplaceCC;
  Edit2.Text := regex.Replace(input, myEval);
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.749 Beiträge
 
Delphi 2007 Professional
 
#2

AW: Variable.Create;

  Alt 10. Mär 2014, 08:01
Gerade durch Zufall entdeckt: http://docwiki.embarcadero.com/CodeE...e_%28Delphi%29
Zitat:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  regex: TRegEx;
  input: string;
  myEval: TMatchEvaluator;
begin
  i := 0;
  input := Edit1.Text;
  regex.Create('cc'); //<-- Nanu?
  myEval := ReplaceCC;
  Edit2.Text := regex.Replace(input, myEval);
end;
TRegEx ist ein record - da geht das.
Uli Gerhardt
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.659 Beiträge
 
Delphi 12 Athens
 
#3

AW: Variable.Create;

  Alt 10. Mär 2014, 08:54
Stimmt, hab ich dann auch gemerkt, verwirrend sieht es aber allemal aus.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#4

AW: Variable.Create;

  Alt 10. Mär 2014, 08:55
Blöd, wenn man eine Initialisierungsmethode nach einem Konstruktor benennt.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Variable.Create;

  Alt 10. Mär 2014, 09:07
Delphi-Quellcode:
  TRegEx = record // <<<<<<<<<<<<<<<<<
  private
    ...
  public
    constructor Create(const Pattern: string); overload;
    constructor Create(const Pattern: string; Options: TRegExOptions); overload;
tja.



Und ja, in Delphi könnte man diesen Contructor auch Init nennen.

Wobei hier auch TRegEx.Create funktionieren würde.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#6

AW: Variable.Create;

  Alt 10. Mär 2014, 10:02
Ist das denn bei Records überhaupt ein Konstruktor? Ich meine nein, denn da wird nichts konstruiert.
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#7

AW: Variable.Create;

  Alt 10. Mär 2014, 10:29
Ich meine nein, denn da wird nichts konstruiert.
Klar, es wird eine gültige Record-Instanz konstruiert.
Vergleiche Record einfach mit Klassen in C++: Es ist egal, ob das Objekt auf dem Heap oder auf dem Stack liegt, es wird mit einem Konstruktor erstellt und mit einem Destruktor zerstört.
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#8

AW: Variable.Create;

  Alt 10. Mär 2014, 10:48
Ich meine nein, denn da wird nichts konstruiert.
Klar, es wird eine gültige Record-Instanz konstruiert.
Vergleiche Record einfach mit Klassen in C++: Es ist egal, ob das Objekt auf dem Heap oder auf dem Stack liegt, es wird mit einem Konstruktor erstellt und mit einem Destruktor zerstört.
Ach, echt?
Delphi-Quellcode:
Var
  myRecord : TMyRecord;

Begin
  myRecord.FooBar := 23;
Geht dann nicht mehr? Das geht doch seit Pascal 0.1a so... würde mich doch sehr stark wundern, wenn 99.999% der legacy Delphi-Software dann nicht mehr funktioniert.

So wie ich den Link im DocWiki verstehe, ist ein Record weiterhin ein Record und lebt auch ohne Aufruf des Konstruktors sofort. Das bedeutet: Wenn ich den Konstruktor nicht aufrufen muss, dann kann er ja nicht viel konstruieren, denn ob ich den nun aufrufe oder nicht, ändert am Record nichts, außer eben, das irgend etwas initialisiert wird. Ergo ist das ein Initialisator (was ein dämliches Wort ist), in jedem Fall eine simple Methode.

Was auch sein könnte: Wenn ich einen Recordkonstruktor definiere, dann *muss* ich den auch verwenden, das wird aber aus dem kleinen Absatz nicht ersichtlich...
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.876 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Variable.Create;

  Alt 10. Mär 2014, 10:30
Bei neuen Delphiversionen ist ein Record mehr als ein Record. Es handlet sich um die Ablösung des alten OBJECTes

http://docwiki.embarcadero.com/RADSt....28advanced.29
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#10

AW: Variable.Create;

  Alt 10. Mär 2014, 11:06
Geht dann nicht mehr? Das geht doch seit Pascal 0.1a so... würde mich doch sehr stark wundern, wenn 99.999% der legacy Delphi-Software dann nicht mehr funktioniert.
Hinter dem Link steht es doch:
Zitat:
Records are constructed automatically, using a default no-argument constructor, but classes must be explicitly constructed. Because records have a default no-argument constructor, ...
Also gibt es einen implizieten Aufruf eines Default-Constructors, welcher nichts macht (und vermutlich auch keinen Code produziert).
Ich gebe zu, dass das Ganze etwas angeflanscht wirkt
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 19:24 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