MdiForm ClientArea icerisine panel koymak

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ikra
Üye
Mesajlar: 901
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

MdiForm ClientArea icerisine panel koymak

Mesaj gönderen ikra »

Selamu aleykum
MDIForm'un ClientAreasinin icine MDIChild ler geliyorlar. buraya her hangi bir bilesen koydugumda (örn. Panel), acilan mdichild bu bilesenin arkasinda kaliyor.
yapmak istedigim sey, areanin icerisine bir panel atip, bunun bottom'a yerlestirmek.
google'da epey aradim fakat bulamadim.
konu hakkinda bilgisi olan arkadaslar var mi?
simdi den tesekkür ederim...
kıdemsiz üye
ikra
Üye
Mesajlar: 901
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Re: MdiForm ClientArea icerisine panel koymak

Mesaj gönderen ikra »

arkadaslar hala bir cözüm bulabilmis degilim.
belki, soruyu gözden kacirmis olanlar olabilir düsüncesi ile, konuyu tekrar yukari tasiyorum.
simdiden tesekkür ederim...
kıdemsiz üye
xdelphix
Üye
Mesajlar: 9
Kayıt: 25 Kas 2010 10:21

Re: MdiForm ClientArea icerisine panel koymak

Mesaj gönderen xdelphix »

Yapmak istediğini MDIForm mantığı ile yapman mümkün değil.Bunun delphi ile bir alakası yok windows buna izin vermiyor.Ancak sana şöyle bir önerim olabilir.2 tane form yarat ve 2.ci formu dynamic olarak çalıştırmaya ayarla.Program çalışırken 2 form otomatik oluşturulcağından 2.ci formu oluşturan satırı sil.Aşağıda örnek kod yazdım belki işine yarar.Bu şekilde formları yönetebilirsin.

Form12in üzerine bir tane panel koydum.Tuşa bastığımda 2.ci form dynamic olarak oluşuyor ve sahibini panel1 olarak atıyorum.Daha sonrada oluşturulan formu aktif hale getiriyorum.

Örnek kod :

procedure TForm1.Button1Click(Sender: TObject);
begin
Form2 := TForm2.Create(Self);
Form2.Parent := Panel1;
Form2.Show;
PostMessage(Form2.Handle, WM_NCACTIVATE, 1, 0);
end;
ikra
Üye
Mesajlar: 901
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Re: MdiForm ClientArea icerisine panel koymak

Mesaj gönderen ikra »

öncelikle cevabin icin tesekkür ederim.
muhakkak ki bir cözümü var dir bu isin.
kıdemsiz üye
xdelphix
Üye
Mesajlar: 9
Kayıt: 25 Kas 2010 10:21

Re: MdiForm ClientArea icerisine panel koymak

Mesaj gönderen xdelphix »

Ben teşekkür ederim ancak sanırım daha açıklayıcı yazmam gerekiyodu.hata benim özür dilerim.İstediğin şeyi yapmak mümkün değil.Nedenine gelince MDIForm uygulamalarında MDIChild lar mesajları Anaformuna gönderir ve iletişimi onunla sağlar.Panel bu mesajları alamayacağından mdichid panel ile haberleşemez bu yüzden her zaman oluşturduğun child formlar panelin arkasında kalır.Çünkü panel senin programının ana penceresi değil.MDIChild formlar ise sadece ana pencere ile mesaj alışverişinde bulunabilir.Sana şöyle bir örnek vereyim.Senin bir üstü açık araban var ve sen bunun içini insanlarla dolduruyosun.Daha sonra arabanın üstünü kapatıyosun.Dışardan bu insanlara ulaşman mümkünmü ? değil.Çünkü arabanın üstünü kapattın.MDIForm mantığıda buna benzer.MDIChild pencereler sadece MDIForm ile haberleşir ve MDIForm üzerindeki açık alanlarda görmen mümkündür.Sen MDIFormun alanını panel ile örtersen MDIChild her zaman o örtünün altında kalır.

İyi Forumlar...
ikra
Üye
Mesajlar: 901
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Re: MdiForm ClientArea icerisine panel koymak

Mesaj gönderen ikra »

detayli bilgi icin tesekkür ederim.
degerli vaktini ayirdin, hakkini helal et.
ben buna bi care bulacagim insaAllah.
inat ettim : ))
kıdemsiz üye
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: MdiForm ClientArea icerisine panel koymak

Mesaj gönderen mkysoft »

Neden panel koymak istiyorsunu bilmiyorum ama ben mdiform'a yazılar yazdırarak (print) istediğimi elde etmiştim.
ikra
Üye
Mesajlar: 901
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Re: MdiForm ClientArea icerisine panel koymak

Mesaj gönderen ikra »

panel ile bi taskbar yapiyorum. her mdiclient olusturuldugunda, panel üzerinde mdichild'e ayit olan bir buton olusacak. bunu bir sekilde yerlestirmem lazim clientarea icerisine ki, taskbar gibi bir görünüm alsin.
mainform da sol tarafta bir menü var yukaridan asagiya. sag tarafta geriye kalan clientarea.
yapmak istedigim, paneli albottom yaptigimda, soldaki menünün altina inmek yerine, sadece clientare nin bottom kismini kaplasin.
bunun bir yöntemi olmali.
kıdemsiz üye
Cevapla