formdaki genel değişkenleri listelemek ve deger verme?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
skyking
Üye
Mesajlar: 136
Kayıt: 09 Kas 2005 12:52
Konum: Antalya

formdaki genel değişkenleri listelemek ve deger verme?

Mesaj gönderen skyking »

projedeki formda daki genel değişkenleri nasıl listeleriz?

diyelimki ben değişken tanımladım ona değer vermek istiyorum.

örnek

Kod: Tümünü seç

rezrnf //form1 

interface

uses
...
type
  Trezrnf; = class(TForm)
    ad: TADBText;
  ....... 
  private
    { Private declarations }
  public
  kno:double; //amaç buna ulasmak diger formdan
   { Public declarations }
  end;

var
  ....

procedure Trezrnf.dxButton12Click(Sender: TObject);
begin

muslistf.gelfr:=rezrnf;
muslistf.showmodal;
end;

gecelim diger forma

muslistf //form2 

interface

uses
...
type
  Tmuslistf = class(TForm)
    ad: TADBText;
    soy: TADBText;
  ....... 
  private
    { Private declarations }
  public
  gelfr:TForm;
   { Public declarations }
  end;

var
  ....

procedure Tmuslistf.DBGrid1DblClick(Sender: TObject);
begin
//gelfr= rezrnf oluyor ;
//burda form1 de tamlı değişkene ulasarak deger atamak istiyorum;
gelfr('kno'):=10; burda yazan yere ne yazıcam?
//su işlemi yapmak istiyorum rezrnf.kno:=10; 

end;
gibi anlatabildimi?
En son skyking tarafından 13 Oca 2006 12:44 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Daha açıklayıcı yazmalısın. Örneklerin zayıf kalmış.
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

genel değişkenleri ayrı bir unit içine toplayarak uses kısmına ekledğin her formun unitinden ulaşabilirsin.

kolay gelsin...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
serkan
Üye
Mesajlar: 666
Kayıt: 10 Tem 2003 12:08
Konum: bursa

Mesaj gönderen serkan »

selam benimde değişkenlerle aram iyi olmadığından ben değişkenlerimi edit'da veya sayı ise integeredit,tarihse dateedit v.s. de tutuyorum.sorunu yanlış anlamadıysam formun birinde bir değişkene değer atıyorsun sonra başka bir formda o değişkenin değeri lazım oluyor onu nasıl alırım veya ona nasıl değer veririm gibi bişey.global değişken denilen şeyler var ama ben hiç uğraşmadım..sende şöyle dene mesela değişkenin string olsun
bu değişkeni form1 de tutuyorsun form2 dende bu değişkenin değerini değiştireceksin diyelim.
FORM1 üzerinde degiskenedit1.text:='ABC' olsun form2 içindeyken değeri değiştirmek için form1.degiskenedit1.text:='XYZ' yapabilirsin..Senin dediğin gibi bilmem anlatabildinmi..bu arada değişken için kullandığın editları visible:=false yaparsın..
Kullanıcı avatarı
skyking
Üye
Mesajlar: 136
Kayıt: 09 Kas 2005 12:52
Konum: Antalya

Mesaj gönderen skyking »

hocamlarım saollasın ama onu bende yapabiliyorum

bir unit yaparsamda sorun çözulmus olur ama cok saglıksız

liste formunu 5-6 form kulanıyor ve her formda ya kayıt işlemi oluyor yada listeleme işlemi oluyor ben her form için kod yazmak istemiyorum..
global bir unite degeri atmak yanlıs işlemlere sebep oluyor...

nesne projenin boyunu buyultuyor...

findcomponent komutuyla da bulabiliyorum nesneleri ama

(FindComponent('Edit'+IntToStr(i+1))as Tedit).text:='asds';

ben gıcık oldum componentlere ulaşabiliyorum ama genel değişkene niye ulasamıyorum sorun bu işte

bilen biri varmı acaba?

google alt ust etim ama bulamadım..

sorumu soyle değiştiriyorum formda tanımlı genel değişkenleri listemek istiyorum listelersem zaten değerde atabilirim ?
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2384
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Mesaj gönderen freeman35 »

Kod: Tümünü seç

gelfr:Trezrnf;
.......
........
gelfr.kno:=10; 
gelfr yi TForm tanıtmışsın dolayısıyla . dan sonra TForm class ına ulaşırsın, senin ulaşman gereken Trezrnf yani senin TForm dan türettiğin class. Genelleştirmek içinde değişkenleri eklediğin bir class yapıp gereken formları bu classtan türetirsen ozaman değişken adlarıda aynı olacağından aynı kodla erişebilirsin.

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 !!!
Kullanıcı avatarı
skyking
Üye
Mesajlar: 136
Kayıt: 09 Kas 2005 12:52
Konum: Antalya

Mesaj gönderen skyking »

gelfr:=rezrnf;

gelfr.InheritsFrom(gelfr.ClassType);

glfr.kno:=10

olmuyor code penceresinde.

sizin class genelleştirme mantıgınız biraz acarmısnız?
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Yok değişkenleri tutmak için bir nesne oluşturacaksın.

İstediğin şey VMT üzerinden mümkün olabilir, ama bu çok alt seviye bir işlem.

Değişken isimlerini ne yapacağını da anlayamadım. Bileşen isimleri ile değişken isimlerini birbirine karıştırma. Delphi derleyicisi bu değişken isimlerini koda dahil etmeyeceğinden elde edemeyeceksin. Değişken isimleri delphi de kullanılmaz. Onlar birer bellek pointer'i. İster elma ister armut de bunlara.

Ne için kullanacağını yaz da yardımcı olalım.
Kullanıcı avatarı
skyking
Üye
Mesajlar: 136
Kayıt: 09 Kas 2005 12:52
Konum: Antalya

Mesaj gönderen skyking »

hocarım

bir proje yazıyorum artık bazı seyleri kolay yoldan yapmak istiyorum

form ekranını kalabalık bir hale sokmak istemiyorum..
(nesne koyum bogmak istemiyorum formu visible false olsa bile )
adamlar genel değişken koymuslar yani global degişken birde nesne koyup projenin derlenmiş boyutunu buyultmek istemiyorum...


genel değişkenlerin isimleri farklı zaten oyle bir olay olsaydı delphi dediğiniz gibi calışma zamanında o işlemi yaparken hata verirdi

amacım 3 tane ayrı bir form var burda musterilerin değişik bilgileri listeleniyor yada bilgi girişi yapılıyor bakın dikkatinizi cekiyorum
3 ayrı form ve 3 değişik işlem bu formlarda genel olan bilgiler var
musteri kayıt nosu :kno:double;
musteri adsoy:adsoy:string;

kno gore kayıt bilgileri geliyor yada kno gore bilgi girişi oluyor..

can alıcı nokta
bir tane musteri liste formu

formlardan birinden cagırılıyor musteri bulunuyor ve cagrılan formun genel değişkenlerine kno ve adsoy bilgisi atılmak isteniyor..

anlatabildimi.
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Form3.kno:= 213;
Form3.adsoy:= 'Hede hed';

Bunun neresi işe yaramıyor anlamış değilim? En kısa yolu budur.
Kullanıcı avatarı
skyking
Üye
Mesajlar: 136
Kayıt: 09 Kas 2005 12:52
Konum: Antalya

Mesaj gönderen skyking »

ben polemiyi bıraktım ..!

arkadaslar

senin (gelfr:=form3) dedigin bir değişken public tanımlı dikkatini cekerim

gelfr hangi formdan cagırlıyorsa onun adını alıyor


ben liste formunu form1 den cagırıyorsam
gelfr:=form1;

eger listeyi form2 den cagırıyorsam
gelfr:=form2;


cünki nerden cagırdıysam o formun kno değişkenine deger vermek istiyorum


kno form1 ve form2 public de tanımlı yani form1 ve form2 için genel bir değişken


gelfr.kno:=10 ;

bir deneme bakalım calısacakmı?
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

gelfr yi :

Kod: Tümünü seç

gelfr: class of TForm;
tanımlayıp...

Kod: Tümünü seç

gelfr.kno:= 3
dediğinde ulaşamıyor musun? Bir dene bakalım. ;)
Kullanıcı avatarı
skyking
Üye
Mesajlar: 136
Kayıt: 09 Kas 2005 12:52
Konum: Antalya

Mesaj gönderen skyking »

Kod: Tümünü seç

gelfr: class of TForm;
boyle birsey yok diyor

tanımlatmıyor
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

bkz. viewtopic.php?t=6997&highlight=tformclass

TFormClass da kullanabilirsin. Aynı declerationa sahip.
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

gelfr yi tanımladığın yerde uses Forms.. olmalı. :!:
Cevapla