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;
May the force be with you!
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
May the force be with you!
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
May the force be with you!
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
May the force be with you!
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Program içinde resim üzerine yazi gonulali 1 81 06-06-2018, Saat: 11:29
Son Yorum: iyarar
  İki Application Clasından iki Farklı Form Create Etme witalihakko 2 104 01-06-2018, Saat: 12:17
Son Yorum: Tuğrul HELVACI
  Uygulama içinde bekleme konumunda ekranda animasyon oynatma Bay_Y 13 375 11-05-2018, Saat: 08:18
Son Yorum: Tuğrul HELVACI
  Form Print gonulali 2 206 03-04-2018, Saat: 23:30
Son Yorum: gonulali
  MDI FORM narkotik 1 190 18-03-2018, Saat: 13:28
Son Yorum: mcuyan



Konuyu Okuyanlar: 1 Ziyaretçi