|
Einführung in Delphi |
|
Beispiel "Hallo Welt":
Starte in Delphi eine Neue Anwendung (Menu Datei|Neu).
Klicke in der Komponentenleiste auf einen Button und setze ihn
aufs Formular und klicke im Objektinspektor auf das
Ereignis OnClick.
Delphi schreibt folgenden Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
end;
Zur Erinnerung:
Merke: Was Delphi schreibt, darf nicht geändert oder
gelöscht werden! Du darfst nur vor begin die
Variablen deklarieren (siehe spätere Programme)
und zwischen begin und end Deine Anweisungen.
Ergänze nun die Prozedur folgendermaßen:
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage('Hallo Welt'); //Einzige Anweisung
end;
| Gewöhne Dir gleich das richtige Abspeichern an! |
|---|
|
Speichere mit Menü
Datei|Projekt speichern unter...
und
Datei|speichern unter ... in einem Eigenen Ordner " HalloWelt" ab. |
| Wichtig: Ein eigener Ordner für jedes Programm! Zwei Speicherbefehle! Einen für die "unit1" und einen für das "project1" |
die Farbe (Color) rot, die Höhe (height) 10, die Breite (width) 10 und das Aussehen (shape) "Kreis" (ctcircle).Die folgenden Zeichenoperationen beziehen sich auf folgendes Koordinatensystem:
procedure TForm1.Button1Click(Sender: TObject); begin image1.canvas.MoveTo(shape1.Left,shape1.Top); //Der Zeichenstift wird zum Spape1 bewegt (ohne zu Zeichnen) end; procedure TForm1.Button2Click(Sender: TObject); begin shape1.Left := shape1.Left + 10; image1.canvas.LineTo(shape1.Left,shape1.Top); //Der Zeichenstift zeichnet eine Linie ab der alten Posituib end;Nun bewegt sich eine Figur nach recht und zeichnet eine Linie. Überlege nun, wie Du die Figur nach links, nach oben und nach unten bewegen kannst.
procedure TForm1.FormCreate(Sender: TObject);
begin
form1.width := 800; //Wird unten gebraucht
form1.height := 600; //Wird unten gebraucht
//("Globale Konstanten" werden später eingeführt)
randomize;
timer1.interval := 10;
image1.canvas.MoveTo(shape1.Left,shape1.Top);
end;
procedure TForm1.Timer1Timer(Sender: TObject);
const d = 50;
var r: integer;
begin
r := random(100); //Zufallszahl r = 0; 1; 2; ... oder 99
if r < 25 then Begin
shape1.Left := shape1.Left + d;
image1.canvas.LineTo(shape1.Left,shape1.Top)
End else if r < 50 then Begin
shape1.Left := shape1.Left - d;
image1.canvas.LineTo(shape1.Left,shape1.Top);
End else if r < 75 then Begin
shape1.top := shape1.top - d;
image1.canvas.LineTo(shape1.Left,shape1.Top);
End else Begin
shape1.top := shape1.top + d;
image1.canvas.LineTo(shape1.Left,shape1.Top);
End;
if shape1.top < 0 then shape1.top := 0;
if shape1.top > 600 then shape1.top := 600;
if shape1.Left < 0 then shape1.left := 0;
if shape1.Left > 800 then shape1.Left := 800;
end;
Variablentypen:
integer ganze Zahlen Z={...-3, -2, -1, 0, 1, 2, 3,...}
real reelle Zahlen. Genauer: Gleitkommazahlen (floating point numbers)
strings Zeichenketten (der Form 'xyz')
boolean Wahrheitswerte (true und false)
Überlege und überprüfe mit dem Computer, welche Werte stehen in den folgenden
Programmen in den für die Variablen reservierten Speicherbereichen?
Schreibe dies Zeile für Zeile auf!
Übung: Protokolliere die Variablenbelegung!
a) Füge nach jedem Befehl ein:
showmessage('a=' + a);
(Ersetzte gegebenenfalls passend a durch b und c!)
procedure TForm1.Button1Click(Sender: TObject);
var a, b, c:string;
begin
a := 'Hallo';
b := 'Welt';
c := a + ' ' +b;
end;
b) Füge nach jedem Befehl ein!
showmessage('a=' + IntToStr(a) + ' b='+IntToStr(b)+
' c='+IntToStr(c));
procedure TForm1.Button1Click(Sender: TObject);
var a, b, c: Integer;
begin
a := 5; b := 7; c := 9;
a:=b; b:=c; c:=a;
a:=a+1; b:=b-1; c:=c-1;
end;
c) Füge nach jedem Befehl ein!
showmessage('a='+floatToStr(a)+' b='+floatToStr(b));
Ersetzte gegebenenfalls passend a und b durch c und d!
procedure TForm1.Button1Click(Sender: TObject);
var a,b,c,d:real;
begin
a:=1+3/10; b:=-3/10;
a:=a+1/10; b:=b-1/10;
c:=a+b; d:=1-c;
end;
d) Füge nach jedem Befehl ein: showmessage(...)
procedure TForm1.Button1Click(Sender: TObject);
var a,b,c:integer;
begin
a:=-7; b:=11; c:=13;
a:=a+6; b:=b-12; c:=c-11;
a:=a+b; b:=b+c; c:=a+b;
a:=a+b+c; b:=a+b+c; c:=a+b+c;
end.
e) Was berechnet folgendes Programm?
(Schreibe keine Zahl sondern einen Rechenausdruck!)
procedure TForm1.Button1Click(Sender: TObject);
var s: real;
begin
s := 0;
s := s + 1;
s := s + 2;
s := s + 3;
s := s + 4;
s := s + 5;
s := s + 6;
showmessage(FloatToStr(s));
end;
f) Das Programm e) kann abgekürzt werden zu
procedure TForm1.Button1Click(Sender: TObject);
var s: real;
k: integer;
begin
s := 0;
for k := 1 to 6 do s := s + k;
showmessage(FloatToStr(s));
end;
Schreibe nun ein Programm, das folgendes berechnet:
(I) 1 + 2 + 3 + 4 + ... + 100 oder (II) 1 + 2 + 3 + 4 + ... + 1000 oder (III) 1 + 1/2 + 1/3 + ... + 1/10000Die Lösung ist (I) 5050 (II) 500500 und (III) 9,7876