Чтение онлайн

ЖАНРЫ

Советы по Delphi. Версия 1.4.3 от 1.1.2001

Озеров Валентин

Шрифт:

 // function Refresh: Boolean; True = orphans found

 {* Свойство Count возвращает количество выбранных в настоящий момент элементов в DBGrid *}

 // property Count: Integer read GetCount;

 {* Свойство CurrentRowSelected содержит логическую величину, зависящую от того, выбрана текущая строка или нет. *}

 // property CurrentRowSelected: Boolean

 // read GetCurrentRowSelected

 // write SetCurrentRowSelected;

 {*
Свойство Items – TStringList TBookmarkStr *}

 // property Items[Index: Integer]: TBookmarkStr

 // read GetItem; default;

// end;

unit Unit1;

interface

uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids, DBGrids, DB, DBTables;

type TForm1 = class(TForm)

 Table1: TTable;

 DBGrid1: TDBGrid;

 Count: TButton;

 Selected: TButton;

 Clear: TButton;

 Delete: TButton;

 Select: TButton;

 GetBookMark: TButton;

 Find: TButton;

 FreeBookmark: TButton;

 DataSource1: TDataSource;

 procedure CountClick(Sender: TObject);

 procedure SelectedClick(Sender: TObject);

 procedure ClearClick(Sender: TObject);

 procedure DeleteClick(Sender: TObject);

 procedure SelectClick(Sender: TObject);

 procedure GetBookMarkClick(Sender: TObject);

 procedure FindClick(Sender: TObject);

 procedure FreeBookmarkClick(Sender: TObject);

private

 { Private declarations }

public

 { Public declarations }

end;

var

 Form1: TForm1;

 Bookmark1: TBookmark;

 z: Integer;

implementation

{$R *.DFM}

//Пример использования свойства Count

procedure TForm1.CountClick(Sender: TObject);

begin

 if DBgrid1.SelectedRows.Count > 0 then begin

showmessage(inttostr(DBgrid1.SelectedRows.Count));

 end;

end;

//Пример
использования свойства CurrentRowSelected

procedure TForm1.SelectedClick(Sender: TObject);

begin

 if DBgrid1.SelectedRows.CurrentRowSelected then showmessage('Выбрана');

end;

//Пример использования метода Clear

procedure TForm1.ClearClick(Sender: TObject);

begin

 dbgrid1.SelectedRows.Clear;

end;

//Пример использования метода Delete

procedure TForm1.DeleteClick(Sender: TObject);

begin

 DBgrid1.SelectedRows.Delete;

end;

{*Данные пример проходит в цикле все выбранныезаписи табличной сетки и отображает второеполе набора данных.

Метод DisableControls используется в случае,когда необходимо запретить обновление DBGridпри изменении набора данных. Последняя позициянабора данных сохраняется как TBookmark.

Метод IndexOf вызывается при необходимостипроверить существование закладки.Решение использовать метод IndexOf, а неRefresh, должно приниматься исходя изспецифики приложения.*}

procedure TForm1.SelectClick(Sender: TObject);

var

 x: word;

 TempBookmark: TBookMark;

begin

 DBGrid1.Datasource.Dataset.DisableControls;

 with DBgrid1.SelectedRows do if Count > 0 then begin

TempBookmark:= DBGrid1.Datasource.Dataset.GetBookmark;

for x:= 0 to Count - 1 do begin

if IndexOf(Items[x]) > -1 then begin

DBGrid1.Datasource.Dataset.Bookmark:= Items[x];

showmessage(DBGrid1.Datasource.Dataset.Fields[1].AsString);

end;

end;

 end;

 DBGrid1.Datasource.Dataset.GotoBookmark(TempBookmark);

 DBGrid1.Datasource.Dataset.FreeBookmark(TempBookmark);

Поделиться с друзьями: