Diskussion:Programmierkurs: Delphi

Aus Wikibooks
Zur Navigation springen Zur Suche springen

Wünsch dir was[Bearbeiten]

Wie wärs mit einem Kapiel über die grundsätzliche Datenbankintegration?--84.142.34.193 21:49, 18. Jan. 2007 (CET)

Hallo mir fehlen hier noch Namenskonventionen etc. Ich wurde in einem Forum nett aber bestimmt aufgefordert mich an diese zu halten - wie z.B. das Klassen mit T beginnen - ein Konstruktor Constructor heißt und nicht new etc. Gerade wenn man von anderen OO Sprachen kommt wäre dies sehr hilfreich--Author 19:05, 13. Mai 2007 (CEST)

Erledigt, s. Kapitel Der (richtige) Programmierstil. -- Dannys9 19:44, 30. Mai 2007 (CEST)

Mehr GUI bitte.[Bearbeiten]

Hallo,

Ich bin selbst Programmierer mit bevorzugter Sprache Delphi. Ich finde dieses Wikibook recht gut nur wird meiner Meinung nach zuwenig bezug zum Aufbau von Programmen mit GUI genommen. Vor allem auf Programme mit mehreren Fenstern und MDI und SDI programmen. Es fehlt auch noch, finde ich oder ich habs nicht gefunden, die Erklärung wie man dynamisch fenster oder komponenten erstellt.

Hallo,
bisher ist hier die allgemeine Programmierung mit Delphi beschrieben (und das leider auch noch nicht vollständig). Ein Kapitel für die Programmierung von Benutzerschnittstellen ist auf jeden Fall vorgesehen. Da jedoch noch nicht alle Grundlagen beschrieben sind, gibt es zum Thema GUI noch nicht viel. Auch das dynamische Erstellen von Komponenten wird dann thematisiert.
Wenn du magst, ist deine Hilfe hierbei willkommen! --Dannys9 19:13, 24. Okt. 2007 (CEST)
Öhhm jop ok. Ich muss mich nur noch übers anmelden informieren, was das so kostet und welche AGBs herrschen.
Wikibooks ist kostenlos und du kannst auch ohne Anmeldung mitarbeiten. --Dannys9 20:25, 26. Okt. 2007 (CEST)
Hab mich jetzt trotzdem angemeldet. Schreib mir einfach per E-Mail was ich machen soll. --Elundril 19:05, 31. Okt. 2007 (CET)
Sorry, war jetzt länger nicht hier. Es gibt da (inhaltlich) keine speziellen Vorgaben. Ich würde zunächst die Einleitung in Programmierkurs: Delphi: Erstellung einer grafischen Oberfläche abändern, da der Text dann wahrscheinlich völlig überflüssig wird. Dann eine kleine Einführung in die Oberfläche und die Funktionen von Delphi/Lazarus mit ein paar Beispielen. Was ein Lehrbuch eben so bietet ;-) Sei aber bitte vorsichtig mit Screenshots von Delphi, das ist urheberrechtlich geschütztes Material. Etwas problemloser ist wahrscheinlich Lazarus, da das freie Software unter der GPL ist. Du benutzt besser davon Screenshots und erklärst nur im Text, wo man die äquivalente Funktion in Delphi findet (siehe Urheberrechte). Und keine Angst, etwas falsch zu machen, es wird schon jemand korrigieren. Viel Spaß!
Ich hab mal das Teil erweitert, denn wie gesagt ist es ja ein großer Vorteil von Delphi! --Jayk 19:01, 30. Mär. 2008 (CEST)


Bearbeitungshinweise[Bearbeiten]

Verwendete Vorlagen[Bearbeiten]

Syntax Highlighting[Bearbeiten]

Ich habe gestern auf allen Seiten die Programmbeispiele mit Syntax-Highlighting versehen. Die Formatierung richtet sich nach dem Delphi-Vorgabewerten (ich benutze Delphi 2005 PE als Vorlage). Da MediaWiki diverse Zeichenfolgen interpretiert, wird manchmal der formatierte Text als {{{1}}} angezeigt. In diesem Falle muss der Parameter der Vorlage in <nowiki> ... </nowiki> eingeschlossen werden. Das ist überwiegend bei Kommentaren der Fall.

Mir ist bekannt, dass dadurch die Bearbeitung des Quellcodes erschwert wird. Wem das zuviel Arbeit, zu kompliziert oder gar unmöglich ist, ein Beispiel zu ändern oder ein neues einzubauen, kann gern den Text ohne jede Formatierung eingeben und mich per E-Mail informieren. Ich bin gern bereit, anschließend die notwendigen Änderungen vorzunehmen. Meine Adresse: dannys9 (at) gmx dot de

Folgende Vorlagen stehen zur Verfügung:
Vorlage Beispiel
{{:Programmierkurs: Delphi/ Vorlage:RESERVIERT|<Wort>}} {{:Programmierkurs: Delphi/ Vorlage:RESERVIERT|procedure}}

Ergibt: procedure

{{:Programmierkurs: Delphi/ Vorlage:DIREKTIVE|<Compiler-Direktive>}} {{:Programmierkurs: Delphi/ Vorlage:DIREKTIVE|IFDEF DEBUG}}

Ergibt: {$IFDEF DEBUG}

{{:Programmierkurs: Delphi/ Vorlage:KOMMENTAR1|<Kommentar>}} {{:Programmierkurs: Delphi/ Vorlage:KOMMENTAR1|Was hier wohl passiert?!}}

Ergibt: {Was hier wohl passiert?!}

{{:Programmierkurs: Delphi/ Vorlage:KOMMENTAR2|<Kommentar>}} {{:Programmierkurs: Delphi/ Vorlage:KOMMENTAR2|// <- nicht zuhause nachmachen}}

Ergibt: // <- nicht zuhause nachmachen

{{:Programmierkurs: Delphi/ Vorlage:ZAHL|<Zahl>}} {{:Programmierkurs: Delphi/ Vorlage:ZAHL|517}}

Ergibt: 517

{{:Programmierkurs: Delphi/ Vorlage:FLIESS|<Fließkomma>}} {{:Programmierkurs: Delphi/ Vorlage:FLIESS|8.15}}

Ergibt: 8.15

{{:Programmierkurs: Delphi/ Vorlage:STRING|<String>}} {{:Programmierkurs: Delphi/ Vorlage:STRING|'Hallo Welt!'}}

Ergibt: 'Hallo Welt!'

{{:Programmierkurs: Delphi/ Vorlage:ASM|<Befehle>}} {{:Programmierkurs: Delphi/ Vorlage:ASM|mov ax, 3}}

Ergibt: mov ax, 3

-- Dannys9 11:56, 22. Jun 2006 (UTC)

Navigationsleiste[Bearbeiten]

Am unteren Rand jeder Seite sollte sich eine Navigationsleiste befinden, mit der man jeweils eine Seite zurück, ins Inhaltsverzeichnis und eine Seite vor blättern kann. Hierfür habe ich die folgende Vorlage erstellt:

Vorlage Beispiel
{{:Programmierkurs: Delphi/ Vorlage:Navbar|<vorherige Seite>}} {{:Programmierkurs: Delphi/ Vorlage:Navbar| Register: Nach Unit}}
Arrow left.png Register: Nach Unit Inhaltsverzeichnis  
{{:Programmierkurs: Delphi/ Vorlage:Navbar|<vorherige Seite>|<nächste Seite>}} {{:Programmierkurs: Delphi/ Vorlage:Navbar| Pascal: Typdefinition| Pascal: Zeiger}}
Arrow left.png Pascal: Typdefinition Inhaltsverzeichnis Pascal: Zeiger Arrow right.png
{{:Programmierkurs: Delphi/ Vorlage:Navbar||<nächste Seite>}} {{:Programmierkurs: Delphi/ Vorlage:Navbar|| Warum Pascal}}
  Inhaltsverzeichnis Warum Pascal Arrow right.png

Man sollte wie bei einem Buch in Papierform von jeder Seite aus jeweils vor und zurück blättern können, also bitte keine Unterbrechung der Kette am Ende des Kapitels. Der Leser soll nicht gezwungen werden, erstmal wieder im Inhaltsverzeichnis nachzublättern, um weiter lesen zu können.

Weiterhin darf bei den Linkangaben nur die gekürzte Form verwendet werden. Der Namensraum Programmierkurs: Delphi: wird automatisch davor gesetzt.
-- Dannys9 11:56, 22. Jun 2006 (UTC)

Druckversion[Bearbeiten]

Für die Druckversion steht jetzt die Vorlage Programmierkurs: Delphi/ Vorlage:TODO zur Verfügung. Diese kann anstelle von geplanten, aber noch nicht geschriebenen Seiten eingefügt werden. Den geplanten Seitentitel bitte als Überschrift der entsprechenden Ebene darüber setzen. Zur Verwendung siehe Info auf der Vorlagenseite.
-- Dannys9 12:09, 28. Mai 2007 (CEST)

Autorenliste[Bearbeiten]

Auf der Titelseite befindet sich jetzt rechts oben der Link auf die Autorenliste. Wenn jemand, der dort noch nicht genannt ist, an diesem Buch mitarbeitet, bitte dort in alphabetischer Reihenfolge eintragen. Die Liste enthält die kumulierten Daten aller Seiten dieses Buches.

IP-Adressen habe ich nicht aufgeführt, da diese ziemlich nichtssagend sind. Falls sich ein Gast dort namentlich eintragen möchte, bitte nicht zögern!
--Dannys9 22:48, 23. Jun 2006 (UTC)

Sonstiges[Bearbeiten]

Kategorie[Bearbeiten]

Hallo, Ihr Lieben. Ich habe gerade für das Regal Programmierung die Kategorie:Programmierung eingerichtet (siehe dazu meinen Kommentar auf der Regaldisku). Dabei ist mir aufgefallen, dass Delphi eine eigene Kategorie:Delphi nur für sich selber hat. Da das IMHO nicht der Sinn einer Kategorie ist, bitte ich Euch, Euer Buch nur noch in der [[:Kategorie:Programmiersprachen]] zu kategorisieren. Kategorie:EDV ist unpassend, da die zum Regal:EDV gehört. Ich bin Euch dabei und bei einem evtl. (S)LA gegen die Kategorie:Delphi auf Wunsch gerne behilflich. Bitte meldet Euch aber dann auf meiner Benutzerdisku, da meine Beobachtung sowieso schon überfüllt ist. MfG -- Stefan Majewsky 00:20, 4. Sep 2006 (CEST)

Kapitel Interfaces und Funktionen[Bearbeiten]

Ich hätte mal zwei Fragen:

  • Was war eigentlich der Sinn des Kapitels "Interfaces"? Anscheinend wurde das ja mit der Begründung "Blödsinn" gelöscht. Wenn das Kapitel Blödsinn ist, könnte man es dann nicht aus dem Inhaltsverzeichnis rausnehmen?
  • Was sollen eigentlich für Units beim Kapitel "Funktionen -> Nach Unit" enthalten sein?

--Jayk 18:00, 19. Apr. 2008 (CEST)

Hallo! "Interfaces" wurde gelöscht? Für mich sieht's so aus, als wäre nur der Link aber noch nie die Seite angelegt worden ;-). Wie der Titel schon sagt, sollen darin Interfaces beschrieben werden. Das sind spezielle Objekte, die nur Methodendeklarationen zur Verfügung stellen, nicht aber deren Implementation. Eine Klasse muss dann ein Interface erben und selbst die Methoden implementieren (s. Delphi-Hilfe "Objektschnittstellen"). Ich kann da nichts weiter zu schreiben, da ich noch nie Interfaces benutzt habe. Diese sind jedoch interessant für mehrfache Vererbung, also wenn mehrere Objekte aus verschiedenen Methodenlisten "zusammengesetzt" werden sollen. Dies ist ein wichtiger Teil von Delphi, sollten also auch im Buch vorkommen.
Ich glaube, "Funktionen nach Unit" war in etwa so gedacht:
- System:
    Abs
    Addr
    ...
- SysUtils:
    Abort
    Beep
    ...
...eben eine Auflistung der Routinen, die in den jeweiligen Units aufgeführt sind. Ob das so sinnvoll ist, Routinen in Listen aller möglichen Kriterien einzusortieren, ist dann noch eine zweite Frage. Thematisch sortiert (wie von dir bereits begonnen), halte ich für besser.
Da hätte ich eine Anmerkung: Du hattest bereits ein Kapitel Mathematische Funktionen angelegt. Einige einfache(re) Funktionen sind jedoch in System enthalten, wie z.B. Abs, Cos, Exp... Die sollten da vielleicht auch mit rein. -- Dannys9 19:49, 22. Apr. 2008 (CEST)
Hmm, es gibt doch aber auch in der Math-Unit die Funktionen cos() usw. Werde dann gleich mal probieren, was passiert, wenn ich beide Units parallel einbinde ... Zu den Interfaces: Sind das, wenn ich das richtig verstanden habe, sowas wie in PHP "Abstrakte Klassen"? Zu den Interfaces: Im Logbuch habe ich noch eine gelöschte Version mit der Begründung "Blödsinn" gefunden. Leider weiß ich nur nicht, wie man darauf zugreifen kann ... Wie du schon sagtest, halte ich es nicht für besonders sinnvoll, die Methoden nach Units aufzulisten. Ich fände es eher sinnvoll, zu beschreiben, was die Units bieten. --Jayk 19:18, 24. Apr. 2008 (CEST)
Stimmt, hab nicht im Logbuch nachgesehen. Ich meine mich jetzt dunkel zu erinnern. Jemand hat die Seite angelegt und Blödsinn reingeschrieben, das grenzte an Vandalismus. Daher hat Michael Frey die Seite gelöscht, da brauchst du nicht drauf zuzugreifen ;-) Es ging jedenfalls nicht um das Thema Interfaces selbst.
Abstrakte Klassen gibt es auch in Delphi, so wie es Interfaces in PHP gibt. Grundsätzlich sind Interfaces abstrakte Klassen, die alle von IInterface abgeleitet sind, was wiederum IUnknown im Windows SDK entspricht. Interfaces bieten erweiterte Funktionen, so muss unter Win32 jedes Interface mit einer GUID versehen werden. Damit kann man das Interface in einer DLL anbieten und bei der COM+ Programmierung eindeutig drauf zugreifen. Ein Interface ist daher eher ein Windows- als ein Delphi-Feature. Ich hatte mal in der Delphi-Hilfe und im Windows SDK angefangen, das zu erforschen, bin aber noch nicht ganz durchgestiegen, wie das Ganze letztendlich funktioniert... -- Dannys9 22:32, 25. Apr. 2008 (CEST)
Tschulligunk, hatte noch was vergessen. Bei mir gibt es in der Math keine Cos()-Funktion (Turbo Explorer) und die Unit System ist immer eingebunden, ob du sie explizit in der uses-Klausel angibst oder nicht. Wenn eine Funktion in zwei eingebundenen Klassen existieren sollte, verwendet Delphi standardmäßig die aus der Unit, die in der Liste hinten steht. Willst du stattdessen die andere Funktion verwenden, musst du diese in der folgenden Form aufrufen: Unit.Funktion(). Stichwort ist hier Gültigkeitsbereich bzw. neudeutsch Scope. Es gibt zum Beispiel sowohl in Windows als auch in Graphics einen Typ TBitmap. Wenn du hauptsächlich mit der Klasse TBitmap arbeiten willst, sollte es "uses Windows, Graphics" heißen. Den anderen Typ erreichst du dann über Windows.TBitmap
Habe fertig ;-) -- Dannys9 23:01, 25. Apr. 2008 (CEST)
Hab ich wieder was verwechselt, stimmt in der System sind Cos() und Sin() deklariert. In der Math befinden sich nur die "anderen" wie Cosh(), Sinh() oder ln(). --Jayk 09:36, 27. Apr. 2008 (CEST)

Verfluchte Pointer[Bearbeiten]

Verschoben nach: Diskussion:Programmierkurs: Delphi: Pascal: Zeiger -- Dannys9 00:22, 13. Feb. 2009 (CET)


Erinnerung an die Möglichkeit des Buchdrucks von Programmierkurs: Delphi[Bearbeiten]

Hallo, Vielleicht erinnerst du sich noch an unser Projekt „Wiki-Printbibliothek“. Da wir immer noch daran interessiert sind, dein Buch zu veröffentlichen, möchten wir uns lediglich bei dir in Erinnerung bringen und dich darauf hinweisen, dass wir bei allen offenen Fragen stets zur Verfügung stehen. Mit freundlichen Grüßen. --M-v-v 11:20, 5. August 2010

Hallo! Ich habe euch nicht vergessen. Seit eurer ersten Anfrage hat sich leider an dem Buch noch nicht viel mehr getan, hier muss einiges überarbeitet und überhaupt erst geschrieben werden. Wenn ich die Gelegenheit und Muße habe, werde ich hier weiterarbeiten - und melde mich auf jeden Fall bei euch, wenn ich mit dem Ergebnis zu frieden bin. Danke erstmal für eure Erinnerung! Viele Grüße --Dannys9 20:20, 5. Aug. 2010 (CEST)