Run time da degisken olusturma
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Run time da degisken olusturma
Run time da nesne olusturabiliyoruz . Peki degisken nasil olusturabiliriz?
Re: Run time da degisken olusturma
s.a.
değişken oluşturulmazki.
Değişken tanımlanır. o yüzden bırak runtime ı design time da bile değişken oluşturamazsın.
kolay gelsin.
değişken oluşturulmazki.
Değişken tanımlanır. o yüzden bırak runtime ı design time da bile değişken oluşturamazsın.

kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Re: Run time da degisken olusturma
Bu sorunuza diğer sitede yanıt aramamışmıydınızdrf1 yazdı:Run time da nesne olusturabiliyoruz . Peki degisken nasil olusturabiliriz?

Re: Run time da degisken olusturma
Evet diğer sitede de aradım aramasına ama , değişik fikirler bulabilirim diye burada da yazdım.
Diğer arkadaş desing time da bile oluşturamazsın demiş , sanırım şaka yapmış .neyse , aslında değişken mantığını anlarsam olayı çözücem gibi geliyor ama .Yani değişken aslında hafızada bir blok .Ben onu getmem ile tanımlasam kendi tip değişkenimide elde ederim diye düşünüyorum.yani temelde string yada integer farklılığı yok , sadece hafızada ayrılan miktar farklılığı var . Sizce nasıldır?
Diğer arkadaş desing time da bile oluşturamazsın demiş , sanırım şaka yapmış .neyse , aslında değişken mantığını anlarsam olayı çözücem gibi geliyor ama .Yani değişken aslında hafızada bir blok .Ben onu getmem ile tanımlasam kendi tip değişkenimide elde ederim diye düşünüyorum.yani temelde string yada integer farklılığı yok , sadece hafızada ayrılan miktar farklılığı var . Sizce nasıldır?
Re: Run time da degisken olusturma
s.a.
açıkçası pek şaka yapmak gibi bir niyetim yoktu.
Tekrar aynı şeyi söylüyorum "Değişken oluşturulmaz", "Değişken tanımlanır", "Nesneler oluşturulur".
Eğer benim bilmediğim veya anlayamadığım başka birşeylerden bahsediyorsanız öğrenmeyi de isterim.
Diğer siteyide merak ettim onun linkinide verirseniz ordaki mesajlardan belki ne istediğinizi anlayabilirim.
kolay gelsin. iyi günler.
açıkçası pek şaka yapmak gibi bir niyetim yoktu.
Tekrar aynı şeyi söylüyorum "Değişken oluşturulmaz", "Değişken tanımlanır", "Nesneler oluşturulur".
Eğer benim bilmediğim veya anlayamadığım başka birşeylerden bahsediyorsanız öğrenmeyi de isterim.
Diğer siteyide merak ettim onun linkinide verirseniz ordaki mesajlardan belki ne istediğinizi anlayabilirim.
kolay gelsin. iyi günler.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Re: Run time da degisken olusturma
tanımlamak ve oluşturmak benim sorum için pek farklı şeyler değil . siz nasıl isterseniz öyle olsun . Sorunum yeterki hallolsun .
Runtimede değişken tanımlamak istiyorum diyeyim ozaman. iki tane edit var ,birincisine değişken adı ikincisine tipi ni yazıyorum
hatta bir üçüncüsünüde sen ekle , onada değerini yazalım . Verilen bu ada ve tipe göre değişkeni tanımlayıp üçüncü editteki değeride ona atasın . sorum bu .nasıl yaparız?
Runtimede değişken tanımlamak istiyorum diyeyim ozaman. iki tane edit var ,birincisine değişken adı ikincisine tipi ni yazıyorum
hatta bir üçüncüsünüde sen ekle , onada değerini yazalım . Verilen bu ada ve tipe göre değişkeni tanımlayıp üçüncü editteki değeride ona atasın . sorum bu .nasıl yaparız?
Re: Run time da degisken olusturma
delphide ve hemen hemen bütün programlama dillerinde verilerin tipleri vardır. kodlama sırasında ihtiyaç duyulan veri tipinden değişken tanımlanır ve bu değişkene değer atamaları yapılarak kullanılır. değişken "var" bloğunda tanımlanmadan kullanılamaz..
bildiğim kadarıyla bahsettiğiniz şekilde bir kullanım söz konusu değil..
ancak merak ettim, bunu yapmaktaki amacınız nedir? bence asıl ihtiyacınızı söylerseniz belki alternatif çözümler bulunabilir...
bildiğim kadarıyla bahsettiğiniz şekilde bir kullanım söz konusu değil..
ancak merak ettim, bunu yapmaktaki amacınız nedir? bence asıl ihtiyacınızı söylerseniz belki alternatif çözümler bulunabilir...
bazen yükselmek için önce dibi görmek gerekir...
forumda soru sormadan önce bakılmalı bence
daha fazlası için...
yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

forumda soru sormadan önce bakılmalı bence
daha fazlası için...
yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

Re: Run time da degisken olusturma
kullanıcı kendi kodlarını yazacak -kendine özgü komutlar olacak - .bir text dosya içinden okunan bu kodlar derlenecek . Nesnelerde problem yok .fakat kullanıcı değişken tanımlamak istediğinde nasıl olacak .
mesela:
CreateArea(0,0,100,100):A1
inputBox on A1:ib1
int Ad=ib1.text
gibi
int A kısmında A yı tanımlamam gerek .
mesela:
CreateArea(0,0,100,100):A1
inputBox on A1:ib1
int Ad=ib1.text
gibi
int A kısmında A yı tanımlamam gerek .
-
- Üye
- Mesajlar: 32
- Kayıt: 02 Eki 2008 02:55
Re: Run time da degisken olusturma
Bunun okadar kolay birşey olduğunu sanmıyorum, ayrıca Nesneleri nasıl tanımladın ve oluşturuyorsun merak ettim.Nesnelerinde çünkü değişkenleri var.
Bence en basiti
Type
Degisken=Record
ad:string;//Değişkenin adı
Konum:integer;//Değişkenin adresi
Boyut:integer;//Değişkenin boyutu
end;
Şeklinde bir tiple değişkenlerinin verisini hafızada tutmak olur. Ve dinamik bir dizi ilede bu değişkenlere erişimi kolaylaştırabilirsin.
Degiskenlere atama yapıldığında sadece onlar için hafıza ayır ve konuma kaydettir yerlerini.
Delphide nesnelerin metodları için virtual table oluşturuluyor.
Nesnelerin Alanları için bildiğim kadarıyla yukardaki degisken gibi bir bilgi kaydediliyor.
Bence nasıl hayal ediyorsan öyle yap . Golbal local değişkenler falan var, ıvırı zıvırı derin konu ...
Birde string tipini tanımlaman için 2 yolun var ya delphideki gibi yöneteceksin yada pchar daki gibi . delphide string tipi şöyle tanımlanır(hatırladığım kadarıyla) 8 bit karakter sayısı için ayrılır 8 bit Referans sayısı(yani bu string den kaç kopya var ,kaç değişkeneatandığı) ,16 bit de konumu için(hafızadaki).
Pchar gibi yöneticeksen sadece başlangıç ve bitiş karakterini kontrol ettirmen lazım biliyorum pek açıklayıcı olmadı ama benim bilgimde kısıtllı
Bence en basiti
Type
Degisken=Record
ad:string;//Değişkenin adı
Konum:integer;//Değişkenin adresi
Boyut:integer;//Değişkenin boyutu
end;
Şeklinde bir tiple değişkenlerinin verisini hafızada tutmak olur. Ve dinamik bir dizi ilede bu değişkenlere erişimi kolaylaştırabilirsin.
Degiskenlere atama yapıldığında sadece onlar için hafıza ayır ve konuma kaydettir yerlerini.
Delphide nesnelerin metodları için virtual table oluşturuluyor.
Nesnelerin Alanları için bildiğim kadarıyla yukardaki degisken gibi bir bilgi kaydediliyor.
Bence nasıl hayal ediyorsan öyle yap . Golbal local değişkenler falan var, ıvırı zıvırı derin konu ...
Birde string tipini tanımlaman için 2 yolun var ya delphideki gibi yöneteceksin yada pchar daki gibi . delphide string tipi şöyle tanımlanır(hatırladığım kadarıyla) 8 bit karakter sayısı için ayrılır 8 bit Referans sayısı(yani bu string den kaç kopya var ,kaç değişkeneatandığı) ,16 bit de konumu için(hafızadaki).
Pchar gibi yöneticeksen sadece başlangıç ve bitiş karakterini kontrol ettirmen lazım biliyorum pek açıklayıcı olmadı ama benim bilgimde kısıtllı

Re: Run time da degisken olusturma
Olay sorununuzu çözmekse varolan değişken tiplerinden dizi değişkenler oluşturun, örneğin:
Edit2'nin içeriğini kontrol ettirip Integer ise bu tip, String ise bunun stringe uyarlanmış halini yazarak vs. yapabilirsiniz ??
Kod: Tümünü seç
type
Degisken_Int = Record
ad: String;
Deger: Integer;
end;
var
Ints: Array[1..1000] of Degisken_Int;
Batuhan TAŞDÖVEN
'Yükseldikçe küçülen bir uçurtma..'
'Yükseldikçe küçülen bir uçurtma..'
Re: Run time da degisken olusturma
Parser veya script olarak google da ararsan, bol bol örnek var.
Hazır scriptlerden rem objects in ücretsiz pascal scriptini inceleyebilirsin.
http://www.remobjects.com/ps.aspx
Kendin yapmak istiyorsan, bu durumda text dosyaları önce parse edeceksin, daha sonra bu parse edilmiş dosyaları yorumlayan bir program (interpreter) yazacaksın.
Bu dosyaları dogrudan çalıştıralabilir dosya formatına derlemek demek, yeni bir dil yazmak anlamına gelir. Değişkenleri tam anlamadıysa hiç dil yazma işine girme.
Hazır scriptlerden rem objects in ücretsiz pascal scriptini inceleyebilirsin.
http://www.remobjects.com/ps.aspx
Kendin yapmak istiyorsan, bu durumda text dosyaları önce parse edeceksin, daha sonra bu parse edilmiş dosyaları yorumlayan bir program (interpreter) yazacaksın.
Bu dosyaları dogrudan çalıştıralabilir dosya formatına derlemek demek, yeni bir dil yazmak anlamına gelir. Değişkenleri tam anlamadıysa hiç dil yazma işine girme.
Re: Run time da degisken olusturma
Değişkenler program yazarken kullandığımız şeylerdir. O yüzden "program çalışırken değişken yaratmak" ifadesi saçmadır ve gereksizdir.
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri
Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
csunguray at netbilisim.kom
Net Bilişim Hizmetleri
Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
Re: Run time da degisken olusturma
Aslında değişken olarak bahsettiği şey yine bir çeşit nesne, struct bir yapı sanki.
Batuhan TAŞDÖVEN
'Yükseldikçe küçülen bir uçurtma..'
'Yükseldikçe küçülen bir uçurtma..'
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: Run time da degisken olusturma
Soruda anlatılanlar ile elde edilmek istenen amaç arasında bocalamak normal. O yüzden yanlış anlamış olabilirim uyarısında bulunup hemen önerime geçiyorum. Bir değişken yapısı kurup, bunu dizi olarak tutmak isteneni verebilir. Burada her değişkeni temsil edecek bir sınıf veya yapı kurmak ve bu yapıyı organize etmek gerekmektedir. Mesela veya başka bir yapı da şeklinde olabilir. Bunlar üstünkörü bir ip ucu olması açısından yazıldığı için belki amaca hizmet açısından çok işe yaramayabilir ama sonuçta bir fikir vereceği kanaatindeyim. Belki de bu mantıkla uzaktan yakından alakası olmayan bir mantık da geliştirebilirsiniz ama üzerinde biraz kafa yorunca çözüme gidebilirsiniz. Kolay gelsin.
Kod: Tümünü seç
type
TDegisken=record
Adi,Tipi,Degeri:String;
end;
var Degiskenler:array of TDegisken;
function DegiskenEkle(const Adi,Tipi:String):Integer;
begin
Result:=High(Degiskenler);
Result:=Result+1;
SetLength(Degiskenler,Result+1);
Degiskenler[Result].Adi:=Adi;
Degiskenler[Result].Tipi:=Tipi;
end;
....
i:=DegiskenEkle('Test','Integer');
Degiskenler[i].Degeri:=IntToStr(SpinEdit1.Value);
....
finalization
SetLength(Degiskenler,0); //-->Oluşturulan değişkenler yok edilirler
end.
Kod: Tümünü seç
type
TDegisken=class(TComponent)
private
FAdi,FTipi,FDegeri:String;
public
property Adi:String read FAdi write FAdi;
property Tipi:String read FTipi write FTipi;
property Degeri:String read FDegeri write FDegeri;
end;
var Degiskenler:TComponent;
function DegiskenEkle(const Adi,Tipi:String):TDegisken;
begin
Result:=TDegisken.Create(Degiskenler); //Degiskenler nesnesinde oluşturulur
Result.Adi:=Adi;
Result.Tipi:=Tipi;
end;
....
DegiskenEkle('Test','Integer').Degeri:=IntToStr(SpinEdit1.Value);
....
initialization
Degiskenler:=TComponent.Create(nil);
finalization
Degiskenler.Free; //-->Değişkenler bu bileşene ait olarak oluşturuldukları için hepsi yok edilirler
end.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .