Merhaba
Bir query yada Table nesnesinin üzerini çift tıkladığımızda o nesnenin Editör Fields kısmı açılır ve sağ tıklayarak Add all fields komutuyla bağlı olduğu table'ın alan adları listeye eklenir.
*Ben bu işlemi Run-Time da kod yazarak nasıl yapabilirim?
[img][img]http://img254.imageshack.us/img254/8860 ... e10ri3.jpg[/img][/img]
Query Editör fields'e Run-Time da alan adlarını eklemek?
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 360
- Kayıt: 10 Nis 2006 09:07
- sadettinpolat
- Moderator
- Mesajlar: 2131
- Kayıt: 07 Ara 2003 02:51
- Konum: Ankara
- İletişim:
run-time da bu islemi yapabileceginiz bi kisayolun oldugunu sanmiyorum. cunku bu islem sonucunda kaynak koda yeni yeni siniflar eklenir.
run-time da tbu tip bir islem yapmak icin fieldin tipini belirleyip uygun bir sinif secerek ilgili atamalari yapmaniz gerekir.
formun dfm dosyasinda ve pas dosyasinda bunlari gorebilirsiniz.
dfm dosyasinda
pas dosyasinda
run-time da tbu tip bir islem yapmak icin fieldin tipini belirleyip uygun bir sinif secerek ilgili atamalari yapmaniz gerekir.
formun dfm dosyasinda ve pas dosyasinda bunlari gorebilirsiniz.
dfm dosyasinda
Kod: Tümünü seç
object Table1Country: TStringField
FieldName = 'Country'
end
Kod: Tümünü seç
Table1Country: TStringField;
Re: Query Editör fields'e Run-Time da alan adlarını eklemek
Eklenebiliyor. Aşağıdaki kodu kullan.
Kullanımı :
AddAllFields(DatasetComponentAdın);
Bu Kadar. Çok aranan bir kod aslında. bende yabancı bir sitede denk geldim.
Kullanımı :
AddAllFields(DatasetComponentAdın);
Bu Kadar. Çok aranan bir kod aslında. bende yabancı bir sitede denk geldim.
Kod: Tümünü seç
procedure AddAllFields(DataSet: TDataset);
var
FieldsList: TStringList;
FieldName: WideString;
Field: TField;
WasActive: boolean;
FieldDef: TFieldDef;
i: Integer;
FieldNameBas : string;
begin
WasActive := DataSet.Active;
FieldNameBas := DataSet.Name;
if WasActive then
DataSet.Active := False;
try
FieldsList := TStringList.Create;
try
DataSet.FieldDefs.Update;
for i := 0 to DataSet.FieldDefList.Count - 1 do
with DataSet.FieldDefList[i] do
if (FieldClass <> nil) and not(faHiddenCol in Attributes) then
begin
FieldName := DataSet.FieldDefList.Strings[i];
Field := DataSet.FindField(FieldName);
if (Field = nil) or (Field.Owner <> DataSet.Owner) then
FieldsList.Add(FieldName);
end;
for i := 0 to FieldsList.Count - 1 do
begin
FieldName := FieldsList[i];
FieldDef := DataSet.FieldDefList.FieldByName(FieldName);
Field := FieldDef.CreateField(DataSet.Owner, nil, FieldName, False);
try
Field.name := FieldNameBas + FieldName + IntToStr(random(MaxInt)); // make the name unique
except
Field.Free;
raise ;
end;
end;
finally
FieldsList.Free;
end;
finally
if WasActive then
DataSet.Active := true;
end;
end;
Onun tek dostu Allah
Re: Query Editör fields'e Run-Time da alan adlarını eklemek
delphiibo yazdı:Eklenebiliyor. Aşağıdaki kodu kullan.
Kullanımı :
AddAllFields(DatasetComponentAdın);
Bu Kadar. Çok aranan bir kod aslında. bende yabancı bir sitede denk geldim.
Kod: Tümünü seç
procedure AddAllFields(DataSet: TDataset); var FieldsList: TStringList; FieldName: WideString; Field: TField; WasActive: boolean; FieldDef: TFieldDef; i: Integer; FieldNameBas : string; begin WasActive := DataSet.Active; FieldNameBas := DataSet.Name; if WasActive then DataSet.Active := False; try FieldsList := TStringList.Create; try DataSet.FieldDefs.Update; for i := 0 to DataSet.FieldDefList.Count - 1 do with DataSet.FieldDefList[i] do if (FieldClass <> nil) and not(faHiddenCol in Attributes) then begin FieldName := DataSet.FieldDefList.Strings[i]; Field := DataSet.FindField(FieldName); if (Field = nil) or (Field.Owner <> DataSet.Owner) then FieldsList.Add(FieldName); end; for i := 0 to FieldsList.Count - 1 do begin FieldName := FieldsList[i]; FieldDef := DataSet.FieldDefList.FieldByName(FieldName); Field := FieldDef.CreateField(DataSet.Owner, nil, FieldName, False); try Field.name := FieldNameBas + FieldName + IntToStr(random(MaxInt)); // make the name unique except Field.Free; raise ; end; end; finally FieldsList.Free; end; finally if WasActive then DataSet.Active := true; end; end;
hay allah razı olsun senden çok güzel bi kod gerçekten denedim sorunsuz çalışıyor. teşekkürler.
-
- Üye
- Mesajlar: 8
- Kayıt: 24 Tem 2010 06:29
Re: Query Editör fields'e Run-Time da alan adlarını eklemek
Hay Allah razı olsun yaa...
-
- Üye
- Mesajlar: 10
- Kayıt: 25 Nis 2014 09:08
Re: Query Editör fields'e Run-Time da alan adlarını eklemek
bu kodu forma ekledim fakat ben alan adlarını nasıl kullanabilirim adotable1Miktar.value şeklindeki gibi nasıl kullanıcam yardım lütfen