Escrever conteudo DBGrid
:?: Olá a todos
Estou montando as colunas do DBGrid na mão conforme abaixo.
With DBGridFimCorrida do
begin
Columns.Clear;
Columns.Add;
Columns[0].Width := 060;
Columns[0].FieldName := ´Cor_Cod´;
Columns[0].Title.Caption := ´Lancto´;
Columns.Add;
Columns[1].Width := 045;
Columns[1].FieldName := ´Car_Cod´;
Columns[1].Title.Caption := ´Carro´;
end;
Assim tudo bem, mas preciso escrever determinado campo
( Columns[1].FieldName := ´Car_Cod´ ), apenas parte dele como abaixo
( Columns[1].FieldName := Copy´Car_Cod´,3,2), mas assim da erro.
Como posso fazer isso??
Abraços e obrigado
Neto
Estou montando as colunas do DBGrid na mão conforme abaixo.
With DBGridFimCorrida do
begin
Columns.Clear;
Columns.Add;
Columns[0].Width := 060;
Columns[0].FieldName := ´Cor_Cod´;
Columns[0].Title.Caption := ´Lancto´;
Columns.Add;
Columns[1].Width := 045;
Columns[1].FieldName := ´Car_Cod´;
Columns[1].Title.Caption := ´Carro´;
end;
Assim tudo bem, mas preciso escrever determinado campo
( Columns[1].FieldName := ´Car_Cod´ ), apenas parte dele como abaixo
( Columns[1].FieldName := Copy´Car_Cod´,3,2), mas assim da erro.
Como posso fazer isso??
Abraços e obrigado
Neto
Neto
Curtidas 0
Respostas
Massuda
15/02/2007
Explique melhor o que você gostaria que acontecesse se isso pudesse ser executado...
Columns[1].FieldName := Copy´Car_Cod´,3,2),
GOSTEI 0
Neto
15/02/2007
Esqueci a primeira vírgula,
Columns[1].FieldName := Copy(´Car_Cod´,3,2),
Quero que ysso escreva apenas o terceiro e o próximo caracteres.
Obrigado
Neto
Columns[1].FieldName := Copy(´Car_Cod´,3,2),
Quero que ysso escreva apenas o terceiro e o próximo caracteres.
Obrigado
Neto
GOSTEI 0
Massuda
15/02/2007
Isso compila sem problema... claro, você precisa ter um campo na tabela com nome ´r_´ (que é o resultado de Copy(´Car_Cod´,3,2)).
Provavelmente não é esse seu problema... explique melhor.
Provavelmente não é esse seu problema... explique melhor.
GOSTEI 0
Neto
15/02/2007
Compila sim Mussuda.
Mas é que uso o evento OnDrawColumnCell, conforme abaixo:
procedure DBGridDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
inherited;
I_Aux := StrToInt(Dtm.CliDtStTmp1.FieldByName(´Set_Cod´).AsString);
DBGrid.Canvas.Font.Color:= StringToColor(M_CorSetor[ I_Aux ]);
DBGrid.Canvas.FillRect(Rect);
DBGrid.Canvas.TextOut(Rect.Left+2,Rect.Top,Column.Field.AsString);
end;
[color=red:733e7c5b92]Na linha DBGrid.Canvas.TextOut(Rect.Left+2,Rect.Top,Column.Field.AsString);[/color:733e7c5b92]
da o erro: Acess Violation..
Caso eu não passe por esse evento a aplicação roda, mas na coluna deste campo não mostra nada.
Obrigado
Neto
Mas é que uso o evento OnDrawColumnCell, conforme abaixo:
procedure DBGridDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
inherited;
I_Aux := StrToInt(Dtm.CliDtStTmp1.FieldByName(´Set_Cod´).AsString);
DBGrid.Canvas.Font.Color:= StringToColor(M_CorSetor[ I_Aux ]);
DBGrid.Canvas.FillRect(Rect);
DBGrid.Canvas.TextOut(Rect.Left+2,Rect.Top,Column.Field.AsString);
end;
[color=red:733e7c5b92]Na linha DBGrid.Canvas.TextOut(Rect.Left+2,Rect.Top,Column.Field.AsString);[/color:733e7c5b92]
da o erro: Acess Violation..
Caso eu não passe por esse evento a aplicação roda, mas na coluna deste campo não mostra nada.
Obrigado
Neto
GOSTEI 0
Massuda
15/02/2007
Aparentemente você está tentando acessar uma coluna que não existe em sua tabela. Explique melhor isso...
mas preciso escrever determinado campo
( Columns[1].FieldName := ´Car_Cod´ ), apenas parte dele como abaixo
( Columns[1].FieldName := Copy´Car_Cod´,3,2), mas assim da erro.
GOSTEI 0
Emerson Nascimento
15/02/2007
o que o massuda está querendo dizer é que quando você atribui
Columns[1].FieldName := XXXXX
quer dizer que a segunda coluna deverá exibir o conteúdo do campo XXXXX
no seu caso, está assim:
( Columns[1].FieldName := ´Car_Cod´ ) exibe o conteúdo do campo ´Car_Cod´
( Columns[1].FieldName := Copy(´Car_Cod´,3,2) ) exibe o conteúdo do campo ´r_´ - você tem um campo chamado ´r_´ no seu dataset ?
o que exatamente você quer fazer?
Columns[1].FieldName := XXXXX
quer dizer que a segunda coluna deverá exibir o conteúdo do campo XXXXX
no seu caso, está assim:
( Columns[1].FieldName := ´Car_Cod´ ) exibe o conteúdo do campo ´Car_Cod´
( Columns[1].FieldName := Copy(´Car_Cod´,3,2) ) exibe o conteúdo do campo ´r_´ - você tem um campo chamado ´r_´ no seu dataset ?
o que exatamente você quer fazer?
GOSTEI 0
Neto
15/02/2007
Pessoal estava vacilando.
Deu certo conforme a dica recebida por Mussuda e Emerson.en
Muito obrigado
Neto
Deu certo conforme a dica recebida por Mussuda e Emerson.en
Muito obrigado
Neto
GOSTEI 0