[Guide] Programmieren Lernen mit Delphi: Der Erste Code

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • [Guide] Programmieren Lernen mit Delphi: Der Erste Code

      Nach dem Ersten Tutorial folgt nun das 2te, da man garantiert jetzt mit dem eigentlichen Programmieren, dem Programm-Code anfangen möchte.

      [Inhalt]
      1. Der Quelltext Editor
      2. Werte Setzen
      3. Werte Abrufen

      [Der Quelltext Editor]
      Für das kleine programm worum es mir jetzt geht besteht aus einem Fenster(Form) das so aussieht

      1 Label (TLable im Control Menu)
      2 Buttons (TButton im Control Menu)

      Für das Label habe ich im Eigenschafts-Fenster die Option Autosize auf False gestellt, das bewirkt dass man die größe selbst bestimmen kann(bei mir die breite der Form), und diese sich nicht nach dem Text richtet, und die Eigenschaft Alignment auf taCenter gestellt, was dem Label sagt das die Schrift zentriert reingeschrieben wird.


      Nun Aber zum Quelltext Editor, Der befindet sich für gewöhnlich als 2tes Fenster hinter der Form, und sieht beim start so aus:

      Was fällt auf:
      Als erstes sollte man Bemerken das da schon was drin steht. Dies schreibt Lazarus/Delphi automatisch, dabei handelt es sich einerseits um Standart Code, andererseits um Formabhängiger Code, wenn man zum Beispiel ein Label hinzufügt muss das auch dort im Code Hinzugefügt werden. Mit diesem Code wird dem Programmierer eine Menge arbeit erspart.

      Sieht man sich den Code an so fällt auf, dass gibt es dicke, dünne und bunte Schrift gibt. Das ist einer der Vorteile dieses editors, Schlagwörter in Delphi werden dick gemacht, Besondere texte(z.b. Kommentare) werden bunt gezeichnet

      Dann fällt einem der gelbe Rand auf (erst nach dem Bearbeiten der Form). Der zeigt welche zeilen seit dem letzten mal Speichern geändert wurden. ist dieser Rand grün bedeutet das, diese Anderung wurde gespeichert, ist kein Rand da so bedeutet das das dieser Code seit dem öffnen/erstellen dieser Datei schon da steht.

      Bei genauem Hinsehen fallen an der rechten seite direkt vor dem Code graue Linien, und Quadrate mit + oder - drin auf, diese zeigen die Code Blöcke, und über das Minus kann man sie verstecken, und über das + wieder erscheinen lassen. Dies kann für eine bessere Code Übersicht sorgen.

      [FELD="Nebenbei"]Delphi und Lazarus haben eine automatische Code Vervollständigung, tippst du zum beispiel Form1. dann kommt nach kurzer wartezeit ein fenster wo man sich die Methode raussuchen kann, und mit Enter wird diese dann eingefügt, das kann helfen wenn man sich über die genaue schreibweise nicht mehr im Klaren ist.[/FELD]



      [Werte Setzen]
      Bisher haben wir die Eigenschaften für Label und Buttons im Eigenschaftsfenster eingestellt, will man nun Allerdings die aufschrift wärend des Laufens ändern, so muss man auf diese Werte per Code Zugreifen.

      Dabei ist Jedes der Elemente in der Form ein Objekt, und dieses Objekt ist einem Anderen Objekt oder der Form selbst untergeordnet.
      Nun um die Eigenschaften zu beeinflussen müssen wir also auch auf dieses Element zugreifen. Wie Oben shon erwähnt werden alle Elemente der Form auch in den Code eingetragen, das findet hier statt:

      Quellcode

      1. type
      2. { TForm1 }
      3. TForm1 = class(TForm)
      4. Button1: TButton;
      5. Button2: TButton;
      6. Label1: TLabel;
      7. private
      8. { private declarations }
      9. public
      10. { public declarations }
      11. end;
      Alles anzeigen

      Was das genau ist kommt erst beim OOP dran, das ist aber nicht Thema dieses Tutorials.

      Dies ermöglicht uns also auf die Elemente zuzugreifen.

      Genug Theorie:
      Dann gehts mal ans Programmieren:
      Als erstes einmal wo kommt der Code hin?
      Nun Delphi besteht aus Prozeduren, die jehweils verschieden aufgerufen werden (Mehr dazu beim OOP) jeh nach dem in Welche prozedur man dies Schreibt, bestimmt man wann der Code aufgerufen werden soll.
      Wir wollen als erstes einmal wenn der Button mit dem Text Gut gedrückt wird.

      Dafür klickt ihr in der Form Doppelt auf diesen Button: Der Quelltext Editor tritt nach vorne, und dieser code sollte dort stehen:

      Quellcode

      1. var
      2. Form1: TForm1;
      3. implementation
      4. {$R *.lfm}
      5. { TForm1 }
      6. [COLOR="red"]procedure TForm1.Button1Click(Sender: TObject);
      7. begin
      8. end;[/COLOR]
      9. end.
      Alles anzeigen

      Der Rote teil ist eine solche Prozedur, und die hat uns der editor gerade erstellt. Diese Prozedur wird aufgerufen sobald der Button1(Der button mit dem text gut) geklickt wird (gut an dem TForm1.Button1Click zu erkennen)
      Nun müssen wir den Code zwischen Begin und End schreiben.

      Um auf das Label zuzugreifen sprechen wir es über die Form an, Dafür haben wir 2 möglichkeiten:

      Quellcode

      1. Form1.Label1
      oder

      Quellcode

      1. self.Label1

      Form1 ist allgemein gültig während self nur für die Form gilt in der sich auch die Prozedur befindet( in diesem fall ist es die Form1, bei mehreren Fenstern muss man allerdings drauf achten)

      Da es in diesem Fall egal ist dürft ihr euch entscheiden was ihr für besser haltet, ich nehme self.Label1

      Was dabei auffallen sollte ist der punkt also

      Quellcode

      1. self[B][COLOR="red"].[/COLOR][/B]Label1

      Mit self (oder Form1) sprechen wir die Form an, und mit dem punkt spricht man die objekte, eigenschaften, methoden, elemente, etc an die der Form untergeordnet sind(Label1 ist der Form untergeordnet also kann man es mit Form1.Label1 Ansprechen)
      Nun greifen wir auf eine eigenschaft des Labels zu, auf die Caption um den Text zu änder.
      Caption ist eine Eigenschaft des Labels, also dem Label zu-/untergeordnet also sprechen wir es auch wieder über einen . an

      Quellcode

      1. self.Label1.Caption

      [FELD="Nebenbei"]Da man das Label aus der selben Form anspricht kann das self. auch weg gelassen werden (also nur Label1.Caption) das self, oder das Form1.Label1 wird nur verwendet zur übersicht, und damit keine missverständnisse auftreten(seiten des Users) und damit die Code Vervollständigung angezeigt wird :D)[/FELD]

      Nun müssen wir dem ganzen nur noch einen wert zuweise, das geht mit

      Quellcode

      1. self.Label1.Caption:='Freut mich';

      [FELD="Nebenbei"]Delphi benötigt am ende jedes befehls ein ; vergisst man es so treten Fehler auf.[/FELD]
      So dann mal zu dem teil:

      Quellcode

      1. :='Freut mich'

      Das := sollte einigen auffallen, dabei handelt es sich um einen zuweisungs Operator. Da wir den Wert Caption neu setzen(ihn zuweisen) wird dieser Operator benötigt, der = operator wird zum Vergleichen verwendet, Vertauschen verursacht Fehler.
      [FELD="Merke"]Mit dem := setzt man einen Wert, wie hier die Neue Schrift[/FELD]

      Das 'Freut mich' ist der neue Text, die ' sind da um Delphi zu zeigen das es ein Text ist, sonst sucht Delphi im Befehlssatz nach den Befehlen Freut und Mich.
      Daher Texte immer als solche kennzeichnen in dem ihr sie in ' setzt.

      So Sollte die Prozedur danach aussehen:

      Quellcode

      1. procedure TForm1.Button1Click(Sender: TObject);
      2. begin
      3. self.Label1.Caption:='Freut mich';
      4. end;

      Die zwei leerzeichen vor dem self.Label1... sind nur der optik halber da, damit der code einwenig struktur bekommt und man direkt sehen kann: Aha self.Label1... gehört in die Prozedur Button1Click.(Für gewöhnlich werden als Abstand 2 Leerzeichen verwendet)

      dann geht ihr zurück in die Form
      [FELD="Hinweis"]Um in ein anderes Fenster wie z.b. die Form zu wechseln wenn sich diese im Hintergrund befindet Klickt ihr im Main Fenster einfach oben im Menü auf Fenster und dann auf den Eintrag mit dem Namen von dem Fenster was in den Vordergrund soll.[/FELD]

      Und klickt doppelt auf den anderen Button, und schreibt da rein:

      Quellcode

      1. self.Label1.Caption:='Schade';


      Startet nun euer Projekt (grüner Pfeil) und seht was Passiert wenn ihr die Buttons Betätigt

      [Werte Abrufen]
      Nun Habe ich euch gezeigt wie man Werte ändert, aber nicht wie ihr sie abruft.
      Dafür gehen wir einfach wieder in die Prozedur des Buttons gut, und ändern dort den Wert den wir zuweisen von
      'Freut Mich'
      auf

      Quellcode

      1. 'Dir geht es ' + self.Button1.Caption

      Wie ihr sehen könnt rufe ich wieder ein Objekt meiner Form auf, unswar diesmal den Button mit der Aufschrift Gut.
      Hier setzte ich keinen neuen wert auf die Caption sondern rufe sie ab. Das bedeutet ich verwende Button1.Caption genauso als wenn ich 'Gut' hinschreiben würde.

      [FELD="Hinweis"]Texte wie 'Dir geht es ' lassen sich mit anderen verbinden. Dies geschieht über ein + also aus 'Dir geht es ' + 'Gut' wird: 'Dir geht es Gut'[/FELD]



      Gut das wars dann auch mal bis hier hin, das nächste mal gehts um Variablen
    • Werbung zur Unterstützung des Forums ( Bitte AddBlocker deaktivieren )

    • Schönes Tutorial.
      Ich kann jetzt zwar nix wirklich zum Inhalt sagen, da ich Delphi nicht kann, und auch nicht wie Anfängertaugleich es ist, da ich schon Vorkenntnisse habe, aber meiner Meinung nach ist es sehr gut gelungen.
      Habe schon lang mit dem Gedanken gespielt mir Delphi mal genauer anzugucken, und werd mir sicherlich auch die nächsten Tutorials durchlesen.
    • Icii;236135 schrieb:

      Schönes Tutorial.
      Ich kann jetzt zwar nix wirklich zum Inhalt sagen, da ich Delphi nicht kann, und auch nicht wie Anfängertaugleich es ist, da ich schon Vorkenntnisse habe, aber meiner Meinung nach ist es sehr gut gelungen.
      Habe schon lang mit dem Gedanken gespielt mir Delphi mal genauer anzugucken, und werd mir sicherlich auch die nächsten Tutorials durchlesen.


      Das ist aber verwirrend was du da schreibst. Einerseits sagts du das du kein Delphi kannst, und auf der anderen seite sagst du das du nicht berteilen kannst ob es Anfängertauglich ist, da du schon Vorkentnisse besitzt.

      Sehr verwirrend...