Code:
//Zet een TEdit en een TButton op je form
type
TMorseCode = (mcShort, mcLong);
TMorseCodeArray = array of TMorseCode;
private
function CharToMorseCode(c:char):TMorseCodeArray;
procedure PlayMorse(ar:TMorseCodeArray);
const
DefFreq = 500;
DefLong = 600;
DefShort = 250;
DefTussentijd = 80;
//implementatie
function TForm1.CharToMorseCode(c:char):TMorseCodeArray;
function IsAlphaChar:boolean;
begin
result:=c in ['a'..'z','A'..'Z'];
end;
begin
result:=nil;
if not IsAlphaChar then
exit;
case C of
'a':
begin
setlength(result,2);
result[0]:=mcShort;
result[1]:=mcLong;
end;//a
'b':
begin
setlength(result,4);
result[0]:=mcLong;
result[1]:=mcShort;
result[2]:=mcShort;
result[3]:=mcShort;
end;//b
end;//case
end;
procedure TForm1.PlayMorse(ar:TMorseCodeArray);
var
x:integer;
begin
for x:= low(ar) to high(ar) do
begin
case ar[x]
mcShort:Windows.beep(DefFreq,DefShort);
mcLong:Windows.Beep(DefFreq,DefLong);
end;/case
sleep(DefTussentijd);
end;
end;
//de code onder Button1
procedure TForm1.Button1Click(Sender:TObject);
var
a:TMorseCodeArray;
begin
a:=CharToMorseCode(edit1.text[1]);
playMorse(a);
end;
Bookmarks