Constant

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
adnansirca
Üye
Mesajlar: 135
Kayıt: 14 Kas 2005 12:24

Constant

Mesaj gönderen adnansirca »

Kod: Tümünü seç

Const
 sqlText  : WideString = FrmGlobal.DSetAna.SelectSQL.Text+'  WHERE 1=1  ';

implementation
 uses Untxx;
{$R *.dfm}
.............
Yukarıdaki kodu derlerken "constant expression expected" hatası alıyorum.
Bu hatayı nasıl giderebilirim.
Teşekkürler.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: Constant

Mesaj gönderen aslangeri »

s.a.
const tanımında referans kullanamazsınız direk bilgiyi yazmalısınız.
onun yerine bir metod yada property tanımlamayı deneyin
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
adnansirca
Üye
Mesajlar: 135
Kayıt: 14 Kas 2005 12:24

Re: Constant

Mesaj gönderen adnansirca »

property olarak tanımladığımda bir defaya mahsus kullanabiliyorum. Sonraki kullanımlarda değer null dönüyor.
Tanımlamanın amacını söyleyeyim.
Arama-Filtreleme amacıyla sabit bir sql text tanımlayıp bu değeri tüm formlarda kullanmak için böyle bir tanımlama yapmayı düşündüm.
Datasetin sql text kısmından doğrudan almamın nedeni ise herhangi bir değişiklik halinde tekrar tekrar tüm sabit tanımları da değiştirmek zorunda kalmamak.

Kod: Tümünü seç

 public
  sqlText : WideString;
  property FsqlText : WideString Read sqlText Write sqlText ;

    { Public declarations }
  end;
Kullanımı:

Kod: Tümünü seç

procedure TTipAra.TBtnBulClick(Sender: TObject);
var
i:Integer;
begin
 FsqlText := FrmGlobal.DSetAna.SelectSQL.Text;
Örnek olarak yukarıdaki property tanımını bir defaya mahsus kullanabiliyorum.
ancak sonraki tetiklemelerde değer null dönüyor. Bu da Datasetin sql inin boş olmasından kaynaklanıyor olabilir.
Merak ettiğim konu, tanımlanan özelliğin değerinin sabit kalmasını nasıl sağlayabiliriz.
Bunlarla uğraşmak yerine record tanımlamak daha mı iyidir sizce.
Teşekkürler.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: Constant

Mesaj gönderen aslangeri »

s.a.
eğer null dönüyorsa muhtemelen bağlı olduğu bileşenden kaynaklanıyordur.
ne yapmak istediğini tam olarak bilemiyorum ama sanırım datamodulun altına bir değişken tanımlayarak halletsen senin için daha iyi olacak.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2356
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Re: Constant

Mesaj gönderen freeman35 »

Kod: Tümünü seç

Const
sqlText  : WideString = FrmGlobal.DSetAna.SelectSQL.Text+'  WHERE 1=1  ';
Bukadar basit bir şey için değişken tanımlaman mantıksız, kulanacağın yere direk bu kodu yazman daha kolay,kesin mantıklı çözüm,eğer yazdığın basit ama sen daha karmaşık birşeyden bahsediyorsan

Kod: Tümünü seç

const SQL_ := 'INSERT INTO %s (ID, %s) VALUES (%d, %s);';
...
  MMO_1.Lines.Add(Format(SQL_,['Table_Adı', 'Field_Adı', 1, QuotedStr('String_değer')]));
Bu dağa mantıklı olur. Anahtar kelime "Format" Helpten parametreleri ve diğer detay bilgileri bulabilirsin
Kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Cevapla