Ver Mensaje Individual
  #2  
Antiguo 23-06-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Quizá lo más adecuado sería derivar una nueva componente a partir del DBGrid y redefinir su método TitleClick:

Código Delphi [-]
type
  TExtendedDBGrid = class(TDBGrid)
  protected
    procedure TitleClick(Column: TColumn); override;
  end;

implementation

procedure TExtendedDBGrid .TitleClick(Column: TColumn);
begin
  // .. aquí pones tu código genérico
end;

Pero tiene el "inconveniente" de tener que instalar la nueva componente si es que quieres usarla desde la paleta de componentes.

Otra opción, muy sencilla, es hacer uso de un frame (File|New|Frame) en donde colocas un DBGrid y programas su evento OnTitleClick como ya sabes. Luego, basta que insertes el frame en cualquier formulario donde lo necesites.

Y una tercera opción que se me ocurre, para estar acorde con tu unidad global, es usar una clase de eventos:

Código Delphi [-]
type
  TGlobalEvents = class
  public
    class procedure TitleClick(Column: TColumn);
  end;

implementation

{ TGlobalEvents }

class procedure TGlobalEvents.TitleClick(Column: TColumn);
begin
  // .. aquí pones tu código genérico
end;

Lo único malo con esto, es que no puedes asignar el evento desde el inspector de objetos, pero puedes hacerlo por código:

Código Delphi [-]
DBGrid1.OnTitleClick := TGlobalEvents.TitleClick;

Nota que no es necesario crear una clase de tipo TGlobalEvents; basta usar la clase en sí.

// Saludos
Responder Con Cita