Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
|
Voltar ao Topo |
|
 |
natanbh1 Colaborador

Registrado: Terça-Feira, 15 de Março de 2011 Mensagens: 3093 Localização: Belo Horizonte - MG
|
Enviada: Qui Out 24, 2019 11:27 am Assunto: |
|
|
Se entendi bem, você quer deixar checado os checkbox que tem seu nome gravados neste campo.
Se for, veja um exemplo:
Código: | var
Lista: TStringList;
campoCheckbox: string;
i: Integer;
begin
campoCheckbox := 'CheckBox1; CheckBox2; CheckBox4'; // Substitua aqui pelo valor que vem do banco de dados
Lista := TStringList.Create;
try
Lista.Delimiter := ';';
Lista.StrictDelimiter := true;
Lista.DelimitedText := campoCheckbox;
for i := 0 to Lista.Count - 1 do
TCheckBox(Self.FindComponent(Trim(Lista[i]))).Checked := true;
finally
Lista.Free;
end;
end; |
Se não for isso, nos avise. _________________ ''A persistência é o caminho para o êxito.''
Charlie Chaplin |
|
Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Qui Out 24, 2019 11:38 am Assunto: |
|
|
natanbh1 escreveu: | Se entendi bem, você quer deixar checado os checkbox que tem seu nome gravados neste campo.
Se for, veja um exemplo:
Código: | var
Lista: TStringList;
campoCheckbox: string;
i: Integer;
begin
campoCheckbox := 'CheckBox1; CheckBox2; CheckBox4'; // Substitua aqui pelo valor que vem do banco de dados
Lista := TStringList.Create;
try
Lista.Delimiter := ';';
Lista.StrictDelimiter := true;
Lista.DelimitedText := campoCheckbox;
for i := 0 to Lista.Count - 1 do
TCheckBox(Self.FindComponent(Trim(Lista[i]))).Checked := true;
finally
Lista.Free;
end;
end; |
Se não for isso, nos avise. |
Bom dia, era isso mesmo que precisava natanbh1. Muito obrigado. _________________ Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree |
|
Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Qui Out 24, 2019 11:50 am Assunto: |
|
|
Para gravar também estou com dificuldades
A primeira vez para gravar no banco fiz assim
Código: | for I := 0 to Pred(ComponentCount) do
begin
if (Components[I] is TCheckBox) then
if (TCheckBox(Components[I]).Checked) and (TCheckBox(Components[I]).Tag > 0) then
Lista.Add(TCheckBox(Components[I]).Name);
end; |
Ai preencho o StringList com todos que marquei checked
Porém agora ao buscar e popular novamente os checkbox e tentar modificar ele não retira do banco.
Por exemplo tenho um checkbox1 gravado no banco, agora quero ao desmarcar seu check no update retirar ele do banco, tem como? _________________ Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree |
|
Voltar ao Topo |
|
 |
natanbh1 Colaborador

Registrado: Terça-Feira, 15 de Março de 2011 Mensagens: 3093 Localização: Belo Horizonte - MG
|
Enviada: Qui Out 24, 2019 2:28 pm Assunto: |
|
|
Pelo que entendi, basta você rodar este código que você postou e usar o StringList do resultado para atualizar o banco.
Usando seu exemplo, após desmarcar o Checkbox1 use o codigo abaixo para capturar novamente os checkbox's marcados:
Código: | for I := 0 to Pred(ComponentCount) do
begin
if (Components[I] is TCheckBox) then
if (TCheckBox(Components[I]).Checked) and (TCheckBox(Components[I]).Tag > 0) then
Lista.Add(TCheckBox(Components[I]).Name);
end;
|
Depois use a StringList "Lista" do código acima para atualizar o campo. _________________ ''A persistência é o caminho para o êxito.''
Charlie Chaplin |
|
Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Qui Out 24, 2019 3:21 pm Assunto: |
|
|
natanbh1 escreveu: | Pelo que entendi, basta você rodar este código que você postou e usar o StringList do resultado para atualizar o banco.
Usando seu exemplo, após desmarcar o Checkbox1 use o codigo abaixo para capturar novamente os checkbox's marcados:
Código: | for I := 0 to Pred(ComponentCount) do
begin
if (Components[I] is TCheckBox) then
if (TCheckBox(Components[I]).Checked) and (TCheckBox(Components[I]).Tag > 0) then
Lista.Add(TCheckBox(Components[I]).Name);
end;
|
Entendi, é que ao executar o salvar estava trazendo o valor na variavel por isso não actualizava, agora limpo antes de executar novamente.
Deu certo. Obrigado.
Depois use a StringList "Lista" do código acima para atualizar o campo. |
_________________ Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree |
|
Voltar ao Topo |
|
 |
|