Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

marcos moreno

[Resolvido] Criando Componets

Recommended Posts

E ai pessoal do forum

Estou começando a criar componentes no delphi e estou com as seguinte duvidas

 

1º como faço para criar uma lista no Object Inspetor contendo uma lista de strings

tipo um combobox mas que carrega-se os item assim que eu coloca-se no form

tenho um exemplo mas ele já esta definido com as strings eu não queria que fosse deste jeito.

 

Ex:

 

unit FTesteComponentes;

 

interface

 

uses

SysUtils, Classes;

 

type

TMyLista = (Item1,Item2,Item3,Item4);

TTesteComponentes = class(TComponent)

private

FMyLista : TMyLista;

public

 

published

property MyLista : TMyLista read FMyLista write FMyLista;

end;

 

procedure Register;

 

implementation

 

uses inifiles{$Ifdef win32},registry{$endif};

 

procedure Register;

begin

RegisterComponents('myComponentes', [TTesteComponentes]);

end;

end.

 

2º como faço para criar um botão no Object Inspetor com aqueles 3 pontinhos tipo a da fonte do form

Quem puder me ajudar pode ser um exemplo bem simples tipo um messagebox quando clica

 

Grato Marcos Augusto

Compartilhar este post


Link para o post
Compartilhar em outros sites

E ai pessoal consegui resolver este assunto, segue o exemplo abaixo:

tem que adicionar a linha "designide" sem aspas no "requires" do projeto

 

unit FComponenteParaTestes;

 

interface

 

uses

SysUtils,

Classes,

Controls,

DesignIntf,

DesignEditors;

 

type

TComponeteParaTestes = class(TComponent)

private

FLista : String;

{ Private declarations }

protected

{ Protected declarations }

public

constructor Create(AOwner: TComponent); override;

destructor Destroy; override;

{ Public declarations }

published

property ListaStrings : String read FLista write FLista;

{ Published declarations }

end;

 

TListaProperty = class(TStringProperty)

public

function GetAttributes : TPropertyAttributes; override;

procedure GetValues(Proc : TGetStrProc); override;

end;

 

procedure Register;

 

implementation

 

procedure Register;

begin

RegisterComponents('MyComponentes', [TComponeteParaTestes]);

RegisterPropertyEditor(TypeInfo(string), TComponeteParaTestes, 'ListaStrings', TListaProperty);

end;

 

{ TComponeteParaTestes }

 

constructor TComponeteParaTestes.Create(AOwner: TComponent);

begin

inherited;

 

end;

 

destructor TComponeteParaTestes.Destroy;

begin

 

inherited;

end;

 

{ TListaProperty }

 

function TListaProperty.GetAttributes: TPropertyAttributes;

begin

Result := [paValueList];

end;

 

procedure TListaProperty.GetValues(Proc: TGetStrProc);

var

AliasList : TStringList;

i : Integer;

begin

try

AliasList := TStringList.Create;

for i := 0 to 100 do

AliasList.Add('teste - ' + IntToStr(i));

 

for I := 0 to AliasList.Count - 1 do

Proc(AliasList);

finally

AliasList.Free;

end;

 

end;

 

end.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.