Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-06-2011
r_e_g_2007 r_e_g_2007 is offline
Miembro
NULL
 
Registrado: jun 2011
Posts: 20
Poder: 0
r_e_g_2007 Va por buen camino
Aqui envio una explicación y parte del codigo, gracias

Muchas gracias por todo, es mi primer mensaje y no sabia como hacerlo, trataré de realizarlo mas explicito la proxima vez, disculpen por favor.
Muchas gracias

En el procedure TamcxGridFind_Editor.EditProperty del editor de componentes que se ejecuta al dar dblclic sobre el componente en tiempo de diseño quiero que se ejecute el TcxgfColumns_Property.Edit del editor de propiedades de la propiedad Columnas dentro de las opciones.
Lo que me pasa es que dentro de TamcxGridFind_Editor.EditProperty solo se ejecuta para las propiedades del componente y no para las subpropiedades que tiene la propiedad options.
habrá alguna forma de registrar para saber dentro de TamcxGridFind_Editor.EditProperty todas las propiedades que tiene la propiedad Option dentro.
Aqui pongo parte del codigo que tiene que ver con eso.

Código Delphi [-]
 
  //Editor de la subpropiedad Columnas de la propiedad options del componente
  TcxgfColumns_Property = class(TClassProperty)
  public
    procedure Edit; override;
    function GetAttributes: TPropertyAttributes; override;
  end;
  //Editor de componente
  TamcxGridFind_Editor = class(TDefaultEditor)
  protected
    procedure EditProperty(const PropertyEditor: IProperty; var Continue: Boolean); override;
  public
    function GetVerb(Index: Integer): String; override;
    function GetVerbCount: Integer; override;
    procedure ExecuteVerb(Index: Integer); override;
  end;
 //Subpropiedades de la propiedad options de componente
  TcxGridFindOptions = class(TPersistent)
  private
    FColumns: TcxgfoColumnsItems;
    FColumnSelectedCell: Boolean;
    FDirection: TcxGridFindDirection;
    FMatchCase: Boolean;
    FMatchWholeWordOnly: Boolean;
    FOwner: TamcxGridFind;
    FSelectedRecords: Boolean;
    FWholeCell: Boolean;
    procedure SetColumns(const Value: TcxgfoColumnsItems);
    procedure SetMatchWholeWordOnly(const Value: Boolean);
    procedure SetWholeCell(const Value: Boolean);
  public
    constructor Create(pOwner: TamcxGridFind);
    destructor Destroy; override;
    procedure RetrieveColumns;
  published
    property Columns: TcxgfoColumnsItems read FColumns write SetColumns;
    property ColumnSelectedCell: Boolean read FColumnSelectedCell write FColumnSelectedCell;
    property Direction: TcxGridFindDirection read FDirection write FDirection;
    property MatchCase: Boolean read FMatchCase write FMatchCase;
    property MatchWholeWordOnly: Boolean read FMatchWholeWordOnly write SetMatchWholeWordOnly;
    property SelectedRecords: Boolean read FSelectedRecords write FSelectedRecords;
    property WholeCell: Boolean read FWholeCell write SetWholeCell;
  end;

  //Componente
  TamcxGridFind = class(TComponent)
  private
    FcxGrid: TcxGrid;
    FOptions: TcxGridFindOptions;
    FText: String;
    procedure SetOptions(const Value: TcxGridFindOptions);
  protected
    procedure Notification(AComponent: TComponent; Operation: TOperation); override;
  private
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    procedure Execute;
    procedure FindNext;
  published
    property cxGrid: TcxGrid read FcxGrid write FcxGrid;
    property Options: TcxGridFindOptions read FOptions write SetOptions;
  end;

implementation

procedure Register;
begin
 RegisterComponents('Alex Monsanto', [TamcxGridFind]);
 RegisterPropertyEditor(TypeInfo(TcxgfoColumnsItems), TcxGridFindOptions, 'Columns', TcxgfColumns_Property);
 RegisterComponentEditor(TamcxGridFind, TamcxGridFind_Editor);
end;

{----- class: TcxgfColumns_Property -----}
{----- Public -----}
procedure TcxgfColumns_Property.Edit;
begin
 If ShowFmColumns(TcxgfoColumnsItems(GetOrdValue)) Then
  Modified;
end;
function TcxgfColumns_Property.GetAttributes: TPropertyAttributes;
begin
 Result := [paDialog, paReadOnly];
end;

{----- class: TamcxGridFind_Editor -----}
{----- Protected -----}
 
procedure TamcxGridFind_Editor.EditProperty(const PropertyEditor: IProperty; var Continue: Boolean);
begin
 If PropertyEditor.GetName = 'Options' Then
 Begin
  If ShowFmColumns(TamcxGridFind(Component).Options.Columns) Then
   Designer.Modified;
 End;
end;
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Qué componente o dll utilizar en C# para realizar un editor lo más parecido a Microso msmunoz .NET 0 13-12-2006 01:17:10
Acceso a las propiedades de un objeto desde el editor de propiedades Hugo OOP 0 24-11-2006 12:58:22
Un editor de propiedades eliash OOP 4 10-05-2006 20:51:09
componente editor de texto clanmilano Varios 1 23-01-2006 15:41:37
Problema creando un nuevo componente y un editor de propiedades Koder OOP 8 21-08-2005 10:59:08


La franja horaria es GMT +2. Ahora son las 03:06:14.


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
Copyright 1996-2007 Club Delphi