Wobei Viele auch gerne sowas machen:
Delphi-Quellcode:
procedure THaupt_Form.BtnPrintClick(Sender: TObject);
begin
//Druckbefehl
end;
procedure THaupt_Form.Drucken1Click(Sender: TObject);
begin
if PrintDialog1.Execute then
BtnPrintClick(nil);
end;
Und das mit dem Button in der Prozedur.
Das ist gäniger Alltag ... schließlich ist der Sender ja dafür da, also daß man ihn verwenden und/oder vergleichen kann.
Man könnte aber auch das Property Tag nutzten, also das Property für den Programmierer, welches man z.B. bei Drucken1 auf 1 setzt und dann abprüft.
Delphi-Quellcode:
procedure THaupt_Form.Drucken1Click(Sender: TObject);
begin
if ((Sender as TComponent).Tag <> 1) or PrintDialog1.Execute then
begin
//Druckbefehl
end;
end;
Wobei der Vergleich über die Variable aber einfacher, übersichtlicher, verständlicher und vorallem fehler
unanfälliger ist, gegenüber dem Tag.
Aber wenn man die Variante mit
procedure THaupt_Form.Druckbefehl;
OOP-mäßig noch weiter fortführt, dann landet am Ende der komplette Funktions-Code in mindestens einer eigenen Klasse.