Will man die von vielen Programmen bekannten Bearbeiten Funktionen wie Ausschneiden, Kopieren, Einfügen, Rückgängig im Menü anbieten, und soll die Funktionalität für jede editierbare Komponente funktionieren, gibt es ein Problem: Dadurch, dass der Benutzer in der Regel ja auf einen Menüeintrag klickt, wechselt der Focus, auf welches Object soll man sich dann also beziehen? Mit folgendem Code geht's:
Delphi-Quellcode:
procedure TfrmMain.men_EditCut(Sender: TObject);
begin
PostMessage(GetFocus,WM_CUT,0,0);
end;
procedure TfrmMain.men_EditCopy(Sender: TObject);
begin
PostMessage(GetFocus,WM_COPY,0,0);
end;
procedure TfrmMain.men_EditPaste(Sender: TObject);
begin
PostMessage(GetFocus,WM_PASTE,0,0);
end;
procedure TfrmMain.men_EditUndo(Sender: TObject);
begin
PostMessage(GetFocus,WM_UNDO,0,0);
end;
Die Proceduren werden jeweils bei OnClick aufgerufen, natürlich im implementation Abschnitt noch deklarieren. In diesem Fall mit
Delphi-Quellcode:
procedure men_EditCut(Sender: TObject);
procedure men_EditCopy(Sender: TObject);
procedure men_EditPaste(Sender: TObject);
procedure men_EditUndo(Sender: TObject);
gruß, harrybo