Fórum Colocar CheckBox no DbGrid #216934
27/02/2004
0
conforme abaixo
na posição que esta em vermelho qual o campo que devo colocar?
Insira um DBCheckBox sobre o DBGrid e defina o campo desejado.
No evento OnDrawColumnCell coloque o código:
if (gdFocused in State) and (Column.Field = [color=red:8e22832a9f][b:8e22832a9f]Campo[/b:8e22832a9f][/color:8e22832a9f]) then
begin
DBCheckbox1.SetBounds(
Rect.Left + DBGrid1.Left + 1,
Rect.Top + DBGrid1.Top + 1,
Rect.Right - Rect.Left,
Rect.Bottom - Rect.Top);
end;
No evento OnCollEnter:
if DBGrid1.Columns[DBGrid1.SelectedIndex].Field = Campo then
DBCheckbox1.Visible := True
else
DBCheckBox1.Visible :=False;
E por fim, no evento OnKeyPress:
if DBCheckBox1.Visible and (Ord(Key) > 31) then
begin
Key :=#0;
Table1.Edit;
DBCheckBox1.Checked := not DBCheckBox1.Checked;
DBCheckBox1.Field.AsBoolean := DBCheckBox1.Checked;
end;
Ariovaldo
Curtir tópico
+ 0Posts
27/02/2004
Marco Salles
Ariovaldo: Tente Fazer:
if (gdFocused in State) and (Column.Field = Table1.FieldByName(´NomeDoCampo´)) then
[color=darkblue:aae94e04c2]Cado Os Campos Estiverem Definidos No Fieds Editor Pode Usar Também [/color:aae94e04c2]
if (gdFocused in State) and (Column.Field = Table1NomeDoCampo) then
Gostei + 0
27/02/2004
Ariovaldo
if (gdFocused in State) and (Column.Field = dbgrid1.Fields[1]) then
Valeu mesmo galera
Gostei + 0
27/02/2004
Marco Salles
Fico Feliz Por Voce Ter Encontrado a Solução, Mas o Que Lhe Passei, Esta Devidamente Registrado Nas Biografias Do Delphi...Agora me Resta Saber O Porque a Instruçaõ Usando a Notação Table1.FieldByName(´NomeDoCampo´) Também Não é Uma Das Soluções :?: :?: Para o Seu Caso Apresento Cinco Soluções e Gostaria De Saber Qual Delas Não Esta Dando Certo :?: :?:
1)if (gdFocused in State) and (Column.Field = Table1.FieldByName(´NomeDoCampo´)) then 2)if (gdFocused in State) and (Column.Field = Table1.Fields[1]) then 3)if (gdFocused in State) and (Column.Field = Table1[´NomeDoCampo´] then 4)if (gdFocused in State) and (Column.Field = dbgrid1.Fields[1]) then 5)if (gdFocused in State) and (Column.Field = Table1.NomeDoCampo) then
A Única Ressalve Que Eu Faria é sobre a Quinta Maneira, Porque Depende De Voce Ter Definido o Campo Usando o FieldsEditor...Além Do Que Eu Usei Um Componente Table, Mas Se Voce Tiver Usando Um Query e Só Substituir as Instruções Usando a Query...Obs:O Nome Do Campo é o Nome Que Esta Na Tabela...Então Meu Amigo, Estou Sem Entender o Porque Dessa Instrução Não Lhe Ter Servido De Imediato(Foi Erro De Compilação :?: De Execução :?: De Que :?:
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)