Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Prism Ein paar Fragen zu den Win-Forms (https://www.delphipraxis.net/51912-ein-paar-fragen-zu-den-win-forms.html)

faux 21. Aug 2005 21:18


Ein paar Fragen zu den Win-Forms
 
Also ich hätte nochmal ein paar Fragen zum Thema Delphi.NET die ich nicht lösen lonnte (mit DP-Suche):
  • Wo liegt der Unterschied zwischen den klassischen VCL-Forms und den Win-Forms?
  • Bei den Win-Forms kappier ich garnix. Gibts da ein gutes Tutorial?
  • Mein Formular ist zB vom Typ TWinForm und heißt gleichzeitig TWinForm. Wie gehts das?
  • Wo sind die ganzen Events von der VCL hin (zB Create)?

Nya, ein Tutorial wäre nicht schlecht... :)

Grüße
Faux

CalganX 21. Aug 2005 21:26

Re: Ein paar Fragen zu den Win-Forms
 
Hi,
Zitat:

Zitat von faux
Wo liegt der Unterschied zwischen den klassischen VCL-Forms und den Win-Forms?

Die VCL-Forms sind von eine von Borland vorgenommene Kapselung der Win-Forms. Hintergrund war, dass man versuchte alte Delphi für Win32-Projekte einfach nach .NET zu migrieren. Es ist besonders gedacht, um die alten Methoden, Klassen, Befehle etc. auf .NET zu übrtragen.

Zitat:

Mein Formular ist zB vom Typ TWinForm und heißt gleichzeitig TWinForm. Wie gehts das?
In Delphi für Win32 hast du immer mit Instanzen von der Klasse gearbeitet. D.h. deine Klasse hieß bspw. TfrmMain und du hattest eine Instanz, die frmMain hieß. In .NET arbeitet man aber immer nur noch im Rahmen von Assemblies und deswegen verwendet man nur noch die Klasse selber und keine Instanz.
Warum und wie genau das alles von statten geht, kann ich dir auch nicht sagen, dafür kenne ich mich nicht gut genug mit .NET aus.

Zitat:

Wo sind die ganzen Events von der VCL hin (zB Create)?
Die gibt es immer noch, nur heißen sie jetzt anders. Zum Beispiel verwendest du nicht mehr das OnCreate-Ereignis, sondern nur noch den Konstruktur (schau dazu in den Source). Ein ähnliches Ereignis wäre Load (den Prefix "On" gibt es nicht mehr, da man in .NET Ereignisse wesentlich besser erkennt, als in Standard-Delphi-Language).

Chris

faux 21. Aug 2005 21:33

Re: Ein paar Fragen zu den Win-Forms
 
OK, danke vorerst mal.
Kennst du zufällig ein Tutorial zum einstieg? Den Rest probier ich dann selbst, aber zum Einstieg wär ein Tutorial net schlecht...

CalganX 21. Aug 2005 21:45

Re: Ein paar Fragen zu den Win-Forms
 
Hi,
tut mir Leid, kenne ich leider nicht. Aber du kannst mal auf Seiten, wie The Code Project oder ähnliches gucken. Dort wirst du Tutorials für C# finden. Wenn du Delphi gut kannst, wirst du in die Syntax von C# schnell reinfinden. Und was in diesem Tutorial erklärt wird, funktioniert im Normalfall dann auch 1-zu-1 bei Delphi, da die Befehle/Assemblies die Gleichen sind (wenn es um Sprachdetails geht, gilt meine Aussage natürlich nicht). ;) Außerdem kann es nicht schaden C# zu können, da es die Sprache für .NET ist. :mrgreen:

Aber ein konkretes Tutorial kenne ich leider nicht, sorry.
Chris

faux 21. Aug 2005 21:50

Re: Ein paar Fragen zu den Win-Forms
 
Zitat:

Zitat von Chakotay1308
Hi,
tut mir Leid, kenne ich leider nicht. Aber du kannst mal auf Seiten, wie The Code Project oder ähnliches gucken. Dort wirst du Tutorials für C# finden. Wenn du Delphi gut kannst, wirst du in die Syntax von C# schnell reinfinden. Und was in diesem Tutorial erklärt wird, funktioniert im Normalfall dann auch 1-zu-1 bei Delphi, da die Befehle/Assemblies die Gleichen sind (wenn es um Sprachdetails geht, gilt meine Aussage natürlich nicht). ;) Außerdem kann es nicht schaden C# zu können, da es die Sprache für .NET ist. :mrgreen:

Gute Idee, werd ich mal machen.
Ist der einzige Unterschied zwischen VB.NET, C# und Delphi.NET eigentlich der Syntax, oder wie sehe ich das? :S

Da fällt mir grad ein, ich hab mir mal ein Buch ausgeborgt und noch nicht zurückgegeben:
http://www.amazon.de/exec/obidos/ASIN/3827267730/delphipraxis-21

CalganX 21. Aug 2005 22:02

Re: Ein paar Fragen zu den Win-Forms
 
Hi,
Zitat:

Zitat von faux
Ist der einzige Unterschied zwischen VB.NET, C# und Delphi.NET eigentlich der Syntax, oder wie sehe ich das? :S

jein. Pauschal kann man das nicht sagen, aber im Groben schon.
Es gibt einige kleine Sachen, die mit der einen Sprache gehen und mit der anderen nicht (spontan fallen mir da die [dp]ClassHelper*[/dp] ein). Oder manche Dinge sind einfach anders zu handhaben. Das liegt aber meistens daran, dass die Syntax anders aufgebaut ist und deswegen manche Tricks aus C# z.B. nicht in VB.net oder Managed C++ funktionieren...

Chris

Robert_G 21. Aug 2005 22:04

Re: Ein paar Fragen zu den Win-Forms
 
Zitat:

Zitat von faux
Ist der einzige Unterschied zwischen VB.NET, C# und Delphi.NET eigentlich der Syntax, oder wie sehe ich das? :S

Jain...
Alle .Net Sprachen teilen die gleiche RTL (mscorelib.dll) und sie können auch fleißig gegenseitig Klassenbibliotheken verwenden.
D.Net fällt aber durch seine krasse Verwebung mit einer 2. RTL aus der Rolle.
Es ist in D.NBet nicht möglich irgendetwas zu machen, dass keine Bezüge zu dieser RTL bewirkt.
Auch die Art und Weise wie Assemblies geladen werden unterscheidet sich vom .Net Standard.
Während normalerweise nur die KLasse geladen werden, die du auch anfasst (und auch erst dann), verlangt D.Nets Mangel an class constructors, dass sie alle geladen werden. Wieder so ein Kompatibilitätsding um mit der alten initialization/finalization Syntax nicht abzubrechen. Es wird auch einen Haufen Zusatzkrams an deine Klassen hauen, so dass D.Net Assemblies und Klassen immer anders aussehen, als Kompilate aller anderen .Net Sprachen.
Mag hart klingen, aber ich bin basolut nicht einverstanden, mit der Art in der Delphi für Net implementiert wurde.
DAS hat Delphi IMHO einfach nicht verdient... :cry:

Edit:
@Chris
class elpers sind aber nur ein simpler Trick. Du verdankst ihnen übrigens, dass dir an jeder Klasse die Methode Dispatch aufgezwungen wird. Innerhalb einer D.Net Assembly könnten sie sinnvoll sein (siehe sakuras XmlNode), aber niemand anders kann es nutzen, da sie nicht von der Runtime unterstützt werden...

Zum Lernen von .Net ist C# eine prima Sache, es kann einfach nicht mehr, als dass, was ihm .Net vor die Füße wirft. ;)

p.s.: Da du den Reflector entdeckt hast:
Teste mal eine kleine kompilierte D.Net Assembly gegen ihr C# Gegenstück. :cyclops:

Delphi-Quellcode:
type
  SomeClass = class
  public
    procedure DoNothing;
  end;

implementation

procedure SomeClass.DoNothing;
begin
end;
Code:
public class SomeClass
{
  public void DoNothing()
  {}
}

faux 21. Aug 2005 22:19

Re: Ein paar Fragen zu den Win-Forms
 
OK, danke!

@Robert_G: Ich weiß nicht ob du auf das hinaus wolltest, aber die C#-APplikation hat nur 3,5KB und macht genau das Selbe wie die Delphi.NET, welche aber 35KB hat und das nur weil sie vier Borland-Units hat.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:20 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