Ajuda com TListBox
02/02/2010
0
Sou uma programadora iniciante em Delphi 7.
Estou precisando de uma ajudinha para criar um componente descendente de TListBox e queria contar com a ajuda de vocês. Já pesquisei no Google (notei que tem gente que estava precisando disso também, se você conseguiu, peço encarecidamente que me ajude colocando a resposta aqui neste tópico), já postei em fóruns e já não sei o que fazer. Se alguém souber como faço o que direi abaixo eu ficarei muito grata por essa ajuda.
Seguinte, eu preciso colocar na propriedade Items da ListBox nomes de arquivos sem a extensão, até aí tudo bem. Mas preciso armazenar o path em algum lugar pois vou precisar deles, portanto, pensei em criar uma nova propriedade Items2 do tipo TStrings também. Para cada nome de arquivo armazenado em Items do ListBox eu aloco o caminho relacionado nesta nova propriedade.
São duas propriedades TStrings, uma já existe.
Alguém sabe como criar essa propriedade?
Fico no aguardo, ficarei grata pela ajuda.
Nayane
nayaneline@yahoo.com.br
Nayane
Posts
02/02/2010
Marcos Iwazaki
property Caminho :Tstrings
dae no OnCreate do componente fazer um override e fazer um create da sua nova variavel(propriedade)
ex:
caminho := TStringList.Create;
E no evento onDestroy fazer um override e fazer a liberação do mesmo
FreeAndNil(caminho)
02/02/2010
Nayane
Cannot assign a nil to a TRichEditStrings
O que tá acontecendo?
02/02/2010
Marcos Iwazaki
FListaCampos: TStrings;
property ListaCampos:TStrings read FListaCampos write SetListaCampos;
//Provavelmente o problema esta aqui. Deve estar errado o seu "Seter"
procedure TS100PesquisaRapida.SetListaCampos(const Value: TStrings);
begin
FListaCampos.Assign(Value);
end;
02/02/2010
Nayane
unit ItemsListBox;
interface
uses
SysUtils, Classes, Controls, StdCtrls;
type
TItemsListBox = class(TListBox)
private
{ Private declarations }
fItemPath: TStrings;
protected
procedure SetItemsPath(const Value: TStrings);
// procedure SetItemsPath(const Value: TStrings); virtual; // Tanto faz
{ Protected declarations }
public
{ Public declarations }
published
property Path: TStrings read fItemPath write SetItemsPath;
{ Published declarations }
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('Standard', [TItemsListBox]);
end;
{ TItemsListBox }
procedure TItemsListBox.SetItemsPath(const Value: TStrings);
begin
fItemPath.Assign(Value);
end;
end.
02/02/2010
Marcos Iwazaki
(Uma dica não use virtual neste caso).
mandei um email p vc.
Se quiser me mande o fontes disso que vc fez que eu posso testar aqui.
02/02/2010
Emerson Nascimento
unit ItemsListBox;
interface
uses
SysUtils, Classes, Controls, StdCtrls;
type
TItemsListBox = class(TListBox)
private
{ Private declarations }
fItemPath: TStrings;
protected
procedure SetItemsPath(const Value: TStrings);
{ Protected declarations }
public
{ Public declarations }
constructor Create(Owner: TComponent); override; // override, para podermos sobrescrever o método
published
{ Published declarations }
property Path: TStrings read fItemPath write SetItemsPath;
end;
implementation
procedure Register;
begin
RegisterComponents('Standard', [TItemsListBox]);
end;
{ TItemsListBox }
constructor TItemsListBox.Create(Owner: Tcomponent);
begin
inherited; // irá executar o código de criação padrão do TListBox (herança)
fItemPath := TStrings.Create;
end;
procedure TItemsListBox.SetItemsPath(const Value: TStrings);
begin
fItemPath.Assign(Value);
end;
end.
02/02/2010
Nayane
02/02/2010
Nayane
Fico satisfeita e agradeço a todos pela atenção.
18/10/2011
Leonardo Gazio
Fico satisfeita e agradeço a todos pela atenção.
Olá colega, você poderia me mostrar como você fez? Eu estou agarrado nesse problema e não tô achando solução em lugar nenhum, segue o meu email; leogazio@gmail.com
Grato,
Leonardo Gazio.
Clique aqui para fazer login e interagir na Comunidade :)