También puedes implementar una rutina de clase
Código Delphi
[-]
...
Rutinas = class
public
class procedure OpenDialogShow(var Sender: TObject);
end;
...
class procedure Rutinas.OpenDialogShow(Sender: TObject);
begin
if TOpenDialog(Sender).Tag = 1 then
SetDlgItemText(GetParent(TOpenDialog(Sender).Handle), IDOK, PChar('&Abrirlo'))
else
SetDlgItemText(GetParent(TOpenDialog(Sender).Handle), IDOK, PChar ('&Guardarlo'));
end;
...
with TOpenDialog.Create(nil) do
try
OnShow:= Rutinas.OpenDialogShow;
Tag:= Integer(Accion);
if Execute then
...
finally
Free;
end;
...