Einzelnen Beitrag anzeigen

Benutzerbild von Speedmaster
Speedmaster

Registriert seit: 4. Mär 2005
Ort: Karlsruhe
535 Beiträge
 
Delphi 2005 Personal
 
#26

Re: Womit sollte ein Delphi-Anfänger beginnen? VCL oder nonV

  Alt 25. Apr 2005, 13:55
Ich hatte mal was für einen Kollegen geschrieben das sah so aus:

dpr Datei:
Delphi-Quellcode:
program MeineExe;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  MeineUnit in 'MeineUnit.pas';

var
  MeineKlasse: TMeineKlasse;
  // Gibt Klassentyp an
  Finished: Boolean;
  // Deklariert Variable(Muss nicht erzeugt werden)
  Userinp: String;
  // Usereingabe
  Zahlen: record // Eine zusammenfassung von 2 Variablen
    Zahl1: Integer;
    Zahl2: Integer;
  end;

begin
  WriteLN('***********************************');
  WriteLN('* Hallo zu meinem ersten Programm *');
  WriteLN('* Mathematik pur *');
  WriteLN('***********************************');
  // Textausgabe
  Sleep(2000); // 2sec warten

  MeineKlasse := TMeineKlasse.create;
  // Erzeugt die Klasse
  MeineKlasse.ProduktProc(5,7);
  // Ruft eine Procedure(Aufgabe) auf
  WriteLn('Ergebniss aus 5 * 7: ' + MeineKlasse.MeinString);
  // Textausgabe
  Sleep(1000);
  // 1sec Warten
  WriteLn('Ergebniss aus 7 * 9: ' + MeineKlasse.Produktfunc(7,9));
  (* Anmerkung: Hier wurde eine Funktion aufgerufen die einen Rückhabetyp besitzt
     --> Textausgabe *)

  Sleep(1000);
  // Warten


  while Finished = False do begin
    WriteLn('-----------------------------------');
    // Solange Finished nicht True ist mache immer dasselbe
    write('Zahl 1 angeben: ');
    // User Zahl eingeben lassen
    ReadLn(Zahlen.Zahl1);
    // Zahl auslesen
    write('Zahl 2 angeben: ');
    // Zweite Zahl eingeben
    ReadLn(Zahlen.Zahl2);
    // Zweite Zahl auslesen
    WriteLn('Ergebniss aus ' + Zahlen.Zahl1.ToString + ' * '
                + Zahlen.Zahl2.ToString + ': '
                + MeineKlasse.Produktfunc(Zahlen.Zahl1,Zahlen.Zahl2));
    // Ergebniss ausgeben, dabei kann Quelltext auch über mehrere Zeilen gehen
    // für die Übersichtlichkeit
    Sleep(500);
    // Warten
    WriteLn('-----------------------------------');
    Write('Programm beenden(Y/N)?');
    // Fragen on Programm beendet werden soll
    ReadLn(Userinp);
    // Eingabe einlesen
    if Userinp = 'Ythen
      Finished := True
    else
      if Userinp = 'Nthen
        Finished := False;
    // Verarbeitung
  end;

  { TODO -oUser -cConsole Main : Hier Code einfügen }
end.
MeineUnit.pas
Delphi-Quellcode:
interface

uses
  SysUtils;

type
  TMeineKlasse = class // Deklariert eine Klasse mit dem Namen TMeineKlasse
    private

    protected

    public
      MeinString: String;
      // Deklariert die Variable MeinString vom Typ String
      MeineZahl: integer;
      // Deklariert die Variable MeineZahl vom Typ Integer
      procedure ProduktProc(ErsteZahl, ZweiteZahl: integer);
      // Deklariert eine Procedure mit dem Namen ProduktProc und 2 Parametern
      function Produktfunc(ErsteZahl, ZweiteZahl: integer): String;
      // Deklariert eine Funktion mit dem Namen ProduktProc und 2 Parametern und
      // dem Rückgabewert vom Typ String
    published

    end;


implementation

procedure TMeineKlasse.ProduktProc(ErsteZahl, ZweiteZahl: integer);
var
  Produkt: integer; // Deklariert eine Variable mit dem Namen Produkt
begin
  Produkt := (ErsteZahl * ZweiteZahl);
  // Weisst der Variable Produkt das Produkt der Variablen ErsteZahl und ZweiteZahl zu
  self.MeinString := Produkt.ToString;
  // Weisst der Variablen MeinString den String der Zahl der Variable Produkt zu
end;

function TMeineKlasse.Produktfunc(ErsteZahl, ZweiteZahl: integer): String;
var
  Produkt: integer; // Deklariert eine Variable mit dem Namen Produkt
begin
  Produkt := (ErsteZahl * ZweiteZahl);
  // Weisst der Variable Produkt das Produkt der Variablen ErsteZahl und ZweiteZahl zu
  Result := Produkt.ToString;
  // Gibt den String der Zahl der Variable Produkt zurück

  // Result ist ein Reserviertes Wort für jede Funktion und ist die Rückgabe
end;

end.
Würde es jetzt anderst schreiben, ist aber durchaus gut zu lernen!

Ach ja: Man kann in jeder Anwendung eine Console benutzen( Ich mache das z.b. zu Debugzwecken )!
Felix K.
Zitat:
Siehst du diesen Park da unten?
Jeden Tag lernen sich leute kennen und verlassen einander, und du hast dein ganzes Leben Zeit darin zu gehen!
  Mit Zitat antworten Zitat