Tüm Platformlar için Hızlı Uygulama Geliştirme --->    Kitabımız...      Delphi

Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 4/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Form İçinde Form Parent Olayında Edit Kontrolü
#1
Question 
Merhabalar, sorunumu anlatayım; Öncellikle istediğim şu ki oluşturmuş olduğum bir ana form var ve içinde ribbon vs. bileşenler var. Müşteri ekleme formunu ana forma parentleyerek align özelliğini alclient yaparak form içinde form gezintili bir program tasarımı yaptım. Lakin müşteri ekleme formunu parentlediğimde edit bileşenine sol tık yapınca tepki vermezken sağ tık yaptığımda edit içi select işlemini yapıyor. Bu işten henüz birşey anlamış değilim fakat  Angel araştırma felan yaptığımda parentlediğimizde senkronizasyon sorunundan bahsediliyordu ona da anlam veremedim. Aşağıdaki kodları kullanıyorum. Yardımlarınız için şimdiden teşekkürler!  Smile

Aklıma gelmişken söyleyeyim MDIChild olayı bana pek güzel gelmedi çünkü MDIChild olayı mesela Child formu büyütünce MDI forumun sağ kısmını aşmalar var bir parent tadı vermiyor yani. İstediğim parentleyerek yapmak diğer bileşenlerde sorun yokken sadece editin kontrolünde olması insanı çıldırtıyor  Big Grin

Procedure TMain.Button1Click(Sender TObject);
begin
frm_MEkle.Parent := Self;
frm_MEkle.Show;
frm_MEkle.Align := alClient;
end;
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Cevapla
#2
Merhaba,
DelphiCan'a hoş geldiniz.
Metodu aşağıdaki gibi değiştirerek deneyebilir misiniz?

Procedure TMain.Button1Click(Sender TObject);
begin
  frm_MEkle.Parent := Self;
  frm_MEkle.Align := alClient;
  frm_MEkle.BorderIcons := [];
  frm_MEkle.BorderStyle := bsNone;
  frm_MEkle.Show;
end;
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#3
(01-07-2017, Saat: 12:11)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlMerhaba,
DelphiCan'a hoş geldiniz.
Metodu aşağıdaki gibi değiştirerek deneyebilir misiniz?

Procedure TMain.Button1Click(Sender TObject);
begin
  frm_MEkle.Parent := Self;
  frm_MEkle.Align := alClient;
  frm_MEkle.BorderIcons := [];
  frm_MEkle.BorderStyle := bsNone;
  frm_MEkle.Show;
end;

Hoşbulduk hocam, denedim oldu. Hata demek BorderStyle ile alakalı imiş ama hala Border ile alıp veremediğini anlamadım..

Teşekkürler, iyi çalışmalar Smile
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Cevapla
#4
Ribbon tarzı bir uygulamadan bahsediyorsunuz; Ribbon yapısında BorderIcon'lar pek hoş görünmez. Daha flat pencere yapısı kullanmanız gerekiyor.
Benzer mantıkla çalışan; bir master form oluşturup, formun gizlenmesi için sağ üst köşeye (Anchors ile) bir Image veya Button yerleştirebilirsiniz.
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#5
(01-07-2017, Saat: 12:27)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlRibbon tarzı bir uygulamadan bahsediyorsunuz; Ribbon yapısında BorderIcon'lar pek hoş görünmez. Daha flat pencere yapısı kullanmanız gerekiyor.
Benzer mantıkla çalışan; bir master form oluşturup, formun gizlenmesi için sağ üst köşeye (Anchors ile) bir Image veya Button yerleştirebilirsiniz.

Anladım hocam, dediğini gibi yapacağım şimdi düşününce dediğiniz daha bir mantıklı geldi. Yardımlarınız için çok teşekkürler  Smile
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Cevapla
#6
Rica ederim.

(01-07-2017, Saat: 12:17)hyperxman Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol... hala Border ile alıp veremediğini anlamadım..
Teşekkürler, iyi çalışmalar Smile

VCL.Forms referansında gerekli açıklamaları var Smile

procedure TCustomForm.SetBorderIcons(Value: TBorderIcons);
var
 LStyle, LExStyle: Cardinal;
begin
 if FBorderIcons <> Value then
 begin
   FBorderIcons := Value;
   if HandleAllocated and (not (csDesigning in ComponentState) or
     ((csDesigning in ComponentState) and (Parent <> nil))) then
   begin
     if not ((FFormStyle = fsMDIChild) and (FWindowState = wsMaximized)) then
     begin
       LStyle := GetWindowLong(Handle, GWL_STYLE);
       LExStyle := GetWindowLong(Handle, GWL_EXSTYLE);
       GetBorderIconStyles(LStyle, LExStyle);

       SetWindowLong(Handle, GWL_STYLE, LStyle);
       SetWindowLong(Handle, GWL_EXSTYLE, LExStyle);
       SetWindowPos(Handle, 0, 0, 0, 0, 0, SWP_FRAMECHANGED or SWP_NOMOVE or
         SWP_NOZORDER or SWP_NOSIZE or SWP_NOACTIVATE);
     end
     else
       RecreateWnd; // SetWindowLong doesn't remove icons for MDI children
   end;
 end;
end;
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#7
Daha önce benzer bir konu üzerinde bir çok yorum yapılmıştı. Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol, konusuna bir göz atın isterseniz.
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#8
(01-07-2017, Saat: 12:38)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlDaha önce benzer bir konu üzerinde bir çok yorum yapılmıştı. Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol, konusuna bir göz atın isterseniz.

İlginiz için teşekkürler hocam inceleyeceğim Smile
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Form create h.k (Çözüldü ) cinarbil 12 266 25-01-2018, Saat: 12:09
Son Yorum: cinarbil
  thread form donma sorunsalı seci20 3 136 22-01-2018, Saat: 09:42
Son Yorum: edo
  Çalışma anında form tasarımı boreas 4 220 10-01-2018, Saat: 17:10
Son Yorum: boreas
  Webbrowser form element item adları bkantur 3 108 16-12-2017, Saat: 22:30
Son Yorum: SimaWB
  Listview içinde arada dilo 4 121 06-12-2017, Saat: 09:09
Son Yorum: Fesih ARSLAN



Konuyu Okuyanlar: 1 Ziyaretçi