Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Klatsch und Tratsch (https://www.delphipraxis.net/34-klatsch-und-tratsch/)
-   -   Generics - freiwillige vor (https://www.delphipraxis.net/93905-generics-freiwillige-vor.html)

jbg 13. Jun 2007 01:01


Generics - freiwillige vor
 
Ich habe gerade (noch rechtzeitig vor dem Insbettgehen) die Generics Unterstützung für Delphi fertiggestellt. Nun brauche ich ein paar Tester.

Homepage mit Beschreibung der einzelnen Spracherweiterungen und Installationsanweisung

Download

mkinzler 13. Jun 2007 06:57

Re: Generics - freiwillige vor
 
Gute Arbeit. Schon überraschend das Borland/CodeGear jahrelang zur Implementierung dieser Features benötigen.

Christian S. 13. Jun 2007 09:56

Re: Generics - freiwillige vor
 
Es ist eigentlich nicht wirklich wichtig, ich frage nur aus Neugier: Sind Deine Generics nicht eigentlich eher Templates?

xaromz 13. Jun 2007 11:22

Re: Generics - freiwillige vor
 
Hallo,

ich habe gerade testweise TList als Generic nachgebaut (zumindest großteils). Dabei ist mir folgender Fehler aufgefallen:
Bei verschachtelte Funktionen wird nur die erste Unterfunktion eingebunden, weitere Unterfunktionen sowie die eigentliche Funktion fehlen in der Include-Datei.

Außerdem noch eine Frage: Bei der Deklaration einer generischen Klasse funktionieren ja leider die Hilfestellungen der IDE nicht. Zumindest das Erstellen der Methoden (Strg+Shift+C) wäre ein echt nützliches Feature. Vielleicht lässt sich das ja relativ einfach nachbauen.

Ansonsten ist das eine schöne Sache. Weiter so :thumb:.

Gruß
xaromz

jbg 13. Jun 2007 11:22

Re: Generics - freiwillige vor
 
So gesehen ja, da keine Typeinschränkung herscht. Wenn man wollte könnte man den Template-Parameter (so heißt die Klasse intern auch) als Feld-Name misbrauchen:
Delphi-Quellcode:
generic
  TTest<T> = record
    T: Integer;
  end;

type
  TTestValue = specialize TTest<Value>;

var
  t: TTestValue;
begin
  t.Value := 10;
end;
Aber da ich mich hauptsächlich an die Syntax von FreePascal gehalten habe (bis auf den Macrocharakter den ich eingeführt habe) und der Tatsache, dass diese Generics keine anderen Generics instanzieren können, dachte ich mir, dass ich sie lieber Generics statt Templates nenne. Aber vielleicht kommen auch noch full-featured Templates. Wer weiß. Jetzt ist erstmal das case-string-of dran, das C# ja auch beherrscht.

jbg 13. Jun 2007 11:26

Re: Generics - freiwillige vor
 
Zitat:

Zitat von xaromz
Bei verschachtelte Funktionen wird nur die erste Unterfunktion eingebunden, weitere Unterfunktionen sowie die eigentliche Funktion fehlen in der Include-Datei.

Ich dachte, dass ich das mittlerweile in den Griff bekommen hätte. Dem ist anscheinend nicht so. Da muss ich wohl heute Abend nochmal an die Generics ran.

Zitat:

Zumindest das Erstellen der Methoden (Strg+Shift+C) wäre ein echt nützliches Feature. Vielleicht lässt sich das ja relativ einfach nachbauen.
Das ist nicht so ohne weiteres möglich.

Alexander 13. Jun 2007 13:13

Re: Generics - freiwillige vor
 
Wenn das Problem das Überschreiben der Tastenkombi ist, könntest du ja auch auch eine etwas andere nehmen.

Aber ansonsten muss ich sagen: Wow :shock:
Was du da innerhalb kürzester Zeit gebastelt hast, macht wirklich schon einen sehr guten Eindruck (auch wenn ich es selber noch nicht getestet habe).

GimbaR 13. Jun 2007 17:35

Re: Generics - freiwillige vor
 
Sorry, wenn ich jezz mit ner total "dummen" Frage komme: Aber was genau sind denn Generics? Der Begriff fällt ja immer öfters hier im Zusammenhang mit C#, aber was genau Generics sind, kann ich mir einfach nich vorstellen :(

PS: Bidde nich hauen :duck:

jbg 13. Jun 2007 18:49

Re: Generics - freiwillige vor
 
http://de.wikipedia.org/wiki/Generics


Zitat:

Zitat von Alexander
Wenn das Problem das Überschreiben der Tastenkombi ist, könntest du ja auch auch eine etwas andere nehmen.

Nein das Problem ist, dass ich dafür erstmal einen Parser schreiben muss. Zudem muss ich dann für jede Delphi Version eine angepasste DLL ausliefern. Und das ist das letzte was ich für DLangExtensions will. Mir reicht schon das ganze mit DelphiSpeedUp, DDevExtensions und bcc32pch. Drei Projekte, deren Arbeitsaufwand man seit Delphi 2007 mit der Zahl 6 multiplizieren muss. 3*6 ist immer noch weniger als 4*6.

Folgendes funktioniert aber bereits jetzt:
1. Aus dem "generic" ein "type" machen
2. Das <T> auskommentieren => {<T>}
3. Strg+Umsch+C drücken
4. Änderungen rückgängig machen

Zudem würde ich eine Generische Klasse erstmal mit einem realen Typen testen und erst dann einen Generic daraus machen.


Zitat:

Aber ansonsten muss ich sagen: Wow :shock:
Was du da innerhalb kürzester Zeit gebastelt hast
Die Generic Unterstützung habe ich in 5 Tagen (Freitag Abend + Wochenende + Montag Abend + Dienstag Abend) geschaffen. Die Infrastruktur von DLangExtensions gab es ja schon seit über einer Woche. :mrgreen:

Alexander 13. Jun 2007 19:30

Re: Generics - freiwillige vor
 
Zitat:

Zitat von jbg
Zitat:

Aber ansonsten muss ich sagen: Wow :shock:
Was du da innerhalb kürzester Zeit gebastelt hast
Die Generic Unterstützung habe ich in 5 Tagen (Freitag Abend + Wochenende + Montag Abend + Dienstag Abend) geschaffen. Die Infrastruktur von DLangExtensions gab es ja schon seit über einer Woche. :mrgreen:

Sage doch, in kürzester Zeit. Hast du evtl. schon einmal mit CodeGear gesprochen, vielleicht sind die ja auch irgendwie an dem Präprozessor interessiert :stupid:


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:50 Uhr.
Seite 1 von 2  1 2      

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