Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Umstieg von C# auf Delphi
Distemix - Mo 10.11.08 18:12
Titel: Umstieg von C# auf Delphi
Hi,
Ich bin neu hier im Forum und möchte mir Delphi Programmierung aneignen. Bisher hab ich viel in C# und C++ programmiert und bin in beiden sprachen sowie der objektorientierten Programmierung recht fit. Ich hätte nun einige start Fragen:
1. Ist Delhi ähnlich objektorientiert wie C#, also das wirklich alles ein Objekt ist sogar die Datentypen oder findet man die objektorientierung in einer abgeschwächteren Form bei Delphi wieder?
2. Hat jemand evtl. Erfahrungen sammeln können, wie schwer der umstieg von C# und C++ auf Delphi ist?
3. Exestiert vieleicht ein gutes E-Book, Buch oder Toturial das sich besonders gut für den schnellen Einstieg von C#/C++ auf Delphi eignet?
Gruß Distemix
Boldar - Mo 10.11.08 18:32
Also zu 1.
Die Datentypen sind nicht objektorientiert, also ein integer ist halt ein integer und sowas wie
Delphi-Quelltext
1: 2: 3: 4:
| var i: integer; s: string; begin i:=0; s:=i.tostring |
geht nicht.
Inwiefern man die OOP in seinen eigenen Programmen umsetzt, ist jedem selbst überlassen...
Moderiert von
matze: Code- durch Delphi-Tags ersetzt
Distemix - Mo 10.11.08 18:52
Danke schon mal für die Antwort :)
Würde mich freuen, wenn noch jemand zu Frage 2 und 3 etwas schreiben würde ;)
Gruß Distemix
Kha - Mo 10.11.08 19:33
Titel: Re: Umstieg von C# auf Delphi
Distemix hat folgendes geschrieben : |
| 1. Ist Delhi ähnlich objektorientiert wie C#, also das wirklich alles ein Objekt ist sogar die Datentypen oder findet man die objektorientierung in einer abgeschwächteren Form bei Delphi wieder? |
Zu den primitiven Typen wurde schon etwas gesagt (vor allem besitzen nur Klassen eine gemeinsame Basisklasse (was sich auf den ersten Blick auch sinnvoll anhört :mrgreen:)), zusätzlich muss man noch bemerken, dass Delphis API noch viele prozedurale Wurzeln zeigt; besonders Interfaces wirst du äußerst selten antreffen. Dafür gibt es ab D2009 Generics.
Distemix hat folgendes geschrieben : |
| 2. Hat jemand evtl. Erfahrungen sammeln können, wie schwer der umstieg von C# und C++ auf Delphi ist? |
Mit C# und C++ zusammen sollte dir in Delphi eigentlich kein unbekanntes Konzept begegnen, den meisten Aufwand beim Umstieg bereiten wie immer Syntax und API.
Distemix hat folgendes geschrieben : |
| 3. Exestiert vieleicht ein gutes E-Book, Buch oder Toturial das sich besonders gut für den schnellen Einstieg von C#/C++ auf Delphi eignet? |
Aufgrund der kleinen Zielgruppe sehe ich da leider schwarz :( . Seiten zum Vergleich der Syntax sollten sich aber einige finden lassen.
Distemix - Mo 10.11.08 19:44
Titel: Re: Umstieg von C# auf Delphi
Zu 3 nochmal: Was wäre denn allgemein, eine gute Quelle um sich Delphi anzueignen?
Soll ich mir ein Buch kaufen oder lieber ein Toturial im Internt angucken?
Gruß Distemix
Jakob_Ullmann - Mo 10.11.08 21:15
Um das Internet wirst du nicht herumkommen, wegen Aktualität und Umfang. Zum Einstieg musst du entscheiden, was dir besser gefällt. Delphi für Kids ist IMO gut, allerding nur die aller einfachsten Basics. Der Crashkurs von Christian Stelzmann ist auch sehr beliebt.
->
http://www.christian-stelzmann.de/index.php?catName=tutorials_crashkurs
Boldar - Mo 10.11.08 21:40
Ich kann das Buch
von Thomas Binzinger mit der ISBN 978-3-82724108-5 bzw. 3-8272-4108-1
enpfehlen, dort wird auf (fast) alles eingegangen, und es gibt auf der beigelieferten DVD etliche Kapitel mit "Speziallektüre" zB. zum Thema assembler oder MMX.
Wolle92 - Mo 10.11.08 22:33
Das gleiche Buch habe ich auch gelesen, für den Anfang...
Ich find es sehr klasse, hat auch Spaß gemacht damit zu lernen...
Delete - Mo 10.11.08 22:38
Oder Delphi for Kids . Ist zwar eigentlich für Kinder gedacht lässt sich aber trotzdem gut lesen. :)
Distemix - Mo 10.11.08 23:40
Hi,
Ich hab jetzt ein recht ordentliches Toturial gefunden und werde mich erstmal daran halten und evtl. später noch auf Lektürte zurück greifen.
Was jetzt noch fehlt, ist eine geignetete Enwicklungsumgebung. Ich habe mir jetzt eine heruntergeladen ich glaube sie hieß "Turbo Delfi 2006". Das Problem ist, dass er .Net 1.1 verlangt.. ich habe 3.5 auf meinem Rechner also läuft da irgendwas falsch, zudem scheint die Entwicklungsumgebung ja nicht grade aktuell zu sein, wenn 1.1 verlangt wird.
Welche kostenlose Entwicklungsumgebung sollte ich am besten benutzen und wo finde ich so etwas?
Gruß Distemix
jaenicke - Di 11.11.08 00:08
Turbo Delphi ist schon richtig. Du brauchst dabei auch die Prerequisites, die es auf der selben Seite gibt. Entpacke diese und Turbo Delphi einfach in den selben Ordner und starte die prereqs.exe im Verzeichnis install, dann werden die automatisch installiert.
Zum Thema veraltet: Es gibt auch die neueren Versionen Delphi 2007 und Delphi 2009, aber von denen gibt es bisher keine kostenlose Version.
Für .NET ist C# oder Oxygene allerdings deutlich besser geeignet als Delphi, das der Entwicklung da immer hinterherhinkt, deshalb brauchst du auch nicht die neueste .NET Version dafür.
Distemix - Di 11.11.08 08:16
Okey ich hab mir jetzt die "Prerequisites" runtergeladen. Ich müsste ja jetzt Framwork 1.1 instalieren damit Turbo Delphi ohne Probleme läauft. Kann ich das den einfach machen obwohl ich Framework 3.5 auf dem Rechner habe? Überschreibe ich damit nicht das 1.1 Framework, so dass meine C# und C++ Entwicklungsumgebungen nicht mehr laufen?
Gruß Distemix
jasocul - Di 11.11.08 10:57
Das Konzept bei .NET ist so, dass die Versionen parallel funktionieren sollen. Bisher habe ich auch keine anderen Erfahrungen gemacht. Bei mir laufen 1.1, 2.0 und 3.5 parallel.
Allerdings sind die auch in dieser Reihenfolge bei mir installiert worden.
jaenicke - Di 11.11.08 11:35
Ich habe sie in anderer Reihenfolge installiert ohne Probleme, auch das ist problemlos möglich.
Klabautermann - Di 11.11.08 13:48
Um nicht ständig alte Zöpfe aus Kompatibilätzgründen in die neuen Fameworks übernehmen zu müssen, wurden diese Exra für den Paralelbetrieb ausgelegt. Somit werden sie dir keine Probleme machen.
Wenn du zum lernen irgendwann auf dein gedrucktes Werk zurückgreifen willst kann ich dir nur die Titel von
Elmar Warken [
http://www.amazon.de/exec/obidos/search-handle-url?%5Fencoding=UTF8&search-type=ss&index=books-de&field-author=Elmar%20Warken] empfehlen. Ich selbst besitze noch das Exemplar zu Delphi 4 und halte es für das beste deuschsprachige Delphi Lehrbuch für den erfahreneren Programmierer. Es fängt zwar bei Adam und Eva an, legt aber im vergleich zu anderen Büchern ein ziemliches Tempo vor. Dieses kompaktere abhandeln der Grundlagen erlaubt dem Autoren dann ensprechend mehr Themen zu behandeln. Da bereits Programmiererfahrung hast solltest du dammit gut zurecht kommen können.
Aber wenn du an einem Buch dieses Autoren interessiert bist, würde ich dir empfehlen die Augen nach einem älteren Exemplar auf zu halten, denn die neueren beschäftigen sich mit Delphi .NET, welches du meiden solltest. Ich glaube das letzte dass sich mit Win32 Delphi beschäftigt ist der Titel zu
Delphi 6 [
http://www.amazon.de/Delphi-6-Elmar-Warken/dp/3827317738/ref=sr_1_10?ie=UTF8&s=books&qid=1226402854&sr=1-10].
Noch eine kleine Erklährung zu Delphi .NET: Dieses hinkt nicht nur wie bereits oben erwähnt immer der Entwicklung hinterher, es ist auch sehr - nun ja - Creativ umgesetzt so werden dir einige der Techniken die du aus C# kennst sehr umständlich erscheinen. Dass das bisherige Delphi .NET konzept nicht weiter tragbar ist, hat auch Embarcadero, der neue Besitzer von Delphi, erkannt und wird das Produkt deshalb
komplett umkrempeln [
http://www.delphi-forum.de/topic_Delphi+Prism+offiziell+angekuendigt_87563.html]. Es währe also reine Zeitverschwendung sich noch damit zu befassen. Dein Turbo Delphi ist übrigens kein Delphi .NET, es benötigt das Framework nur, weil seine IDE auf diesem basiert, die erzeugten Programme sind aber Win32 nativ und benötigen selbst kein Framework.
Gruß
Klabautermann
Distemix - Di 11.11.08 20:14
Hi,
Ich hab mir jetzt einen recht guten Crashkurs durchlesen und konnte mir dadurch schonmal einen recht guten Überblick von Delphi verschaffen. Ich habe nun auch die Entwicklungsumgebung instaliert bekommen nur will er jetzt eine Seriennummer und einen Authentiefiezierungsschlüssel von mir haben. Ich dachte eigentlich das die Enwicklungsumgebung kostenlos ist und bin jetzt etwas verwirrt, was das jetzt zu bedeuten hat.
Vieleicht kann mir ja jemand helfen. Habe ich evtl. die falche Enwicklungsumgebung gedownloadet?
hansa - Di 11.11.08 20:26
Distemix hat folgendes geschrieben : |
| ...Vieleicht kann mir ja jemand helfen. Habe ich evtl. die falche Enwicklungsumgebung gedownloadet? |
Eventuell. 8) Ganz sicher ist die Frage aber ohne Angabe der genauen Delphi-Download-Version nicht eindeutig zu beantworten.
Distemix - Di 11.11.08 20:31
Okey also das hab ich gedwonlaodet:
http://cc.codegear.com/Free.aspx?id=24737 -> Turbo Delphi 2006 Explorer
Ist das die falsche Version oder hab ich irgendwas übersehen, wo ich Seriennummer und einen Authentiefiezierungsschlüssel herbekomme?
Gruß Distemix
jaenicke - Di 11.11.08 20:35
Äh, links auf der von dir verlinkten Seite... :lol:
Distemix - Di 11.11.08 20:40
Super musste nochmal eine Anforderung machen jetzt hab ich die erforderlichen Daten und die Entwicklungsumgebung läuft :) Danke für die Hilfe soweit ;)
Ich hätte noch ne Frage soweit ich das mitbekommen habe muss man in Delphi jede Klasseninstanz wieder freigeben. Wird dies nicht automatisch gemacht, wenn man einen gewissen Gültigkeitsbereich verlässt? Also in C# muss man sich ja überhaupt nicht um die Speicherverwaltung kümmern und eigentlich sollte die Klasseninstanz ja auch keinen Speicher mehr belegen, wenn man den Gültigkeitsbereich verlässt in der sie bekannt ist oder?
Gruß Distemix
jaenicke - Di 11.11.08 21:05
Eine neue Frage gehört auch in einen neuen Thread.
Ganz kurz: Wenn du ein Objekt selbst erzeugst musst du es auch wieder freigeben. Dafür nimm Free oder FreeAndNil (letzteres setzt den Zeiger auch auf nil, so dass du später prüfen kannst ob das Objekt nil ist um zu schauen ob es existiert).
Eine Komponente, der du bei Create das Formular oder eine andere Komponente als Besitzer übergibst solltest du nicht selbst freigeben, das macht die besitzende Komponente dann selbst.
Bei weiteren Fragen / Nachfragen stelle diese bitte in einem neuen Thread, damit das hier nicht ausufert ;-), ggf. mit Zitaten aus der Antwort hier.
dummzeuch - Mi 12.11.08 01:14
Distemix hat folgendes geschrieben : |
Ich hätte noch ne Frage soweit ich das mitbekommen habe muss man in Delphi jede Klasseninstanz wieder freigeben. Wird dies nicht automatisch gemacht, wenn man einen gewissen Gültigkeitsbereich verlässt? Also in C# muss man sich ja überhaupt nicht um die Speicherverwaltung kümmern und eigentlich sollte die Klasseninstanz ja auch keinen Speicher mehr belegen, wenn man den Gültigkeitsbereich verlässt in der sie bekannt ist oder? |
Willkommen im 20. Jahrhundert ;-)
Ernsthaft: Delphi hat keinen eingebauten Garbage-Collector, d.h. Du musst das tatsaechlich alles selbst machen. Es gibt lediglich die Moeglichkeit, mit Interfaces zu arbeiten, dann sorgt das automatische Reference-Counting dafuer, dass Objekte freigegeben werden. Aber das ist meistens zu umstaendlich.
Gewoehne Dir am Besten sowas an:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| var MyObj: TMyObj; begin MyObj := TMyObj.Create; try .... finally MyObj.Free; end; end; |
Und damit man nicht zig solcher try...finally schachteln muss:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| var Obj1: TObject1; Obj2: TObject2; begin Obj1 := nil Obj2 := TObject2.Create; try ... Obj1 := TObject1.Create; ... finally Obj1.Free; Obj2.Free; end; end; |
twm
Christian S. - Mi 12.11.08 01:16
So, unnu is Schluss hie ;-)
Für neue Fragen bitte auch neue Thread erstellen. Mit passendem Titel in passender Sparte. Danke! :-)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!