Aynı Formadan birden fazla açıp kullanma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
akuyumcu63
Üye
Mesajlar: 386
Kayıt: 02 Tem 2007 09:43

Aynı Formadan birden fazla açıp kullanma

Mesaj gönderen akuyumcu63 »

merhaba;

hızlı satış programına benzer bir program yazmaya çalışıyorum. satış ekranını birden fazla oluşturuyorum. form oluştururken kullandığım komut aşağıdadır

Kod: Tümünü seç

frmhizlisatis:=Tfrmpizlesatis.create(Application.MainForm)
form ilk oluşturulduğunda ürün eklemesinde sıkıntı yok, form ikinci kere oluşturulduğunda ürün eklemesinde sıkıntı yok, form üçüncü kere oluşturulduğunda da son oluşan forma ürün eklemede sorun yok, ancak bir önceki forma dönüp ürün eklemeye çalıştığım zaman ürün son oluşan forma ekleniyor. yapmaya çalıştığım olay birden fazla satış ekranı oluşturup tıklayarak aktif ettiğim forma ürün eklemesinin yapılmasını istiyorum. ekleme işlemi form üzerindeki edite barkodun yazılmasıyla veya harici açılan ürün listesi formundan yapılmaktadır.

bu konuda yardımcı olan arkadaşlara şimdiden teşekkür ederim.
İsteyen, yapabildiğinden daha fazlasını yapar.
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: Aynı Formadan birden fazla açıp kullanma

Mesaj gönderen Lord_Ares »

akuyumcu63 yazdı:merhaba;

ancak bir önceki forma dönüp ürün eklemeye çalıştığım zaman ürün son oluşan forma ekleniyor. yapmaya çalıştığım olay birden fazla satış ekranı oluşturup tıklayarak aktif ettiğim forma ürün eklemesinin yapılmasını istiyorum. ekleme işlemi form üzerindeki edite barkodun yazılmasıyla veya harici açılan ürün listesi formundan yapılmaktadır.
Gördüğüm kadarıyla eğer yanlış anlamadıysam, hızlı satış ekrana başka formdan bilgi getirmek istiyorsun. Mesela hızlı satış ekranı açıkken, ürünseç tuşuna bastın ve stokların geldi ürünün üzerini çift tıkladığında bu hızlı satış ekranındaki edite eklensin istiyorsan. Ürünü seçtiğin dbgridin ondouble click meteoduna
///
Hızlısatıs.edit1.text:=table.stokadı.asstring; ///hızlı satış formundaki edite stokları tuttuğun tabledaki seçtiğin ismi eklettik.
Stoklar.close; /// stoğu seçtğin ekrandaki formun adı stoklar olarak düşünürsek. Formu kapat hızlı satış ekranına dön.

Mantığında olmalı. Tabi ne kullandığın veritabanı nede formun hakkında bilgi vermişsin. Bunları kabaca söylüyorum.
iyi çalışmalar.
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Re: Aynı Formadan birden fazla açıp kullanma

Mesaj gönderen unicorn64 »

frmhizlisatis değişkeni Tfrmpizlesatis formunun bulunduğu unitteki global değişken sanırım.

Tfrmpizlesatis.create(Application.MainForm) ile oluşturduğunuz formu Tfrmpizlesatis tipinde yeni bir değişkene atayıp kullanın
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...

Resim
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Re: Aynı Formadan birden fazla açıp kullanma

Mesaj gönderen vkamadan »

Merhabalar ,
Tahmin yürüterek şöyle bir önerim olabilir ,
runtime da örneklediğiniz HızlıSatis formlarına ürün eklemek için sanırım üste bir form daha açıyorsunuz ve bu formdan seçilen ürünü o an işlem yaptığınız HızlıSatis formuna eklemesini bekliyorsunuz, en sancısız yöntem;
runtime da örneklediğiniz her HizliSatis formu için ürün eklemek amaçlı kullandığınız formuda runtime da create etmelisiniz ;
örn : sizin hızlı satış formunun sınıfı THizliSatisForm olsun , forma ürün ekleyen formun sınıfı da TUrunEkleForm olsun

Kod: Tümünü seç

var
satisform : THizliSatisForm ;
begin
 satisForm := THizliSatisForm.Create(self);
satisForm.Show;
end;
dediniz , sonra THizliSatisForm un içindeki ürün Seçim butonunda da

Kod: Tümünü seç

var
urunform : TUrunEkleForm ;
begin
 urunform := TUrunEkleForm.Create(self);
urunform.Show;
end;

olarak ilgili hizlisatisform u Owner alacak şekilde create ettiğiniz, ürün ekleme forumda seçilen ürünü HızlıSatisFormuna ekleyecek prosedür de ise Owner form için yani kendisini create eden HızlıSatis Formunu hedef alacak şekilde kodlama yapın

Kod: Tümünü seç

var
hsForm : THizliSatisForm ;
begin
 hsForm := THizliSAtisForm( Self.Owner ) ;

hsForm.EditUrunKodu.Text := ......
end;
Gibi ,
kolay gelsin..
Volkan KAMADAN
www.polisoft.com.tr
akuyumcu63
Üye
Mesajlar: 386
Kayıt: 02 Tem 2007 09:43

Re: Aynı Formadan birden fazla açıp kullanma

Mesaj gönderen akuyumcu63 »

merhaba;

vkamadan hocam, size ve cevap veren arkadaşlara çok teşekkür ederim. verdiğiniz örnek kodları şimdi uygulayabildim. problem yok gibi duruyor kendi açımdan formlarla ilgili önemli bir sorumu gidermiş oldunuz.

Allah hanenize sıkıntı darlık vermesin.
İsteyen, yapabildiğinden daha fazlasını yapar.
Cevapla