Ich danke für Eure Hinweise, TurboMagic für den Link auf die Literatur. Komme wohl um englischsprachige Werke nicht herum - wenn ich noch motiviert bin, mich nach 30 Jahren hobbyproggen für Windows umzustellen.
Momentan bin ich nur genervt, da selbst die einfachsten Dinge nicht funktionieren:
Delphi-Quellcode:
setlength(rf,anz);
for a := 0 to anz -1 do rf[a] := a;
azufmix(rf);
for a := 0 to anz -1 do begin
n:= rf[a];
MessageDlg(Spain[n].SpruchES, TMsgDlgType.mtConfirmation,
[
TMsgDlgBtn.mbYes,
TMsgDlgBtn.mbNo,
TMsgDlgBtn.mbClose
], 0, procedure(const AResult: TModalResult)
begin
case AResult of
mrNo: showmessage(Spain[n].SpruchDE);
mrClose:exit;
end;
end );
end;
Der case-Code wird völlig ignoriert. Selbst wenn ich den showmessage- und den exit-Befehl auslager, geht es nicht:
Delphi-Quellcode:
...
case AResult of
mrNo: zeig := true;
mrClose:raus := true;
end;
end );
if raus then break;
if zeig then showmessage(Spain[n].SpruchDE);
...
Mit zwei Timern habe ich es mit dem Ergebnis versucht, dass genau ein spanischer Ausdruck und nach gewünschten 5 Sekunden die deutsche Übersetzung angezeigt werden - dann ist Schluss.
Code im Start-Button
Delphi-Quellcode:
//array rf wird entsprechend Record-Größe für Ausdrücke gefüllt
setlength(rf,anz); for a := 0 to anz -1 do rf[a] := a;
//Array wird gemischt
azufmix(rf);
for a :=0 to anz-1 do begin
wo := rf[a];
LSpain2.Text := Spain[wo].SpruchES;
Timer1.Enabled := true;
end;
Code im Timer1
Delphi-Quellcode:
Timer2.Enabled := true;
Timer1.Enabled := false;
Code im Timer2
Delphi-Quellcode:
LGer2.Text := Spain[wo].SpruchDE;
Timer2.Enabled := false;