Delphide DBGrid Nesneside Çok Seçim Yapmak
Merhaba arkadaşlar bu makalemizde DBGrid nesnesinde çoklu seçim nasıl yapılır onu göreceğiz.
Formumuza Palette kısmından 1 adet DBGrid DBEdit, 1 adet Button ekleyelim. Ayrıca formumuza 1 er adet DataSource, FDConnection ve FDQuery ekleyelim.
Bu örneğimizde MySql veritabanına bağlanacağız. İlk önce MySql veritabanına bağlantı yapmamız gerekiyor. FDConnection a sağ tıklıyoruz. Açılan pencerede Connection Editor e tıklıyoruz. FD Connection Editor de Driver ID kısmından My SQL i seçiyoruz. Sonra Mysql database i ve bağlantı şifresini girip, veritabanına bağlantıyı sağlıyoruz. FDConnection nesnesinin Activated özelliğini aktif yapıyoruz. Şimdi FDQuery nesnesi seçiliyken Object Inspector Properties kısmından Connection kısmında FDConnection u seçiyoruz. FDQuery nesnesinin SQL kısmındaki üç noktaya tıklayıp, açılan pencereye Sql komutumuzu yazıyoruz. Ben bu örnek için
“SELECT * FROM book.worldclassics” sql parametresini yazdım. Son olarak nesnemizin Active özelliğini True yapalım.
Datasource nesnesini seçelim. Dataset özelliğinde FDQuery nesnesini seçelim. Son olarak DBGrid nesnesinin DataSource kısmında Datasource nesnemizi seçelim.

Şekil 1

Şekil 2

Şekil 3
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, Vcl.StdCtrls, Vcl.Grids,
Vcl.DBGrids, FireDAC.Stan.Intf, FireDAC.Stan.Option, FireDAC.Stan.Error,
FireDAC.UI.Intf, FireDAC.Phys.Intf, FireDAC.Stan.Def, FireDAC.Stan.Pool,
FireDAC.Stan.Async, FireDAC.Phys, FireDAC.Phys.MySQL, FireDAC.Phys.MySQLDef,
FireDAC.VCLUI.Wait, FireDAC.Stan.Param, FireDAC.DatS, FireDAC.DApt.Intf,
FireDAC.DApt, FireDAC.Comp.DataSet, FireDAC.Comp.Client;
type
TForm1 = class(TForm)
DBGrid1: TDBGrid;
Button1: TButton;
MysqlconConnection: TFDConnection;
WorldclassicsTable: TFDQuery;
DataSource1: TDataSource;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
X: Word;
TempBookmark: TBookMark;
begin
with DBGrid1.DataSource.DataSet do
begin
DisableControls;
with DBGrid1.SelectedRows do
if Count<>0 then
begin
TempBookmark:=GetBookmark;
for X:=0 to Count-1 do
begin
if IndexOf(Items[X])>-1 then
begin
Bookmark:=Items[X];
ShowMessage(Fields[1].AsString + '-' + Fields[2].AsString);
end;
end;
end;
GotoBookmark(TempBookmark);
FreeBookmark(TempBookmark);
EnableControls;
end;
end;
end.
Bir makalenin daha sonuna geldik. Bir sonraki makalede görüşmek üzere. Bahadır ŞAHİN