Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.23;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.033 c
7-74502
ossa
2003-07-31 09:47
2003.10.23
Вопрос для знатоков, кто работал с RASAP?I


8-74325
wara
2003-06-21 13:24
2003.10.23
Понижение числа точек в JPG- файле


1-74163
Ev1972
2003-10-10 11:41
2003.10.23
Как изменить ширину полосы прокрутки у TListBox?


3-74061
Kinder
2003-10-02 15:44
2003.10.23
картинка в БД


14-74443
Tyrande
2003-10-02 19:03
2003.10.23
Колонки или звук. карта? Кто дурак?