Dışarıdan Değişken İsmini Değiştirmek

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
Opt2000
Üye
Mesajlar: 216
Kayıt: 09 Tem 2003 10:04

Field ID'leri ile olur

Mesaj gönderen Opt2000 »

Selam,
Sanırım asıl sorun senin field bilgilerine delphi değişkenleri ile erişmeye çalışman. Zaten başlıktan da anlaşılıyor aslında. Ama çözüm mantığın pek de doğru bir yaklaşım değil.

Burada iki yöntem uygulayabilirsin bence (Satırlarca if yazmayı zaten çözüm olarak görmüyorum).

1. Field ID'lerini kullanırsın. Yani daha önce bir arkadaşın yazdığı gibi Combo box gibi bir bileşen kullanırsın, ve Query1.Fields[Index].AsString dersin. Burada index, kullanıcının seçtiği Field'in indeksi olur. Tabii arabirimde biraz kasman gerekir. Yani ComboBox'ta ItemIndex=1 olur ama bu Field Listesinde 12 olur. Bu eşleşmeyi sağlaman gerekir.

2. TField için bir pointer kullanırsın ve buna göre yaptırırsın. Ama bu yöntem biraz daha dikkat gerektirir. Bilgisayarda Delphi yok o yüzden yanlış bir kod olabilir ama şu şekilde bir şey olmalı (Gene ComboBox var)

var
AField:TField;
case ComboBox.ItemIndex of
0: AField:=Query1Kod;
1: AField:=Query2Kod;
end;
AField.AsString... gibi devam edecek. Bu kodun şöyle bir avantajı olabilir. TField dizisi oluşturursun ve bir seferde Query6MalKodu.Text değerini üretebilirsin. Yani kullanıcının seçimine göre 4,3,2,1 çıktı diyelim
var
AFieldList:array [0..4]of TField;
begin
AFieldList[0]:=Query1Kod;
AFieldList[1]:=Query3Kod;
...

Query6MalKodu.Text :=('152.'+AFieldList[0].Text+'.'+copy (AFieldList[1].Text,2,3)...

Biraz karışık anlattım farkındayım ama umarım işine yarar.

Kolay gelsin,
Bahadır Alkaç
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Mesaj gönderen pro_imaj »

Merhaba @Opt2000 arkadaşım.

inan cevabını beni çok mutlu etti. benim için uzun uzadıya yazmışsın çok tşk ederim.

yazdığın olayın mantığını anladım aslında (normalde böyle bişey banada uçuk geldi ama ya olursa dedim herşeyi kullanıcının isteğine göre yaptırabilirim diye düşündüm)

Söylediğin mantık ile yazmaya çalışacam. eğer olursa çok büyük bir işi olucak.

Ya gerçekten
Bilmeyipte bakınca herşey zor Bilipte görünce herşey çok basit geliyor.

Tekrar teşekkür ederim.
Çözülünce yazarım inş.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Cevapla