Hallo noch mal an alle,
Hat zwar etwas gedauert aber mit euren Hinweisen und etwas probieren und lesen hat es nun geklappt. Bei der onkeydown-Funktion das Edit-Fensters wird im gegensatz zur onkeypress-Funktion das Key als Word und nicht als Char übergeben. So konnte ich das vk_delete benutzen und es funktioniert. Für andere die das gleiche Problem haben hier die endgültige Version:
Delphi-Quellcode:
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var iIndex, iTemp: integer;
begin
if key = vk_delete then
begin
//Löscht einen markierten Bereich im Editfenster (Vorraussetzung es ist etwas markiert!!)
if Edit1.SelLength >0 then
begin
iEditpos := Edit1.SelStart;
for iTemp := 0 to Edit1.SelLength - 1 do if Tisch[iIndex].sEditWert[iTemp] = #44
then Tisch[iIndex].bTastenregistrierung := false;
delete(Tisch[iIndex].sEditWert,Edit1.SelStart+1,Edit1.SelLength);
end
//Löscht das Zeichen nach dem Cursor (Voraussetzung es ist nichts markiert)
else
begin
iEditPos := Edit1.SelStart - 1;
if Tisch[iIndex].sEditWert[Edit1.SelStart] = #44 then Tisch[iIndex].bTastenregistrierung := false;
delete(Tisch[iIndex].sEditWert,Edit1.SelStart+1,1);
iEditPos := iEditPos + 1;
end;
end;
end;
Wie gesagt, wichtig war bei mir die Initialisierung des Keys als Word und nicht als Char.