Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #3  
Antiguo 21-07-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola cmfab.
Cita:
lo que necesito es que al hacer click (primario o secundario) el nombre de la columna se convierta en un edit, por ejemplo, donde el usuario va
escribiendo y se va filtrando la informacion que contiene ese campo.
Supongo que te referís al título de la columna. Te pongo un ejemplo que hace lo que buscas.
Código Delphi [-]
...
type
  TDBGrid = class(DBGrids.TDBGrid);
  TForm1 = class(TForm)
    IBDatabase1: TIBDatabase;
    IBTransaction1: TIBTransaction;
    DataSource1: TDataSource;
    IBQuery1: TIBQuery;
    DBGrid1: TDBGrid;
    Edit1: TEdit;
    procedure FormShow(Sender: TObject);
    procedure DBGrid1TitleClick(Column: TColumn);
    procedure Edit1Enter(Sender: TObject);
    procedure Edit1Change(Sender: TObject);
  private
    FFieldName: string;
  public
  end;

var
  Form1: TForm1;

implementation  {$R *.dfm}

procedure TForm1.FormShow(Sender: TObject);
begin
  Edit1.Visible:= False;
  Edit1.CharCase:= ecUpperCase;
end;

procedure TForm1.DBGrid1TitleClick(Column: TColumn);
var
  R: TRect;
  CT: TColumnTitle;
begin
  FFieldName:= Column.Field.FieldName;
  CT:= TColumnTitle.Create(Column);
  try
    CT.Assign(Column.Title);
    R:= DBGrid1.CellRect(Column.Index+1,0);
    DBGrid1.Canvas.FillRect(R);
    with Edit1 do
    begin
      Left:= R.Left+1;
      Top:= R.Top+1;
      Width:= R.Right - R.Left +1;
      Height:=R.Bottom - R.Top +1;
      Visible:= True;
      SetFocus;
    end;
    Column.Title.Assign(CT);
  finally
    CT.Free;
  end;
end;

procedure TForm1.Edit1Enter(Sender: TObject);
begin
  TEdit(Sender).Text:= '';
end;

procedure TForm1.Edit1Change(Sender: TObject);
begin
  if Edit1.Text <> '' then
   with IBQuery1 do
   begin
     Close;
     SQL.Clear;
     SQL.Add('SELECT * FROM TU_TABLA');
     SQL.Add('WHERE UPPER('+FFieldName+') LIKE'+QuotedStr(Edit1.Text+'%'));
     Open;
   end;
end;
end.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 23-07-2011 a las 01:04:36.
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Copiar todo el resultado de un Filtro (DBGrid) en Tabla Lenny Varios 3 15-10-2010 01:03:46
Filtro DBEdit y DBGrid Lenny Varios 4 11-10-2010 09:16:15
DBGrid: Como redimensionar columnas si se redimensiona el dbGrid? quali OOP 6 08-02-2010 22:00:49
Duda con dbgrid como filtro de info myo Varios 1 23-03-2008 09:51:25
Filtro por selección en dbGrid. setry2 OOP 3 20-10-2004 14:23:07


La franja horaria es GMT +2. Ahora son las 00:48:53.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi