Arkadaşlar Formda gördüğüm bir kodu aşağıdaki gibi derledim. Lakin
For Sayac := Edit1 to Edit3 do satırında
(incopatible types: 'Integer' and 'String' ) gibi bir hata veriyor.
ilgilenirseniz memnun olurum. Teşekkürler
Kod: Tümünü seç
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBTables, StdCtrls, Grids, DBGrids;
type
TForm3 = class(TForm)
DataSource1: TDataSource;
DBGrid1: TDBGrid;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Label2: TLabel;
Label1: TLabel;
Label3: TLabel;
Label4: TLabel;
Edit5: TEdit;
Label5: TLabel;
Edit6: TEdit;
Label8: TLabel;
Query1: TQuery;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label6: TLabel;
Edit7: TEdit;
Edit8: TEdit;
Edit9: TEdit;
Edit10: TEdit;
procedure Edit1Change(Sender: TObject);
procedure Edit2Change(Sender: TObject);
procedure SorguYap(Edit1, Edit2, Edit3: String);
procedure Edit3Change(Sender: TObject);// bu prpsedürü ekliyoruz
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
uses unit1;
{$R *.dfm}
procedure TForm3.Edit1Change(Sender: TObject);
begin
SorguYap(Edit1.Text, Edit2.Text, Edit3.Text);
end;
procedure TForm3.Edit2Change(Sender: TObject);
begin
SorguYap(Edit1.Text, Edit2.Text, Edit3.Text);
end;
Procedure TForm3.SorguYap(Edit1, Edit2, Edit3: String);
Var
Sayac : Integer;
Yazi : String;
WhereSatiri : Integer;
begin
// Dinamiktir Edit sayısı artsa da fonksiyon sabittir. Parametre girişi değişecektir.
Query1.Active := False;
Query1.SQL.Clear;
Query1.SQL.Add('Select * from giris');
For Sayac := Edit1 to Edit3 do ( ************HATA **********)
begin
Yazi := Trim( TEdit( FindComponent( Format('%s%d', [Edit1, Sayac]) ) ).Text );
If Yazi <> '' then
begin
If Pos('Where', Query1.SQL.Text) <= 0 then
begin // Sadece bir kere bu şarta düşecektir. Çünkü şimdi Where koyucaz.
Query1.SQL.Add('Where');
WhereSatiri := Query1.SQL.Count;
end;
If Query1.SQL.Count > WhereSatiri // OR Koyalım mı Koymayalım mı ?
then Query1.SQL.Add(' OR (LOWER(Oda) Like LOWER("%'+Yazi+'%" ))')
else Query1.SQL.Add(' (LOWER(AdiSoyadi) Like LOWER("%'+Yazi+'%" ))');
end;
end;
Query1.Active := True;
end;
procedure TForm3.Edit3Change(Sender: TObject);
begin
SorguYap(Edit1.Text, Edit2.Text, Edit3.Text);
end;
end.