form içinde showmodal form açmayı bilen varsa elinde öpeceği

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
oquz

form içinde showmodal form açmayı bilen varsa elinde öpeceği

Mesaj gönderen oquz »

çok ciddiyim.

form içinde showmodal form açmayı bilen varsa elinde öpeceğim.

form içinde başka bir form açmak istiyorum. bu mümkün bilen bilir ama ben bu formun showmodal tarzı açılmasını istiyorum. bunu da anlayan anlamıştır.

çooook denedim ve çok araştırdım ama bulamadım. bugün bu sitek yine depreşti bi de size sorayım dedim.

ilgilenen arkadaşlara şimdiden teşekkürler.
Kullanıcı avatarı
ofenX
Üye
Mesajlar: 397
Kayıt: 09 Nis 2005 10:24
Konum: Diyarbakır
İletişim:

Mesaj gönderen ofenX »

Merhaba,
Bu mesajı programlama forumuna sormanız lazımdı.

Yeni bir proje açtıktan sonra File /new/form u seçip bir form daha ekliyorsunuz formunuza
form1 e bir buton eklediğinizi varsayıyorum.
Form1 deyken File /use unit i seçip Unit2 yi seçiyorsunuz.
sonra butonun onclik olayına

Kod: Tümünü seç

 form2.showmodal;
yazıyorsunuz.

Sizin kasdettiğiniz bu değil mi? Bu şekilde bir deneyin.

Kolay gelsin.
http://www.aysbergbilgisayar.com
Logo Go özel eğitim, web tasarım, teknik servis
Glen
Üye
Mesajlar: 277
Kayıt: 12 Eki 2005 11:58

Mesaj gönderen Glen »

Form2 nin visible degerinin de false olmasi gerektigini unutmayin..

Form2.visible := false;
Form2.ShowModal;
Kullanıcı avatarı
Serim
Üye
Mesajlar: 194
Kayıt: 08 Ara 2004 03:32
Konum: Konya

Mesaj gönderen Serim »

mesela butona basınca formu hem showmodal olarak açmak hemde formu o an create etmek için aşağıdaki kodu kullanabilirsin :

Kod: Tümünü seç

Form2:=TForm2.create(Nil);
try
   Form2.showmodal;
Finally
   Form2.Free;
End;
Bilginin temelini sağlam at depremde zarar görmesin
oquz

yanlış anlamışsınız

Mesaj gönderen oquz »

yanlış anlamışsınız, ben detaya girmediğim için oldu anlayacağınızı ummuştum.

dikkat ederseniz form içinde form açmaktan bahsediyorum.
form içinde form
form içinde form
form içinde form

yani form2'nin parentı form1 veya form1 içinde bir panel olacak. ama form2 açılınca showmodal olacak yani form1 içinde bir yere tıklanamayacak, ama programdaki diğer aktif pencerelere erişilebilecek.
Kullanıcı avatarı
Serim
Üye
Mesajlar: 194
Kayıt: 08 Ara 2004 03:32
Konum: Konya

Mesaj gönderen Serim »

özür dileriz anlayamadığımız için. bide dövseydin bari hey allam ya :D
Bilginin temelini sağlam at depremde zarar görmesin
oquz

konyalı sen kızma bari ya

Mesaj gönderen oquz »

konyalı sen kızma bari ya çünkü ben de konyalıyım da neyse,

ne kızacağım canım ne haddime.

neyse form içinde form açmayı biliyoruz da form içinde showmodal form açmayı bilen varsa halen el öpmeye hazır bekliyorum. :)
Kullanıcı avatarı
ofenX
Üye
Mesajlar: 397
Kayıt: 09 Nis 2005 10:24
Konum: Diyarbakır
İletişim:

Re: yanlış anlamışsınız

Mesaj gönderen ofenX »

Merhaba,
oquz yazdı: yani form2'nin parentı form1 veya form1 içinde bir panel olacak. ama form2 açılınca showmodal olacak yani form1 içinde bir yere tıklanamayacak, ama programdaki diğer aktif pencerelere erişilebilecek.
ne yapmak istediğinizi hala anlamış değilim. Ama showmodal ın anlamı "siz bu formdan çıkana kadar başka forma geçemezsiniz kendi programınızda"
demek sanırım. Bu durumda diğer aktif pencerelere nasıl geçeceksiniz?

Ama şunu demek istiyorsanız o olabilir.
"ben form 2 de iken form1 e geçemesin ama form3,form 4 ... e geçebilsin " gibi bir ifade kullanırsanız bence showmodal olarak değilde normal olarak formu show edersiniz. ondeactivate ine bir şeyler yazıp activin form1 geçmesi durumunda bu işlemi iptal ettirirsiniz.

Kolay gelsin.
http://www.aysbergbilgisayar.com
Logo Go özel eğitim, web tasarım, teknik servis
oquz

anlamışsınız

Mesaj gönderen oquz »

anlamışsınız fakat "showmodal olarak değilde normal olarak formu show edersiniz. ondeactivate ine bir şeyler yazıp activin form1 geçmesi durumunda bu işlemi iptal ettirirsiniz. " demişsiniz ya.

showmodal diyemeceğimizi biliyorum.

show yapacağız ok. ondeactiveine bir şeyler yazıp gibi bir işlem işte o ne acaba , çözüm orada yatıyor...

ondeactive çalışmıyor zaten.

aynı zamanda şöyle bir kod yazabilmemiz lazım

.....
form2aç;
if form2.falandegisken = filan then
.....
...

yani showmodaldaki gibi kullanabilmek.
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Programdaki diğer pencereleri Show ile açıp, Form içindeki form'u da Showmodal ile açınca olmuyor mu? Diğerlerine tıklanır ama içinde açtığın forma tıklanamaz.
oquz

ıı ıııgh

Mesaj gönderen oquz »

ıı ıııgh

olmuyor
keşke olsa.
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Evet olmuyormuş. ShowModal'a girdiğinde form kapanana kadar döngüye giriyor çünkü.

Neyse bir yöntem buldum şöyle ki.

Ana formun içinde form açmak için:

Kod: Tümünü seç

  if not Assigned(Form2) then
    Form2:= TForm2.Create(Self);
  Form2.Show;
kullanalım. Form2 de bizim Modal açmak istediğimiz form olsun. Ana formun Activate'ine

Kod: Tümünü seç

procedure TForm1.FormActivate(Sender: TObject);
begin
  if Assigned(Form2) then
    Form2.BringToFront;
end;
Yazıyoruz. Bu sayede bir hile yapıyoruz. Kullanıcı 2. form açıldıktan sonra ana forma tıklasa bile, 2. forma geri dönüyor. Ta ki 2. form kapanana kadar. Bu esnada Show ile açık olan diğer formalara da erişilebiliyor.

2. formu free etmek için OnClose'a:

Kod: Tümünü seç

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree;
  Form2:= nil;
end;
yazmamız gerekiyor ki Ana forma tekrar focus olabilelim.
Cevapla