![]() |
AW: Träume, Wünsche und Wahnvorstellungen...
Zitat:
* Eine Delphi-Installation auf dem Server und mehrere Bernutzer eingelogt, geht ohne Probleme. * Aber mehrmals Starten, bei einem Benutzer, bemängelte GExprets, da es seine Einstellungsdateien nicht ordentlich "sharen" kann. Solange man aber nichts an den Einstellungen ändern, wörend es mehrfach geöffnet ist, gibt es keine merklichen Probleme. |
AW: Träume, Wünsche und Wahnvorstellungen...
Ablösung des BPL-Schnickschnack wäre natürlich toll.
Und was die Operatoren angeht fände ich ein += und ein ++ schon nett. Und ein automatisches Umwandeln von int nach string für Ausgaben wäre auch praktisch. |
AW: Träume, Wünsche und Wahnvorstellungen...
++ wäre mir wieder etwas zuviel C, in meinem "schönen" Delphi. :stupid:
Zitat:
Delphi-Quellcode:
,
Variant
Delphi-Quellcode:
oder überladene Parameter nutzt,
Array of Const
dann kann man das doch auch jetzt schon? Überall und ständig eine automatische Umwandlung spricht etwas gegen die stengen Typprüfungen in Delphi. |
AW: Träume, Wünsche und Wahnvorstellungen...
Zitat:
Ich würde mich insbesondere über dieses Konstrukt in Delphi freuen:
Delphi-Quellcode:
with Stringlist := TStringlist.Create() do
irgendwo im QC findet sich das auch... |
AW: Träume, Wünsche und Wahnvorstellungen...
Zitat:
Delphi-Quellcode:
geht ja bereits (auch wenn das nicht ganz ungefährlich ist).
with TStringlist.Create do
|
AW: Träume, Wünsche und Wahnvorstellungen...
Ganz einfach: Man gibt der Variable damit gleichzeitig einen Namen. Stell dir folgendes vor:
Delphi-Quellcode:
Wobei ich es noch schöner fände, wenn man die Variable gleich inline auch deklarieren kann:
with TStringList.Create do
begin TuWas; TuWasAnderes; Form2.Caption := 'Blabla'; Form2.Uebergebe( { Was soll hier hin? } ); TuWasAnderes; TuWas; end; with Stringlist := TStringList.Create do begin ... Form2.Uebergebe(Stringlist); ... end;
Delphi-Quellcode:
Genauso in einer For-Schleife:
with var StringList: TStringList := TStringList.Create do
Delphi-Quellcode:
for var i: Integer := 0 to 100 do
[EDIT] Auch wenn das natürlich irgendwie Vergewaltigung unseres schönen Pascals wäre ... |
AW: Träume, Wünsche und Wahnvorstellungen...
Das geht jetzt aber sehr in Richtung C/C++/C#. Und was Du vorhast, bekommst Du mit einer Zeile mehr ja auch hin.
|
AW: Träume, Wünsche und Wahnvorstellungen...
Jupp, eine Namensvergabe für With wäre schon was,
aber was auch schön wäre, das wäre sowas wie Self für With. __FUNCTION__, __LINE__, __UNIT__ und untypisierte CONST/VAR-Parameter, welcher aber die TypeInfos automatisch mit übergeben. Und den Namespace "parent"
Delphi-Quellcode:
type
C = class X: Integer; procedure M; end; var X: Integer; O: C; procedure P; begin C.X := X; end; procedure C.M; begin Self.X := {unit}.X; // was ist aber, wenn ich den Unitnamen nicht direkt angeben will? // hier nimmt man ja sonst auch Self und nicht sowas wie das bekannte Form1 :wall: end; Zitat:
So gibt es eben 3 feste Stellen (lokal, in Klassen und global), wo Variablen deklariert sind und man weiß, wo man suchen muß/kann. |
AW: Träume, Wünsche und Wahnvorstellungen...
Na gut, wenn schon with, dann aber eins ohne Verwechslungsgefahr. Ich bin beileibe kein Freund von Basic, aber dort ist das eindeutig besser gelöst: ein Punkt vor der Property kennzeichnet, dass es sich um das mit with verbundene Objekt handelt.
|
AW: Träume, Wünsche und Wahnvorstellungen...
Zitat:
In dem Kontext wäre natürlich auch Oxygenes "using" angebracht, und dass man eine richtige Syntax für Konstruktoren bekommt. (Nicht diesen komischen Krams in dem jeder seinen Ctor nennen kann wie er will und im Code sieht's aus wie eine statische Methode) "Using" wäre dann wie Imps "with" aber würde ein try-finally erzeugen und am Ende Free ausführen.
Delphi-Quellcode:
Aber all das ist komplett witzos in dem Babelcode, den Delphi momentan darstellt. Delphi braucht einen clean-slate, ein Delphi 2.0, um ohne den Turbo Pascal Krempel weitermachen zu können.
procedure SomeClass.Miep;
begin using trööt := new TStringList() do begin trööt.Add('abc'); trööt.Xyz(); end; end; Was bringen einem solche Features, und der Großteil des Codes, den man anschauen muss sieht immer noch so abscheulich aus? |
AW: Träume, Wünsche und Wahnvorstellungen...
Zitat:
Im übrigen geht das mit der VCL schon seit über 10 Jahren :-D
Code:
In C++ gibt es RAII, das ist viel besser als dieses using aus C#. :thumb:
void __fastcall TForm1::Button1Click(TObject *Sender)
{ auto_ptr<TStringList> foo(new TStringList); foo->Add("trööt"); // Und automatisch weg ist die Stringlist ... } ![]() |
AW: Träume, Wünsche und Wahnvorstellungen...
Zitat:
Ganz einfach, weil du so mehrere Konstruktoren haben kannst, z.B.:
Delphi-Quellcode:
Klar, CreateFmt und CreateFromFile ließen sich als Klassenfunktionen deklarieren, aber was findest du verwirrender:
constructor Create(const s: string);
constructor CreateFmt(const s: string; const args: array of const); constructor CreateFromFile(const filename: string);
Vergleiche bitte mal:
Delphi-Quellcode:
// schön
x := TKlasse.Create(..); x := TKlasse.CreateFmt(..); x := TKlasse.CreateFromFile(..); // hässlich x := new TKlasse(..); x := TKlasse.CreateFmt(..); x := TKlasse.CreateFromFile(..); |
AW: Träume, Wünsche und Wahnvorstellungen...
Zitat:
Hier wird noch heimlich ein Klassenzeiger (dass es die überhaupt gibt ist eine weitere Stärke) übergeben. Der Vorteil: Klassenmethoden können dadurch virtuell sein und überschrieben werden :cyclops: Ich habe eine Zeit lang nur mit C# programmiert. Mir haben viele Features davon sehr gefallen, aber manches habe ich vermisst:
|
AW: Träume, Wünsche und Wahnvorstellungen...
Man sollte ienfach unterbinden, daß man Konstruktoren nur noch über Typen aufrufen kann und nicht über Objekte (bzw. daß es eine Compiler-Warnung gibt)
und schon ist das Problem behoben, was vorallem viele Anfänger haben, welche
Delphi-Quellcode:
anstatt von
Variable.Create;
Delphi-Quellcode:
aufrufen.
Variable := Typ.Create;
|
AW: Träume, Wünsche und Wahnvorstellungen...
Also ich finde die Konstruktor-Variante unter Delphi eigentlich von allen Sprachen so mit am elegantesten, und zwar gerade weil der Konstruktor aussieht wie eine Klassenmethode. Passt doch super ins objektorientierte Schema: Die Klasse ist selbst dafür zuständig, eine Instanz von sich zu erzeugen.
Und dass man mehrere Konstruktoren haben kann, finde ich auch ein nettes Feature. Wer seinen Standard-Konstruktor anders nennt als
Delphi-Quellcode:
ist imo selbst schuld... dass z.B. eigene Typen mit dem Präfix T beginnen schreibt Delphi ja auch nicht explizit vor, aber es ist die gängige Konvention.
Create
|
AW: Träume, Wünsche und Wahnvorstellungen...
Zitat:
Delphi-Quellcode:
und alle Destruktoren
Init
Delphi-Quellcode:
heißen müssen, sonst gibt's eine Fehlermeldung.
Done
Die Option hab ich irgendwie mal in 'nen Projekt reingekriegt, und deshalb heißen da jetzt alle meine Konstruktoren und Destruktoren Init und Done :angel2: [edit] Laut ![]()
Code:
-Ss Constructor name must be init (destructor must be done)
|
AW: Träume, Wünsche und Wahnvorstellungen...
Zu den Build-Ereignissen hätte ich auch gerne noch etwas Post-Build-Ähnliches, welches nach einem erfolglosem Compilierungsversuch ausgeführt wird.
|
AW: Träume, Wünsche und Wahnvorstellungen...
Zitat:
Zitat:
Zitat:
Zitat:
Hoppla hab da doch einen Report dafür bei der Suche gefunden ;-) Report No: 90767 Status: Reported Regression: E2010 with multiple default properties in a generic type ![]() Zitat:
Zitat:
(siehe ![]() Zitat:
Im Ernst: Allein schon aus der QA Perspektive halte ich das für bedenklich. Selbst gute Entwickler reisen hin und wieder mit dem A* was sein. (selbst Andy) Zitat:
(siehe ![]() Zitat:
Report No: 89028 (RAID: 277639) Status: Open Custom Module support ![]() Zitat:
Report No: 52968 (RAID: 222435) Status: Open Add a horizontal / vertical splitter in the code editor ![]() Für die Fälle wo ich es momentan gebraucht habe reicht mir ein Bookmark Viewer. Zitat:
Interessant ist hier der Thread ![]() Eins noch zum voten für QC Reporte - ihr habt pro Report +/- 10 Votes und nicht insgesamt...außer ihr versucht es mit dem Webclient. Stattdessen den Win32 Client (in der IDE: Tools | Quality Central) oder ![]() |
AW: Träume, Wünsche und Wahnvorstellungen...
Es ist schon recht auffällig, dass ein nicht zu kleiner Anteil der Wünsche (gerade auf den letzten 2-3 Seiten) sehr stark an .NET bzw. C# erinnern. Sollte ich nicht der einzige sein, der sich mittelfristig dort ein zweites Zuhause vorstellen könnte? :)
Ich bin da aber durchaus auf ähnlichen Straßen unterwegs. So manches Konzept aus der C#-Welt ist einfach Delphi in die richtige Richtung weiter gedacht, allerdings mit C im Hinterkopf. Dünke man ähnliches noch mal, aber dieses Mal mit Delphi aufm Schirm, könnte da was echt potentes bei rum kommen. Allerdings nicht, ohne zuvor den bereits benannten "clean slate" herzustellen. Von mir aus auch sehr gern mit ein paar kleineren "Legacy-Brüchen", ggf. mit Konverterassistent. Einfaches Portieren von alt auf neu ist zwar echt wertvoll, langfristig, vor allem mit der ein oder anderen Paradigmenverschiebung, handelt man sich so aber doch einiges an krüppeligem Ballast ein, der u.U. auch ein angestaubtes "Feeling" begünstigt. Im Zweifel muss sogar mal ein neuer Name her. Wenn ich in meinem ehemaligen Uni/FH-Umfeld von Delphi sprach, waren die meisten schon völlig baff, dass es objektorientiert ist :shock: - ja, sehr viele davon auch Professoren/Referenten. Folgerung: Viele, auch (und vielleicht sogar gerade) im akademischen Umfeld, bringen Delphi mit TP5 in Zusammenhang, denken es wäre alt und seit 20 Jahren überholt, und würdigen es nichtmal eines zweiten Blickes. Daher formuliere ich einfach mal ganz schwammig: Ich wünsche mir für "Neopascal" ein frischeres Image =) |
AW: Träume, Wünsche und Wahnvorstellungen...
"NeoPascal" klingt gut. Vielleicht kauft Dir Emaba die Namensrechte ab? :-D
In die NET-Richtung sollte es m.E. nicht gehen. Natives Win32 bzw. Win64 sollte auf jeden Fall der Weg bleiben. Wer für NET entwickeln will, wird eh auf C# oder Prism setzen. Entsprechend sollte auch die Sprache Pascal selbst erhalten bleiben. Aber eine Generalüberholung von Delphi (in welchen Bereichen im Detail auch immer) würde ich befürworten und dafür auf eine Aufwärtskompatibilität verzichten. Insbesondere auch eine neue VCL ohne Altlasten wäre wünschenswert. Die IDE ist jedoch weitestgehend perfekt. Da wünsche ich mir nichts grundlegend anderes. |
AW: Träume, Wünsche und Wahnvorstellungen...
Zitat:
![]() Zitat:
|
AW: Träume, Wünsche und Wahnvorstellungen...
Die Abwärtskompatibilität war immer die Stärke von delphi. An dieser sollte man imho nicht rütteln.
|
AW: Träume, Wünsche und Wahnvorstellungen...
Zitat:
Auch wenn ich gerade den anderen Report nicht mehr wiederfinde. PS: "Commodore" war mal so für 2008 geplant ... mit 64 Bit-Compiler, wegen dem uralten Commodore 64 |
AW: Träume, Wünsche und Wahnvorstellungen...
Hallo,
was ich mir wünschen würde wär eine einfachere Verwaltung von Projekteinstellungen in grossen Projektgruppen. Also z.B. einfach mal für alle im Projektmanager markierten Projekte die Optimierung ein/ausschalten. Mit den unterschiedlichen Build-Konfigurationen ist das zwar schon einfecher geworden als vorher aber man muss teilweise, wenn man keine passenden Konfiguration verfügbar hat, doch jedes Projekt einer Projektgruppe anfassen wenn man global eine Einstellung ändern will. Ciao, Ralf |
AW: Träume, Wünsche und Wahnvorstellungen...
Ich fänd es praktisch, wenn man z.B. die FinalBuilder-Projekte direkt als Projektgruppe in Delphi nutzen könnte.
Und daß dann die Projekt-Einstellungen im FinalBuilder mit denen vom Delphi 100% identisch wären. Und auch da sollte man dann (so wie vom Vorgänger schon genannt) mehreres leicht umstellen können, bzw. via Befehl ein anderes Profil auswählen können. (was Delphi nicht kann, dass könnte ja als deaktiviertes Dummy-Projekt in dieser Gruppe angezeigt werden ... bei XML isses ja egal, ob man alles versteht) Aber genial wäre es, wenn man das dann auch noch komplett in der IDE laufen lassen könnte. |
AW: Träume, Wünsche und Wahnvorstellungen...
Noch ne "Wahnvorstellung":
Ich würde gerne beliebige Datenquellen an beliebige Controls zum Darstellen oder bearbeiten binden können. Unter "Datenquellen" stelle ich mir dabei vor:
Diese Informationen sollten einfach an beliebige Controls (also nicht DBGrid, sondern einfach nur Grid) zu binden sein. (Unter .NET geht das ja sehr gut.) In Delphi würde dabei natürlich eine gehörige Dosis RTTI im Hintergrund werkeln müssen. |
AW: Träume, Wünsche und Wahnvorstellungen...
Hört sich so an,
als ob die Standard-Controls ganz einfach verschwinden, nur noch DataSetControls in Delphi verbleiben und DataSetListe als Grundlage für Memos, StringGrid und StringList dienen sollen ? Oder jede Componente hat einen Anschluss an eine MemIni? |
AW: Träume, Wünsche und Wahnvorstellungen...
Quark - es geht darum, dass die Standard-Controls auch die Möglichkeit bekommen, z.B. mit Datenbanktabellen zu interagieren und man dazu keine speziellen DB-Controls mehr braucht.
Kurz gesagt: Mehr Funktionalität für die Standard-Controls, dann können die DB-Controls abgeschafft werden. Es geht aber nicht nur um DBs - auch andere Datenquellen wie Stringlists, Variablen, Dateistrukturen usw. sollen auch als Datenquelle zu gebrauchen sein. So verstehe ich das. |
AW: Träume, Wünsche und Wahnvorstellungen...
Quark ist gesund!
wegen mir auch so, die Sache ist jedenfalls gut. Die meisten meiner abgeleiteten Controls haben MemIni-Anschluss, aber das ist natürlich nicht so flexibel. Das dürfte die VCL aber deutlich durchrütteln. |
AW: Träume, Wünsche und Wahnvorstellungen...
Zitat:
Was ich mir wünsche:
P.S.: Wenn ich mir die Liste so anschaue... eventuell sollte ich einfach zu Delphi Prism wechseln :mrgreen: |
AW: Träume, Wünsche und Wahnvorstellungen...
Zitat:
In .NET kann man z.B. eine Liste von Objekten eines bestimmten Typs erstellen (z.B. eine Liste von TPerson) und diese ganz einfach zur Darstellung an ein Control binden. Ein Grid würde dann für alle enthaltenen Tpersonen jeweils den Namen, Vornamen und das Alter in Spalten anzeigen und das ohne, dass man dafür irgendwelche speziellen Controls benötigt. Die dazu nötigen Interfaces werden in .NET schon sehr früh in der Klassenhierachie definiert, sodass sich fast alles so darstellen/behandeln lässt- Und etwas ähnliche würde ich mir für kommende VCL-Versionen wünschen (na ja, hier im Thread waren ja auch "Wünsche" und "Wahnvorstellungen" erlaubt! :wink:) |
AW: Träume, Wünsche und Wahnvorstellungen...
Ja dafür müsste Embracadero wahrscheinlich das komplette Delphi-Praxis-Community-Team für ein Jahr beschäftigen . . .
|
AW: Träume, Wünsche und Wahnvorstellungen...
... Andererseits, wenn Stevie mal so nebenbei eine Databinding-Lösung "aus dem Ärmel schüttelt" und selbst ich eine Möglichkeit gefunden habe, Referenzen auf meine freigegebenen Objekte automatisch auf nil zu setzen, so einiges sollte schon lösbar sein.
|
AW: Träume, Wünsche und Wahnvorstellungen...
Also Leute, mit 'Published' geht das doch sowieso Eins-Fix-Drei.
|
AW: Träume, Wünsche und Wahnvorstellungen...
Zitat:
|
AW: Träume, Wünsche und Wahnvorstellungen...
Witzbold. Mit 'published' Eigenschaften kann ich das aber Eins-Fix-Drei erledigen.
Kann mir nicht vorstellen, das Du wirklich so borniert bist. |
AW: Träume, Wünsche und Wahnvorstellungen...
..[/Sarkasmus][Sachlichkeit]...
|
AW: Träume, Wünsche und Wahnvorstellungen...
Zitat:
Also: erst informieren, dann mitreden, hier war die Rede von einer nativen Databinding Unterstützung der VCL ohne die Notwendigkeit, selber was zu schreiben. |
AW: Träume, Wünsche und Wahnvorstellungen...
Zitat:
|
AW: Träume, Wünsche und Wahnvorstellungen...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:59 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