Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Descendiente de TCustomDbGrid (https://www.clubdelphi.com/foros/showthread.php?t=51782)

GuerreroDelphi 29-12-2007 02:27:26

Descendiente de TCustomDbGrid
 
He heredado un componente que desciende directamente de TCustomDbGrid, pero no se como hacer que al dar dobleclick sobre el mismo, en tiempo de diseño, me lleve al editor de columnas, asi como ocurre con un DbGrid normal.
igualmente, no logro hacer que la opcion ¨Columns Editor¨ aparezca en el menu contextual

He intentado varias formas de hacerlo pero esto no me ha dado resultados Podrian indicarme como hacerlo?

droguerman 29-12-2007 16:35:36

para eso necesitas crear o utilizar un Editor de Componentes, el cual registras con el procedimiento RegisterComponentEditor, la verdad, yo tambien estoy buscando en que momento se registra ese editor para crear uno propio pero no he tenido suerte, quizás haciendo una búsqueda más exhaustiva dentro de las fuentes de la vcl puedas encontrarlas.

saludos

GuerreroDelphi 29-12-2007 18:04:15

Descendiente de TCustomBdGrid
 
Gracias, Doguerman, pero, en realidad lo que desearía sería poder usar el mismo editor que viene con TDBGrid, para no tener que rehacer lo que ya está. ¿Sería posible utilizar TDbGridColumnsProperty? ¡Lo he intentado, pero no lo he logrado!

droguerman 30-12-2007 06:09:32

en que forma lo has intentado y q mensaje te bota?

GuerreroDelphi 31-12-2007 04:14:15

Quise registrar para mi componente TArcaDbGrid el mismo editor del TDbGrid, asi:
RegisterComponentEditor(TArcaDBGrid, TDBGridEditor);
pero aparece "undeclare identifier: TDBGridEditor".

Tambien, intenté copiando el código del editor para TDbGrid, pero me desconoce ciertos miembros, y cuando logro encontrar la unidad en que se encuentra definido uno, molesta por otro... En este momento no encuentro la unidad, para la clase TDBGridColumnsEditor. Además, al incluir en uses las unidades "ColnEdit, DsnDBCst", me dice que no encuentra el .dcu de las mismas..

Este es el código que copié, desde la unidad DBReg:
{ TDBGridEditor }
type
TDBGridEditor = class(TComponentEditor)
public
procedure ExecuteVerb(Index: Integer); override;
function GetVerb(Index: Integer): string; override;
function GetVerbCount: Integer; override;
end;

procedure TDBGridEditor.ExecuteVerb(Index: Integer);
begin
ShowCollectionEditorClass(Designer, TDBGridColumnsEditor, Component,
TDBGrid(Component).Columns, 'Columns');
end;

function TDBGridEditor.GetVerb(Index: Integer): string;
begin
Result := SDBGridColEditor;
end;

function TDBGridEditor.GetVerbCount: Integer;
begin
Result := 1;
end;


La franja horaria es GMT +2. Ahora son las 17:32:45.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi