Форум: "Основная";
Текущий архив: 2003.10.23;
Скачать: [xml.tar.bz2];
ВнизTDBGrid Найти похожие ветки
← →
Qwerr (2003-10-10 10:44) [0]Подскажите как организовать поиск по калонке в таблице объекта DBGrid ?
← →
Семен Сорокин (2003-10-10 10:46) [1]ищи в TDataSet"е связанным с твоим DBGrid
← →
Qwerr (2003-10-10 10:53) [2]А через DBEdit1 возможно?
Покажите пожалуйста примерчик!
← →
Семен Сорокин (2003-10-10 10:55) [3]Покажите пожалуйста примерчик!
...\Delphi7\Demos\Db
← →
Qwerr (2003-10-10 11:07) [4]И в какой там папке?
← →
Anatoly Podgoretsky (2003-10-10 11:41) [5]DBEdit1 можно, но чего там искать, всего одно значение
← →
Verg (2003-10-10 11:58) [6]Можно пофантазировать немного :))
Ну,например, можно взять сделать такую формочку (динамически создаваемую):
object LocateDG: TLocateDG
Left = 242
Top = 142
ActiveControl = KeyEdit
BorderIcons = []
BorderStyle = bsNone
ClientHeight = 23
ClientWidth = 143
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = "MS Sans Serif"
Font.Style = []
KeyPreview = True
OldCreateOrder = False
OnActivate = FormShow
OnKeyPress = FormKeyPress
OnShow = FormShow
PixelsPerInch = 96
TextHeight = 13
object KeyEdit: TEdit
Left = 0
Top = 0
Width = 121
Height = 21
TabOrder = 0
end
object Button1: TButton
Left = 120
Top = 0
Width = 21
Height = 21
Caption = "..."
Default = True
ModalResult = 1
TabOrder = 1
end
end
К ней модуль:
unit LGrid;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TLocateDG = class(TForm)
KeyEdit: TEdit;
Button1: TButton;
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
Pos : TPoint;
Par : TWinControl;
end;
var
LocateDG: TLocateDG;
procedure GridLocate(Sender: TObject; var Key: Char);
implementation
uses DB, DBGrids, ConfYesNo;
{$R *.DFM}
procedure TLocateDG.FormKeyPress(Sender: TObject; var Key: Char);
begin
if Key=#$1b then ModalResult:=mrCancel;
end;
procedure TLocateDG.FormShow(Sender: TObject);
begin
Top:=Pos.Y;
Left:=Pos.X;
KeyEdit.SelStart:=length(KeyEdit.Text)+1;
KeyEdit.SelLength:=0;
end;
procedure GridLocate(Sender: TObject; var Key: Char);
var P : TPoint;
begin
if (Sender is TDBGrid) and (Key in ["0".."9"]) then
if
((Sender as TDBGrid).Columns[0].Field.DataType in [ftInteger, ftString, ftDate, ftDateTime,ftAutoInc]) then
with TLocateDG.Create(Application) do
begin
ActiveControl:=KeyEdit;
KeyEdit.Text:=Key;
Pos:=Point((Sender as TDBGrid).Left,(Sender as TDBGrid).Top);
Pos:=(Sender as TDBGrid).Parent.ClientToScreen(Pos);
if ShowModal=mrOk then
with (Sender as TDBGrid).DataSource.DataSet do
begin
if (Sender as TDBGrid).Columns[0].Field.DataType in [ftInteger,ftAutoInc] then
begin
if not Locate((Sender as TDBGrid).Columns[0].FieldName, StrToIntDef(KeyEdit.Text, -1), []) then
ErrorBox("Не найдено");
end else
if not Locate((Sender as TDBGrid).Columns[0].FieldName, KeyEdit.Text, [loCaseInsensitive, loPartialKey]) then
ErrorBox("Не найдено");
end;
end;
end;
end.
У нужной гриде в OnKeyPress:
procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
GridLocate(Sender, Key);
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.10.23;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.015 c