'kriter'

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
zaxacm
Üye
Mesajlar: 129
Kayıt: 05 Ara 2005 05:48

'kriter'

Mesaj gönderen zaxacm »

Aşağıdaki gibi birşey yapmak istiyorum ama kodların doğru yazılışı nasıl olmalı acaba

procedure Tfrmogrenciler.Edit1Change(Sender: TObject);
begin
Case RadioGroup1.ItemIndex of
0 : kriter:='ONO'
1 : kriter:='OAD'
2 : kriter:='OSOYAD'

IbQuery1.Close;
IbQuery1.Sql.Clear;
IbQuery1.Sql.Add('Select * From ogrenci Where 'kriter' like' );
IbQuery1.Sql.Add('''%'+Trim(Edit1.Text)+'%''');
IbQuery1.Open;
end;
Kullanıcı avatarı
ALUCARD
Üye
Mesajlar: 1270
Kayıt: 27 Eyl 2003 10:12
Konum: Samsun
İletişim:

Mesaj gönderen ALUCARD »

hocam anladığım kadarı ile sen arama yapmak istiyosun

sana bi component veriyorum

database de istediğin alanı seç ve arama yap

Kod: Tümünü seç

unit SearchEdit; 

interface 

uses 
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, 
  StdCtrls, Db, DbCtrls; 

type 
  TCustomSearchEdit = class(TCustomEdit) 
  private 
    { Private declarations } 
    FDataLink: TFieldDataLink; 
    FSearchOptions: TLocateOptions; 
    procedure DataChange(Sender : Tobject); 
    function GetDataSource : TDataSource; 
    function GetDataField : string; 
    procedure SetDataSource(Value : TDataSource); 
    procedure SetDataField(const Value : string); 
    procedure SetSearchOptions(const Value :TLocateOptions); 
    procedure CMChanged(var Message: TMessage); message CM_CHANGED; 
  protected 
    { Protected declarations } 
  public 
    { Public declarations } 
    constructor Create(AOwner: TComponent); override; 
    destructor Destroy; override; 
    property SearchOptions: TLocateOptions read FSearchOptions 
             write SetSearchOptions default [loCaseInsensitive, loPartialKey]; 
  published 
    { Published declarations } 
    property DataSource: TDataSource read GetDataSource write SetDataSource; 
    property DataField: string read GetDataField write SetDataField; 
    property TabStop default True; 
  end; 

  TSearchEdit = class(TCustomSearchEdit) 
  published 
    property SearchOptions default [loCaseInsensitive, loPartialKey]; 
    property AutoSelect; 
    property AutoSize; 
    property BorderStyle; 
    property CharCase; 
    property Color; 
    property Ctl3D; 
    property DragCursor; 
    property DragMode; 
    property Enabled; 
    property Font; 
    property HideSelection; 
    property ImeMode; 
    property ImeName; 
    property MaxLength; 
    property OEMConvert; 
    property ParentColor; 
    property ParentCtl3D; 
    property ParentFont; 
    property ParentShowHint; 
    property PasswordChar; 
    property PopupMenu; 
    property ReadOnly; 
    property ShowHint; 
    property TabOrder; 
    property TabStop; 
    property Text; 
    property Visible; 
    property OnChange; 
    property OnClick; 
    property OnDblClick; 
    property OnDragDrop; 
    property OnDragOver; 
    property OnEndDrag; 
    property OnEnter; 
    property OnExit; 
    property OnKeyDown; 
    property OnKeyPress; 
    property OnKeyUp; 
    property OnMouseDown; 
    property OnMouseMove; 
    property OnMouseUp; 
    property OnStartDrag; 
  end; 

procedure Register; 

implementation 

constructor TCustomSearchEdit.Create; 
begin 
  inherited Create(AOwner); 
  FDataLink := TFieldDataLink.Create; 
  FDataLink.Control := Self; 
  FDataLink.OnDataChange := DataChange; 
  FSearchOptions := [loCaseInsensitive, loPartialKey]; 
end; 

destructor TCustomSearchEdit.Destroy; 
begin 
  FDataLink.Free; 
  FDataLink := nil; 
  inherited Destroy; 
end; 

procedure TCustomSearchEdit.DataChange(Sender: TObject); 
begin 
  if FDataLink.Field <> nil then 
  begin 
    if Screen.ActiveControl <> Self then 
    begin 
      if FDataLink.CanModify then 
         Text := FDataLink.Field.Text 
      else 
      begin 
        Text := FDataLink.Field.DisplayText; 
      end; 
      SelectAll; 
    end; 
  end else 
  begin 
    if csDesigning in ComponentState then 
      Text := Name else 
      Text := ''; 
  end; 
end; 

procedure TCustomSearchEdit.CMChanged; 
begin 
  if not ((csDesigning in ComponentState) and 
         (csLoading in ComponentState)) then 
  begin 
    if Screen.ActiveControl = Self then 
       FDataLink.DataSet.Locate(FDataLink.FieldName, Text, 
       FSearchOptions); 
  end; 
end; 

function TCustomSearchEdit.GetDataSource: TDataSource; 
begin 
  Result := FDataLink.DataSource; 
end; 

procedure TCustomSearchEdit.SetDataSource(Value: TDataSource); 
begin 
  FDataLink.DataSource := Value; 
  if Value <> nil then Value.FreeNotification(Self); 
end; 

function TCustomSearchEdit.GetDataField: string; 
begin 
  Result := FDataLink.FieldName; 
end; 

procedure TCustomSearchEdit.SetDataField(const Value: string); 
begin 
  FDataLink.FieldName := Value; 
end; 

procedure TCustomSearchEdit.SetSearchOptions(const Value :TLocateOptions); 
begin 
  FSearchOptions := Value; 
end; 

procedure Register; 
begin 
  RegisterComponents('ERKAN', [TSearchEdit]); 
end; 

end. 
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz

Erkan ÇAĞLAR
Kullanıcı avatarı
Serim
Üye
Mesajlar: 194
Kayıt: 08 Ara 2004 03:32
Konum: Konya

Mesaj gönderen Serim »

merhaba
ben arama yaptırıken 2 tane radiogroup kullanıyordum sen bir tane kullanacaksan radiogroup2 olan kısımları kaldırır , aşağıdaki kodları kendine göre düzenlersin :wink: Kolay gelsin.

Kod: Tümünü seç

procedure Taraform.cxTextEdit1PropertiesChange(Sender: TObject);
var
   deger : string;
begin
     Deger:='';
     case cxradiogroup1.itemindex of
          0 : if cxradiogroup2.itemindex = 0 then
                 deger := 'where ADI like '+Quotedstr(cxtextedit1.Text+'%')
              else deger := 'where ADI like '+Quotedstr('%'+cxtextedit1.Text+'%');
          1 : if cxradiogroup2.ItemIndex = 0 then
                 deger := 'where SOYADI like '+QuotedStr(cxtextedit1.Text+'%')
              else deger := 'where SOYADI like '+QuotedStr('%'+cxtextedit1.Text+'%');
     End;
     if deger <> '' then
     Begin
          dm.sorgu.Close;
          dm.sorgu.SQL.Clear;
          Dm.sorgu.SQL.Text:='select SENET_NO,ADI,SOYADI,TEL,GSM,VERGI_NO,ADRES,ACIKLAMA from SENET '+deger;
          Dm.sorgu.Open;
     End else
     Begin
          dm.sorgu.Close;
          dm.sorgu.SQL.Clear;
          Dm.sorgu.SQL.Text:='select SENET_NO,ADI,SOYADI,TEL,GSM,VERGI_NO,ADRES,ACIKLAMA from SENET ';
          Dm.sorgu.Open;
     End;
end;
Bilginin temelini sağlam at depremde zarar görmesin
Kullanıcı avatarı
spiderman
Üye
Mesajlar: 70
Kayıt: 02 Ara 2005 03:17

Mesaj gönderen spiderman »

Dogru Kod asagidaki gibi olmali

Kod: Tümünü seç

rocedure Tfrmogrenciler.Edit1Change(Sender: TObject); 
begin 
Case RadioGroup1.ItemIndex of 
0 : kriter:='ONO' 
1 : kriter:='OAD' 
2 : kriter:='OSOYAD' 

IbQuery1.Close; 
IbQuery1.Sql.Clear; 
IbQuery1.Sql.Add('Select * From ogrenci Where '+kriter+' like '+QuotedStr('%'+Trim(Edit1.Text)+'%'); 
IbQuery1.Open; 
end;
zaxacm
Üye
Mesajlar: 129
Kayıt: 05 Ara 2005 05:48

Mesaj gönderen zaxacm »

Aşağıdaki şekilde oluyor ama büyük küçük harf duyarlılığı oluyor.büyük küçük harf duyarlılığı olmaması için ne yapmam lazım.

procedure Tfrmogrenciler.Edit1Change(Sender: TObject);
var kriter :string;
begin
Case RadioGroup1.ItemIndex of
0 : kriter:='ONO';
1 : kriter:='OAD' ;
2 : kriter:='OSOYAD' ;
end;
IbQuery1.Close;
IbQuery1.Sql.Clear;
IbQuery1.Sql.Add('Select * From ogrenci Where '+kriter+' like '+QuotedStr('%'+Trim(Edit1.Text)+'%'));
IbQuery1.Open;
end;
Cevapla