Checklistbox item selecionado

21/01/2006

0

preciso do seguinte:
a medida que o usuario for clicando nos items do checklistbox ele va procurando na tabela e adiconando o valor em um Edit.
fiz assim:
[color=red:929c399f43]procedure TForm1.CheckListBox1ClickCheck(Sender: TObject);
var
i:integer;
valor: Currency;
texto: string;
begin
for i := 0 to CheckListBox1.Count-1 do
if CheckListBox1.Checked[i] then
texto := CheckListBox1.Items[i] + ´ ´;
table1.Locate(´Lastname´, texto,[]);
valor := Valor + Table1.FieldByName(´Salary´).AsCurrency;
Label1.Caption := texto + currtostr(valor);
end; [/color:929c399f43]

Mas ele so retornar o primeiro salario.
Alguem pode ajudar


Dpinho

Dpinho

Responder

Posts

22/01/2006

Edilcimar

o erro está no begin, ele deve ficar depois do for e não antes


Responder

22/01/2006

Aasn

Olá DPinho,

a rotina ficaria assim:

procedure TForm1.CheckListBox1ClickCheck(Sender: TObject);
var i : integer;
     valor : Currency;
     texto : string;
begin
for i := 0 to CheckListBox1.Count-1 do
     if CheckListBox1.Checked[i] then
        begin
        texto := CheckListBox1.Items[i] + ´ ´;
        table1.Locate(´Lastname´, texto, [loPartialKey, loCaseInsensitive]);
        valor := Valor + Table1.FieldByName(´Salary´).AsCurrency;
        Label1.Caption := texto + currtostr(valor);
        end;
Application.ProcessMessages;
end;


nota: o CheckListBox em questão deve conter exatamente o texto que se deseja localizar na tabela, ou seja, se vc está pesquisando o campo ´Lastname´, este deve ser o conteúdo do list, ou será necessário um tratamente na variável ´texto´ para que se possa fazer a pesquisa.

[]´s
AASN


Responder

22/01/2006

Dpinho

Valeu amigo, era justamente isto que precisava. Ficou otimo.
Agora preciso o seguinte:
Estou incializando os valores da tabela com o campo Lastname, mas preciso colocar mais tres colunas no checklistbox ficaria assim

Nome Sobrenome Salario.

Utilizo a seguinte rotina para preencher o checklistbox:

[color=red:a6d8ba04d4]procedure TForm1.FormCreate(Sender: TObject);
begin
Table1.Open;
while not Table1.Eof do
begin
CheckListBox1.Items.Add(Table1.FieldByName(´LastName´).AsString + ´ ´ +Table1.FieldByName(´FirstName´).AsString+ ´ ´Table1.FieldByName(´Salary´).AsString );
Table1.next;
end;[/color:a6d8ba04d4]

Mas dependendo do tamanho do nome fica sem formatação, tentei definir o numero de colunas, mas acontece sai a lista dos nomes tirando a barra de rolagem e gostaria que cada campo ficasse em uma coluna.
Obrigado a qualquer ajuda


Responder

22/01/2006

Edilcimar

troque para
CheckListBox1.Items.Add(Copy(Table1.FieldByName(´LastName´).AsString + ´ ´ +Table1.FieldByName(´FirstName´).AsString+ ´ ´Table1.FieldByName(´Salary´).AsString ),1,50);
eu escolhi 50 caracteres, vc escolhe quantos quiser


Responder

22/01/2006

Dpinho

troque para CheckListBox1.Items.Add(Copy(Table1.FieldByName(´LastName´).AsString + ´ ´ +Table1.FieldByName(´FirstName´).AsString+ ´ ´Table1.FieldByName(´Salary´).AsString ),1,50); eu escolhi 50 caracteres, vc escolhe quantos quiser


Deu na mesma forma, gostaria se possivel de separar por colunas e se pudesse nomear as colunas seria ainda melhor
Obrigado


Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar