Utilizar o FOR em um dbGrid
Boa tarde a todos!!!
estou como seguinte problema, tenho um dbgrid que mostra todos os horários da minha agenda, oque estou querendo fazer é o seguinte, selecionar dois horários ao mesmo tempo pra fazer o agendamento, no primeiro horário gravo os dados do agendamento e o segundo horário quero tornar inativo pra que ninguém marque nada nele. Fiz o seguinte :
oque eu quero é identificar a primeira linha pra fazer uma determinada ação e depois que ele vá pra próxima linha pra fazer as outras ações que eu definir.
Desde já agradeço a atenção de todos...
Junior
estou como seguinte problema, tenho um dbgrid que mostra todos os horários da minha agenda, oque estou querendo fazer é o seguinte, selecionar dois horários ao mesmo tempo pra fazer o agendamento, no primeiro horário gravo os dados do agendamento e o segundo horário quero tornar inativo pra que ninguém marque nada nele. Fiz o seguinte :
with DBGrid1.DataSource.DataSet do
showmessage(inttostr(DBGrid1.SelectedRows.Count));
for i := 0 to DBGrid1.SelectedRows.Count-1 do
begin
if DBGrid1.SelectedRows.Count = 1 then
begin
XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
end
else
begin
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
end;
end;
end;
oque eu quero é identificar a primeira linha pra fazer uma determinada ação e depois que ele vá pra próxima linha pra fazer as outras ações que eu definir.
Desde já agradeço a atenção de todos...
Junior
Lindolfo Junior
Curtidas 0
Melhor post
Douglas
10/12/2014
Olá Lindolfo, tudo bem?
Vamos lá! Entendi sua situação. A primeira coisa a fazer é, configure o seu dbgrid para selecionar múltiplas linhas na tabela. Vá até as propriedades do seu dbgrid, no Object Inspector localize a opção options e clique sobre o sinal de "+" para abrir um leque de opções, e por fim mude a propriedade dgMultiSelect para true.
Agora, vamos implementar o código abaixo:
Bem, neste momento é só você adaptar o código acima para a sua necessidade. Espero que tenha ficado claro e Bons Códigos!
Vamos lá! Entendi sua situação. A primeira coisa a fazer é, configure o seu dbgrid para selecionar múltiplas linhas na tabela. Vá até as propriedades do seu dbgrid, no Object Inspector localize a opção options e clique sobre o sinal de "+" para abrir um leque de opções, e por fim mude a propriedade dgMultiSelect para true.
Agora, vamos implementar o código abaixo:
with DBGrid1.DataSource do
begin
for I := 0 to DBGrid1.SelectedRows.Count - 1 do
begin
DataSet.GotoBookmark(Pointer(DBGrid1.SelectedRows[I]));
if DBGrid1.SelectedRows.IndexOf(DBGrid1.SelectedRows[I]) = 0 then // Identifica a primeira linha selecionada.
begin
ShowMessage(DataSet.FieldByName('horario').AsString);
end
else// Identifica as demais linhas selecionadas.
begin
ShowMessage('Inativar Segundo Horario');
end;
end;
end;
Bem, neste momento é só você adaptar o código acima para a sua necessidade. Espero que tenha ficado claro e Bons Códigos!
GOSTEI 1
Mais Respostas
Lindolfo Junior
10/12/2014
Olá Lindolfo, tudo bem?
Vamos lá! Entendi sua situação. A primeira coisa a fazer é, configure o seu dbgrid para selecionar múltiplas linhas na tabela. Vá até as propriedades do seu dbgrid, no Object Inspector localize a opção options e clique sobre o sinal de "+" para abrir um leque de opções, e por fim mude a propriedade dgMultiSelect para true.
Agora, vamos implementar o código abaixo:
Bem, neste momento é só você adaptar o código acima para a sua necessidade. Espero que tenha ficado claro e Bons Códigos!
Vamos lá! Entendi sua situação. A primeira coisa a fazer é, configure o seu dbgrid para selecionar múltiplas linhas na tabela. Vá até as propriedades do seu dbgrid, no Object Inspector localize a opção options e clique sobre o sinal de "+" para abrir um leque de opções, e por fim mude a propriedade dgMultiSelect para true.
Agora, vamos implementar o código abaixo:
with DBGrid1.DataSource do
begin
for I := 0 to DBGrid1.SelectedRows.Count - 1 do
begin
DataSet.GotoBookmark(Pointer(DBGrid1.SelectedRows[I]));
if DBGrid1.SelectedRows.IndexOf(DBGrid1.SelectedRows[I]) = 0 then // Identifica a primeira linha selecionada.
begin
ShowMessage(DataSet.FieldByName('horario').AsString);
end
else// Identifica as demais linhas selecionadas.
begin
ShowMessage('Inativar Segundo Horario');
end;
end;
end;
Bem, neste momento é só você adaptar o código acima para a sua necessidade. Espero que tenha ficado claro e Bons Códigos!
Douglas funcionou perfeito, a única coisa foi que deu um erro nessa linha : DataSet.GotoBookmark(Pointer(DBGrid1.SelectedRows[I])); e corrigi pra : dbGrid1.DataSource.DataSet.GotoBookmark(Pointer(DBGrid1.SelectedRows[I])); e pronto, funcionou exatamente como eu queria...
Muito obrigado pela ajuda
JR
GOSTEI 0
Lindolfo Junior
10/12/2014
Douglas voltei!!! na verdade deu certo quando é selecionado dois horários, mas quando eu seleciono somente um, não esta funcionando...heheheh sabe me dizer porque?
GOSTEI 0
Lindolfo Junior
10/12/2014
desculpa, mas já consegui resolver... vlw!!!!
GOSTEI 0
Douglas
10/12/2014
Olá Lindolfo, legal que funcionou. Bons códigos!
GOSTEI 0