Inserir Texto em Listbox

03/06/2008

27

Tenho um Listbox com varias linhas e todas linha contem na ultima letra um ? , como faco pra inserir na frente desse ? um texto que esta num campo Edit. Ja tentei com o Pos e PosEx e nao consigui.


Responder

Posts

03/06/2008

Bertu

eu tentei fazer da seguinte maneira

procedure TForm1.Button6Click(Sender: TObject);
var
i: integer;
posini: integer;
s: string;
begin
for i:=0 to ListBox2.Count-1 do
  begin
   s:=listBox2.Items.Strings[i];
    posIni:=pos(´=´,s);
        listBox2.Items.Add(s+Edit1.Text);
        posIni:=pos(´=´,s);
     end;
  end;


So que tem 2 erros: Se eu ficar clicando no botao varias vezes ele vai adicionando o teste independente se existe ou nao o ´?´
o outro erro é que ele nao esta inserindo na frente do ´?´ ,está criando outra linha pq so consegui fazer usando o Items.Add :$
alguem me ajuda ?


Responder

03/06/2008

Bertu

ahhh esqueci de trocar o = por ? mais eh ? no lugar do = vlww


Responder

03/06/2008

Rodc

Creio que é algo assim:
var teste: Integer;
teste := Pos(ListBox1.Items.Strings[0], ´?´);
ListBox1.Items.Strings[0] := Insert(ListBox1.Items.Strings[0], ´teste´, teste);



Responder

03/06/2008

Bertu

olha o erro


[Error] Unit1.pas(104): Constant object cannot be passed as var parameter


Responder

03/06/2008

Bertu

up


Responder

04/06/2008

Rodc

Tenta assim:
procedure TForm1.Button6Click(Sender: TObject); 
var 
  i: integer; 
  posini: integer; 
  s: string; 
begin 
  for i:=0 to ListBox2.Count-1 do 
  begin 
    s:=listBox2.Items.Strings[i]; 
    posIni:=pos(´?´,s); 
    Insert(s, Edit1.Text, posIni-1);
    listBox2.Items.Strings[i] := s;
  end;
end;

Não sei se no Delphi a função Insert() é assim. Se der erro consulte o help do Delphi.


Responder

04/06/2008

Bertu

nao da pq o PosIni ta Integer e Insert so aceita String ;/


Responder

04/06/2008

Rodc

nao da pq o PosIni ta Integer e Insert so aceita String ;/

Consultou o Help? Tente assim:
procedure TForm1.Button6Click(Sender: TObject);
var
i: integer;
posini: integer;
s: string;
begin
for i:=0 to ListBox2.Count-1 do
begin
s:=listBox2.Items.Strings[i];
posIni:=pos(´?´,s);
Insert(Edit1.Text, s, posIni-1);
listBox2.Items.Strings[i] := s;
end;
end;


Responder

04/06/2008

Bertu

deu nao... ta adicionando no primeiro ?
se a linha tiver mais de dois ? sempre np primeiro


Responder