| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Ter Nov 12, 2019 5:43 pm Assunto: |
|
|
Experimente mais ou menos dessa forma:
| Código: | var
Bookmark1: TBookmark;
Email: string;
begin
Bookmark1 := ClientDataSet1.GetBookmark;
try
ClientDataSet1.DisableControls;
Email := ClientDataSet1Email.AsString;
ClientDataSet1.First;
while not ClientDataSet1.Eof do
begin
if ClientDataSet1Email.AsString <> Email then
begin
ClientDataSet1.Edit;
ClientDataSet1Selecionado.AsString := 'nao';
ClientDataSet1.Post;
end;
ClientDataSet1.Next;
end;
finally
ClientDataSet1.GotoBookmark(Bookmark1);
ClientDataSet1.FreeBookmark(Bookmark1);
ClientDataSet1.EnableControls;
end;
end; |
Espero que ajude
Editado pela última vez por imex em Dom Out 01, 2023 4:33 pm, num total de 1 vez |
|
| Voltar ao Topo |
|
 |
Fafnyr Novato

Registrado: Terça-Feira, 7 de Mai de 2019 Mensagens: 39
|
Enviada: Qua Nov 13, 2019 8:17 am Assunto: |
|
|
| imex escreveu: | Experimente mais ou menos dessa forma:
| Código: | var
Bookmark1: TBookmark;
Email: string;
begin
Bookmark1 := ClientDataSet1.GetBookmark;
try
ClientDataSet1.DisableControls;
Email := ClientDataSet1Email.AsString;
ClientDataSet1.First;
while not ClientDataSet1.Eof do
begin
if ClientDataSet1Email.AsString <> Email then
begin
ClientDataSet1.Edit;
ClientDataSet1Selecionado.AsString := 'nao';
ClientDataSet1.Post;
end;
ClientDataSet1.Next;
end;
finally
ClientDataSet1.GotoBookmark(Bookmark1);
ClientDataSet1.FreeBookmark(Bookmark1);
ClientDataSet1.EnableControls;
end;
end; |
Espero que ajude
|
imex, esse código eu coloco aonde?, porque os checkbox são criados manualmente através do código, acho que o ideal seria no evento cellclick |
|
| Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Qua Nov 13, 2019 9:51 am Assunto: |
|
|
| Acho que você pode colocar abaixo do código que altera o valor do campo quando o CheckBox é clicado. |
|
| Voltar ao Topo |
|
 |
Fafnyr Novato

Registrado: Terça-Feira, 7 de Mai de 2019 Mensagens: 39
|
Enviada: Qua Nov 13, 2019 10:07 am Assunto: |
|
|
| imex escreveu: | | Acho que você pode colocar abaixo do código que altera o valor do campo quando o CheckBox é clicado. |
imex, primeiramente obrigado pela ajuda, eu coloquei o código como você instruiu, porém ele continua marcando mais de uma checkbox, oque mudou é que agora quando eu desmarco uma, as outras que estão marcadas desmarcam junto, outra dúvida, na linha ClientDataSet1Selecionado.AsString := 'nao';
eu troco o Selecionado pelo nome do field da checkbox? |
|
| Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Qua Nov 13, 2019 10:54 am Assunto: |
|
|
| Citação: | | eu troco o Selecionado pelo nome do field da checkbox? |
Sim
A princípio esse código pode ser executado só quando o CheckBox é marcado. |
|
| Voltar ao Topo |
|
 |
Fafnyr Novato

Registrado: Terça-Feira, 7 de Mai de 2019 Mensagens: 39
|
Enviada: Qua Nov 13, 2019 11:03 am Assunto: |
|
|
| imex escreveu: | | Citação: | | eu troco o Selecionado pelo nome do field da checkbox? |
Sim
A princípio esse código pode ser executado só quando o CheckBox é marcado. |
mas então, oque ta acontecendo é que ele continua marcando várias checkbox, só que na hora de desmarcar ele desmarca todas, o código está assim
| Código: |
procedure TForm1.dbgrd1CellClick(Column: TColumn);
var
Bookmark1: TBookmark;
Email: string;
begin
dscds.Edit;
if dscdsCK_EMAIL.AsString = 'SIM' then
dscdsCK_EMAIL.AsString := ''
else dscdsCK_EMAIL.AsString := 'SIM';
dscds.Post;
Bookmark1 := dscds.GetBookmark;
try
dscds.DisableControls;
Email := dscds.fieldbyname('TX_EMAIL').AsString;
dscds.First;
while not dscds.Eof do
begin
if dscdsCK_EMAIL.AsString <> Email then
begin
dscds.Edit;
dscdsCK_EMAIL.AsString := 'nao';
dscds.Post;
end;
dscds.Next;
end;
finally
dscds.GotoBookmark(Bookmark1);
dscds.FreeBookmark(Bookmark1);
dscds.EnableControls;
end;
end;
|
|
|
| Voltar ao Topo |
|
 |
Fafnyr Novato

Registrado: Terça-Feira, 7 de Mai de 2019 Mensagens: 39
|
Enviada: Qua Nov 13, 2019 11:56 am Assunto: |
|
|
| Consegui, na real foi vacilo meu, obrigado imex, agora só mais uma coisa, no caso eu preciso que 1 checkbox sempre fique marcado, nunca pode estar todos desmarcados, como eu posso fazer isso? |
|
| Voltar ao Topo |
|
 |
johnny-walker Moderador


Registrado: Sábado, 4 de Outubro de 2003 Mensagens: 10653 Localização: Contagem/MG - BRAZIL
|
Enviada: Qua Nov 13, 2019 12:08 pm Assunto: |
|
|
Cuidado ao colocar no oncreate algo do banco, visto que por vezes nem o datamodulo pode ter sido iniciado ainda, portanto verifique isto para não haver falha.
bye _________________ P.O.W.E.R B.Y D.E.L.P.H.I |
|
| Voltar ao Topo |
|
 |
Fafnyr Novato

Registrado: Terça-Feira, 7 de Mai de 2019 Mensagens: 39
|
Enviada: Qua Nov 13, 2019 2:07 pm Assunto: |
|
|
| Agora está funcionando perfeitamente, só falta acertar o detalhe que disse ali em cima, algum dos checkbox tem que estar marcado, não pode estar todos desmarcados |
|
| Voltar ao Topo |
|
 |
Fafnyr Novato

Registrado: Terça-Feira, 7 de Mai de 2019 Mensagens: 39
|
Enviada: Qua Nov 13, 2019 3:20 pm Assunto: |
|
|
Consegui oque queria galera, muito obrigado a todos, desculpem a leiguice , qualquer dúvida volto aqui |
|
| Voltar ao Topo |
|
 |
|