Lazarus bzw. Programmiersprache "Pascal" problem beim erstellen eines Taschenrechners?

Hallo.

Ich bin gerade dabei einen Taschenrechner auf Lazarus mit der Programmiersprache Pascal zu programmieren.
Dennoch hab ich bei einer Sache ein Problem (bin noch Anfänger in diesem Bereich).
Und zwar schaffe ich es nicht, dass es ausgerechnet wird.
Also ich hab es erstmal mit einem label probiert.
Da schaff ich (komisch gesagt) nicht die opperatoren (+,-,*,/) von den Zahlen zu "Filtern".
Also so dass erkannt wird was davon die zahl ist und was der opperator damit das automatisch ausgerechnet wird.

2.Variante ist, ich hab 3 edits. Ein Edit für die erste zahl und eins für die zweite und eins für den opperator aber da hab ich das problem mit der virtuellen tastatur (welche dabei sein muss), da ich nicht weiß wie man da einstellt (auch nicht vom nachdenken her) dass man in das 2. edit feld schreibt wenn man die 2.zahl schreiben will. z.b. dass sobald man auf die edit fenster klickt, dass dann jede zahl die eingegeben wird nur da angezeigt wird.

Hoffe es ist einigermaßen verständlich.

Kurze zusammenfassung:
1. wie bringt man einen Taschenrechner mit Lazarus mit nur einem label wo alles reinkommt zum rechnen
2.Wie macht man es so, dass bei einer virtuellen tastatur, sobald man auf ein edit fenster klickt , alles was man klickt in dem ausgewählten edit fenster landet?

danke im Vorraus

programmieren, Delphi, lazarus, Pascal, Taschenrechner
'...' erwartet aber '...' gefunden?

Hallo an allen,

zuerst den Code:

program Project1;

{$APPTYPE CONSOLE}

{$R *.res}

var
  f, alter:Integer;
  durchschnitt1, durchschnitt2, durchschnitt3: Double;
begin
  WriteLn('Morgenschicht:');
  WriteLn;
  for f:=1 to 5 do
  begin
    Write('Alter des Schülers: ');
    ReadLn(alter);
    durchschnitt1 := durchschnitt1 + alter;
  end;
  durchschnitt1 := Round((durchschnitt1 / 5),2);
  WriteLn;
  WriteLn;
  WriteLn('Spätschicht:');
  WriteLn;
  for f:=1 to 6 do
  begin
    Write('Alter des Schülers: ');
    ReadLn(alter);
    durchschnitt2 := durchschnitt2 + alter;
  end;
  durchschnitt2 := Round((durchschnitt2 / 6),2);
  WriteLn;
  WriteLn;
  WriteLn('Nachtschicht:');
  WriteLn;
  for f:=1 to 11 do
  begin
    Write('Alter des Schülers: ');
    ReadLn(alter);
    durchschnitt3 := durchschnitt3 + alter;
  end;
  durchschnitt3 := Round((durchschnitt3 / 11),2);
  WriteLn;
  WriteLn;
  WriteLn('Das Durchschnittsalter der Schüler der Morgenschicht beträgt: ', durchschnitt1, '.');
  WriteLn('Das Durchschnittsalter der Schüler der Spätschicht beträgt: ', durchschnitt2, '.');
  WriteLn('Das Durchschnittsalter der Schüler der Nachtschicht beträgt: ', durchschnitt3, '.');
  if (durchschnitt1 > durchschnitt2) and (durchschnitt1 > durchschnitt3) then
  begin
    Write('Die Morgenschicht hat das höchste Durchschnittsalter.');
  end
  else
  begin
    if durchschnitt2 > durchschnitt3 then
    begin
      Write('Die Spätschicht hat das höchste Durchschnittsalter.');
    end
    else
    if durchschnitt3>durchschnitt1 then
    begin
      Write('Die Nachtschicht hat das höchste Durchschnittsalter.');
    end;
  end;
  ReadLn;
end.

Ich habe aber folgende Fehlermeldung bekommen:

1) [dcc32 Fehler] Project1.dpr(19): E2029 ')' erwartet, aber ',' gefunden.

2) [dcc32 Fehler] Project1.dpr(19): E2029 ')' erwartet, aber ',' gefunden.

Diese Meldungen sind für mich nicht logisch. Was habe ich falsch gemacht bzw. wie kann ich diese Fehler lösen?

Danke und Grüße

Computer, programmieren, Delphi