Fórum Ao migrar para Dephi 2010 codigo não funciona #431091
16/12/2012
0
Ao migrar para Dephi 2010 o codigo não funciona, quando clico na coluna o campo não recebe o foco e nem deleta o que os caracteres que estão no mesmo.
procedure TFrmCadAluno.dbgAlunoTitleClick(Column: TColumn);
var
campo:string;
begin
campo:=column.fieldname;
application.processmessages;
IBQryAluno.sql.Clear;
IBQryAluno.sql.add('select *from ALUNO where ESCOLA = '''+sEscola+''' order by '+campo);
if not IBQryAluno.Prepared then
IBQryAluno.Prepare;
IBQryAluno.Open;
if ( Edit_Consulta.CanFocus ) then
Edit_Consulta.SetFocus;
Edit_Consulta.Clear;
End;
Osmar
Curtir tópico
+ 0Posts
16/12/2012
Claudia Nogueira
Dá algum erro, ou simplesmente não atualiza o DBGrid?
Gostei + 0
16/12/2012
Osmar
Gostei + 0
17/12/2012
Osmar
Uso esse recurso em vários forms, e após a migração para Delphi 2010 só funciona em todos eles a pesquisa, más ao clicar no menu do dbgrid não foca e nem apaga o que está no LabeledEdit, o Uses está assim:
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, Buttons, ExtCtrls, Grids, DBGrids, jpeg,
Mask, ExtDlgs, rxToolEdit, RXDBCtrl, DB, ADODB, DBCtrls,
RxDBComb, umDBImage, IBCustomDataSet, IBQuery, IBUpdateSQL, Menus;
Gostei + 0
17/12/2012
Claudia Nogueira
Gostei + 0
19/12/2012
Osmar
Ao debugar passa sim pelo setfocus e clear, veja também como esta o FormShow e o FormCreate:
procedure TFrmCadFuncionario.FormShow(Sender: TObject);
begin
IBQryFuncionario.Close;
IBQryFuncionario.Open;
dbgFuncionarioTitleClick(dbgFuncionario.Columns[0]);
end;
procedure TFrmCadFuncionario.FormCreate(Sender: TObject);
begin
PcFuncionario.ActivePageIndex := 0;
PcFuncionario.OwnerDraw:=true;
IBQryFuncionario.Close;
IBQryFuncionario.Open;
end;
Gostei + 0
19/12/2012
Claudia Nogueira
Gostei + 0
19/12/2012
Osmar
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
with dbgFuncionario do
begin
if gdSelected in State then
begin
Canvas.Brush.Color := clYellow;
Canvas.Font.Color := clBlack;
end
else Canvas.Brush.Color := clWindow;
Canvas.FillRect( Rect );
DefaultDrawColumnCell( Rect, DataCol, Column, State );
procedure TFrmCadFuncionario.dbgFuncionarioTitleClick(Column: TColumn);
var
campo:string;
begin
campo:=column.fieldname;
application.processmessages;
IBQryFuncionario.sql.Clear;
IBQryFuncionario.sql.add('select * from Funcionario where ESCOLA = '''+sEscola+''' order by '+campo);
if not IBQryFuncionario.Prepared then
IBQryFuncionario.Prepare;
IBQryFuncionario.Open;
if ( Edit_Consulta.CanFocus ) then
Edit_Consulta.SetFocus;
Edit_Consulta.Clear;
End;
end;
end;
Gostei + 0
20/02/2013
Osmar
Ainda não resolvi este problema, olha quando clico no título do dbgrid nada acontece, ou seja, o sistema não ordena, não citei na ultima vez o codigo do FormShow:
procedure TFrmCadAluno.FormShow(Sender: TObject);
begin
IBQryAluno.Close;
IBQryAluno.Open;
dbgAlunoTitleClick(dbgAluno.Columns[0]);
end;
Gostei + 0
20/02/2013
Alessandro Folk
um print da tela também seria interessante para entender melhor oque ocorre!
Gostei + 0
20/02/2013
Perivaldo Martins
Boa sorte e bons códigos!
Gostei + 0
25/02/2013
Osmar
Realmete era este o problema foi só colora true e tudo voltou ao normal.
Agradeço a atenção de todos.
Osmar.
Gostei + 0
25/02/2013
Perivaldo Martins
Realmete era este o problema foi só colora true e tudo voltou ao normal.
Agradeço a atenção de todos.
Osmar.
Tranquilo, que bom que mais um problema foi solucionado.
Boa sorte e bons códigos!
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)