Hola Choclito.
Cita:
El codigo que me brindaste lo cambie pero no hace nada
|
Debe ser por el componente
TjVDBGrid, ya que el código estaba probado y funciona correctamente con un
TDBGrid.
Cita:
Como se ve lo que quisiera es que registrando en un edit el codigo de una de las oficinas que se busque en el dbgrid y se pinte la fila en un tiempo determinado y emitiendo un sonido
|
Entonces el planteo ha cambiado, ahora se hace innecesaria la variable FPintar ya que se puede evaluar el contenido de Edit1.Text.
Te pongo un ejemplo con busqueda incremental:
Código Delphi
[-]
...
implementation
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if (gdSelected in State) and (Edit1.Text > '') then
with (Sender as TDBGrid) do
begin
Canvas.Brush.Color:= clRed;
Canvas.Font.Color:= clWhite;
DefaultDrawColumnCell(Rect, DataCol, Column, State);
MessageBeep(MB_OK);
end;
end;
procedure TForm1.Edit1Change(Sender: TObject);
begin
with Query1 do
begin
Close;
SQL.Clear;
SQL.Add('SELECT * FROM TU_TABLA '); SQL.Add('WHERE CODIGO LIKE :FOUND ');
ParamByName('FOUND').AsString:= Edit1.Text+'%';
Open;
end;
end;
Y otro que hace el posicionamiento ante el evento
OnClick de un
TButton:
Código Delphi
[-]
...
implementation
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if (gdSelected in State) and (Edit1.Text > '') then
with (Sender as TDBGrid) do
begin
Canvas.Brush.Color:= clRed;
Canvas.Font.Color:= clWhite;
DefaultDrawColumnCell(Rect, DataCol, Column, State);
MessageBeep(MB_OK);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Query1.Locate(CODIGO', Edit1.Text,[]);
DBGrid1.Invalidate;
end;
Pero como te comento no uso los mismos componentes...
Un saludo.