DonanımHaber Mini sürüm 2 Ocak 2026 tarihi itibariyle kullanımdan kalkacaktır. Bunun yerine daha hızlı bir deneyim için DH Android veya DH iOS uygulamalarını kullanabilirsiniz.
Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
5
Cevap
2564
Tıklama
0
Öne Çıkarma
Delphi 7 ile Filtreleme örneği...
G
12 yıl (874 mesaj)
Yüzbaşı
Konu Sahibi

Videoyu izlemek için tıklayınız

ADODataset kullanarak yaptığım bir programdan çoklu filtreleme örneği. Örnekteki filtreleme kodu Delphi 2 veya 3 versiyonundaki bir demo programından alınma. Demo programın adı Stock Control veya ona benzeyen bir şey idi. Bu programı 2003 te henüz emekli olmadan BDE bileşenler ile yapmıştım. Şimdi ADO bileşenler ile bir iki ilave ile yeniden yaptım.

< Resime gitmek için tıklayın >




Üstteki videodaki filtrelemeye daha basit bir projedeki örnek ve kodu... Bu formda iki alanda filtreleme var ama gerekli kodu kopyalayarak dilediğiniz kadar alanda filtreleme yaptırabilirsiniz.
Burada Delphi 7 nin BDE bileşenlerini kullanmışım(2004)

unit Unit7;

interface

uses
Windows, Messages, Classes, SysUtils, Graphics, Controls, StdCtrls, Forms,
Dialogs, DBCtrls, DB, ComCtrls, Mask, DBTables, ExtCtrls, Grids, DBGrids,
ShellApi, Variants, HTTPApp, ActnList, ExtActns, WebDisp, OleCtnrs,
Buttons, ImgList;

type
TfmIntAra = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Label2: TLabel;
Label1: TLabel;
EditURLadresi: TDBEdit;
EditSiteadi: TDBEdit;
StatusBar1: TStatusBar;
Label3: TLabel;
Button1: TButton;
Edit1: TEdit;
DataSource: TDataSource;
GridQuery: TQuery;
TempQuery: TQuery;
DropAna: TComboBox;
DropAlt: TComboBox;
Label4: TLabel;
Label5: TLabel;
BitBtn1: TBitBtn;
DBNavigator1: TDBNavigator;
Panel3: TPanel;
DBGrid1: TDBGrid;
procedure Button1Click(Sender: TObject);
procedure DropClick(Sender: TObject);
procedure EditURLadresiClick(Sender: TObject);
procedure DBGrid1DblClick(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
procedure PopulateCombos;
procedure UpdateGridQuery;
{ private declarations }
public
procedure ShowBrowser;
{ public declarations }
end;

var
fmIntAra: TfmIntAra;

implementation

uses Unit1;

{$R *.DFM}

const
AllStr = 'Hepsi';
FldAna = 'Siteturu';
FldAlt = 'Alttur';
procedure TfmIntAra.PopulateCombos;

procedure PopulateAnaCombo;
begin
DropAna.Items.Clear;
DropAna.Items.Add(AllStr);
try
TempQuery.Close;
TempQuery.SQL.Clear;
TempQuery.SQL.Add('Select distinct Siteturu from DBIntAdr');
TempQuery.Open;
while not TempQuery.EOF do
begin
DropAna.Items.Add(TempQuery.Fields[0].AsString);
TempQuery.Next;
end;
DropAna.ItemIndex := 0;
except
on EDatabaseError do
MessageDlg('Error determining Siteturu categories', mtError, [mbOK], 0);
end;
end;

procedure PopulateAltCombo;
begin
DropAlt.Items.Clear;
DropAlt.Items.Add(AllStr);
try
TempQuery.Close;
TempQuery.SQL.Clear;
TempQuery.SQL.Add('Select distinct Alttur from DBIntAdr');
TempQuery.Open;
while not TempQuery.EOF do
begin
DropAlt.Items.Add(TempQuery.Fields[0].AsString);
TempQuery.Next;
end;
DropAlt.ItemIndex := 0;
except
on EDatabaseError do
MessageDlg('Error determining Altcat categories', mtError, [mbOK], 0);
end;
end;
begin
TempQuery.Close;
TempQuery.DatabaseName := 'DBIntrehber';
PopulateAnaCombo;
PopulateAltCombo;
end;

procedure TfmIntAra.UpdateGridQuery;
var
WhereUsed: Boolean;
function SQLPrefix:string;
begin
if WhereUsed then
SQLPrefix := 'and '
else
begin
WhereUsed := true;
SQLPrefix := 'where '
end;
end;
begin
Screen.Cursor := crHourGlass;
WhereUsed := false;
with GridQuery do
begin
Close;
SQL.Clear;
SQL.Add('select * from DBIntAdr');
if DropAna.ItemIndex > 0 then
SQL.Add(SQLPrefix+FldAna+' ="'+DropAna.Items[DropAna.ItemIndex]+'"');
TempQuery.Open;
if DropAlt.ItemIndex > 0 then
SQL.Add(SQLPrefix+FldAlt+' ="'+DropAlt.Items[DropAlt.ItemIndex]+'"');
SQL.Add('order by URLAdresi');
Open;
end;
Screen.Cursor := crDefault;
end;

procedure TfmIntAra.ShowBrowser;
begin
if not Visible then
begin
PopulateCombos;
UpdateGridQuery;
end;
Show;
end;

procedure TfmIntAra.DropClick(Sender: TObject);
begin
UpdateGridQuery;
StatusBar1.Panels[1].Text:=Format(' %d Kayıt bulundu...',
[GridQuery.RecordCount]);
end;

procedure TfmIntAra.Button1Click(Sender: TObject);
begin
if not GridQuery.Locate('Siteadi',Edit1.Text,[loPartialKey,loCaseInsensitive])
then
Application.MessageBox('Aradığınız Siteye Ait Kayıt Bulunamadı...',
'Internet Sitesi Kayıt Arama',mb_OK);
end;

procedure TfmIntAra.EditURLadresiClick(Sender: TObject);
Var St:Array[0..255] of char;
begin
ShellExecute(0,'open',StrPCopy(St,EditURLadresi.Text),nil
,nil,SW_NORMAL);
end;

procedure TfmIntAra.DBGrid1DblClick(Sender: TObject);
Var St:Array[0..255] of char;
begin
ShellExecute(0,'open',StrPCopy(St,EditURLadresi.Text),nil
,nil,SW_NORMAL);
end;

procedure TfmIntAra.BitBtn1Click(Sender: TObject);
begin
Form1.btPrivate.Visible:=False;
edit1.Text:='';
close;
end;

end.

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil





< Bu mesaj bu kişi tarafından değiştirildi Guest-9A5184EA8 -- 9 Ocak 2014; 15:57:11 >