Habe eine Form1 mir zig Editierfeldern
Möchte jetzt die Einfüge-Taste realisieren.
Diese Taste kennt man von Word oder anderen editiertools.
Hier bis jetzt mein Code:
Delphi-Quellcode:
procedure TForm1.StringEditKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
{mit der [Einfg]-Taste zwischen Einfüge- und Überschreibmodus wechseln}
if (Key=VK_Insert) and (Shift=[]) then
schreibmodus.Checked:=not schreibmodus.Checked;
end;
Delphi-Quellcode:
procedure TForm1.StringEditKeyPress(Sender: TObject; var Key: Char);
var Zeile : string;
CursorPos : integer;
begin
if schreibmodus.Checked then begin
if Key<#32 then
Key:=#0
else begin
{Aktuelle Einfügeposition merken}
CursorPos:=StringEdit.SelStart;
{Memotext in einer string-Variablen zwischenspeichern}
Zeile:=StringEdit.Text;
{Falls sich an der aktuellen Cursorposition ein
Windows-Zeilenumbruch befindet, müssen zwei
Zeichen (#13=CR und #10=LF) gelöscht werden:}
if (Zeile[CursorPos+1]=#13) and (Zeile[CursorPos+2]=#10) then
delete(Zeile,CursorPos+1,1);
{Das Zeichen an der Einfügeposition löschen}
delete(Zeile,CursorPos+1,1);
{Memotext aus der string-Variablen zurückladen}
StringEdit.Text:=Zeile;
StringEdit.SelStart:=CursorPos;
end;
end;
end;
WIe man in den Beispiel sieht gibt es probleme wenn ich das für gut 50 Editierfeldern einzeln machen muss. Daher mein ansatz in der Form1 ein KeyPress zu programmieren der ermittelt welches Editierfeld ausgewählt wurde um dann mein Code auszuführen.
Meine bischerigen Ansätze waren:
Delphi-Quellcode:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
showmessage(TObject.ClassName);
showmessage(TObject.MethodName(TObject.MethodAddress("StringEdit")));
end;
Ich hoffe doch das mein vorhaben überhaupt machbar ist