Ajuda com ListBox- Delphi xe8

Delphi

14/03/2016

Olá, sou novato no Delphi e 'cavando' no help vi p seguinte programa:

[code var
MyList: TStringList;
Index: Integer;

begin

MyList := TStringList.Create;
try
MyList.Add('Animals');
MyList.Add('Flowers');

MyList.Add('Cars');

MyList.Sort;
if MyList.Find ('Flowers', Index) then
begin
ListBox1.Items.AddStrings(MyList);
Label1.Caption := 'Flowers has an index value of' + IntToStr(Index);

end;

finally
MyList:= Free
end;
][/code]


O Delphi manda colocar um botão, uma listbox e um label, só que eu não sei onde esse código vai. É no procedimento do botão? Quando boto no procedimento do botão dá os seguintes erros de compilação:

[dcc32 Error] listbox.pas(52): E2010 Incompatible types: 'TStringList' and 'procedure, untyped pointer or untyped parameter'

[dcc32 Fatal Error] Project1.listbox.dpr(5): F2063 Could not compile used unit 'listbox.pas'

Minha dúvida é basicamente essa; se alguém puder ajudar agradeço.

Valew
Adriano Freitas

Adriano Freitas

Curtidas 0

Respostas

Marco Antônio

Marco Antônio

14/03/2016

Adriano, bom dia. Aqui funciono com uma pequena alteração ao liberar o objeto criado da memória.
Respondendo a sua pergunta. Sim a rotina deverá ser colocada no procedimento do botão.

 procedure TForm1.Button1Click(Sender: TObject);
var
 MyList: TStringList;
 Index: Integer;

begin

MyList := TStringList.Create;

try
MyList.Add('Animals');
MyList.Add('Flowers');
MyList.Add('Cars');

MyList.Sort;

if MyList.Find ('Flowers', Index) then
   begin
     ListBox1.Items.AddStrings(MyList);
     Label1.Caption := 'Flowers has an index value of' + IntToStr(Index);
   end;

finally
MyList.Free; // <---- só mudei aqui
end;


//
end;

end;

Neste help o Delphi quis somente te exemplificar como passar toda uma lista de strings de um objeto para outro do mesmo tipo sem ter que ficar utilizando de loop
para isso.

Abc.
GOSTEI 0
Adriano Freitas

Adriano Freitas

14/03/2016

Adriano, bom dia. Aqui funciono com uma pequena alteração ao liberar o objeto criado da memória.
Respondendo a sua pergunta. Sim a rotina deverá ser colocada no procedimento do botão.

 procedure TForm1.Button1Click(Sender: TObject);
var
 MyList: TStringList;
 Index: Integer;

begin

MyList := TStringList.Create;

try
MyList.Add('Animals');
MyList.Add('Flowers');
MyList.Add('Cars');

MyList.Sort;

if MyList.Find ('Flowers', Index) then
   begin
     ListBox1.Items.AddStrings(MyList);
     Label1.Caption := 'Flowers has an index value of' + IntToStr(Index);
   end;

finally
MyList.Free; // <---- só mudei aqui
end;


//
end;

end;

Neste help o Delphi quis somente te exemplificar como passar toda uma lista de strings de um objeto para outro do mesmo tipo sem ter que ficar utilizando de loop
para isso.

Abc.







Valeu, irmão. Não ia adivinhar nunca...
Abraço
GOSTEI 0
POSTAR