Einzelnen Beitrag anzeigen

Benutzerbild von binio
binio

Registriert seit: 25. Nov 2005
Ort: Werl, Iserlohn, Dortmund, Hagen
85 Beiträge
 
Delphi 2006 Professional
 
#1

wie erfahre ich in der Form1 welches Editierfeld gekickt ist

  Alt 29. Feb 2008, 12:41
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
if(copy_paste==false)
Programmierer=Hilflos;
  Mit Zitat antworten Zitat