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;
kisisel_logo_dark.png
WWW
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;
Cevapla
#3
(01-07-2017, Saat: 12:11)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: 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;

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
kisisel_logo_dark.png
WWW
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.
Cevapla
#5
(01-07-2017, Saat: 12:27)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: 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.

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
kisisel_logo_dark.png
WWW
Cevapla
#6
Rica ederim.

(01-07-2017, Saat: 12:17)hyperxman Adlı Kullanıcıdan Alıntı: ... 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;
Cevapla
#7
Daha önce benzer bir konu üzerinde bir çok yorum yapılmıştı. Büyük Projelerde Form İsimleri Algoritması, konusuna bir göz atın isterseniz.
Cevapla
#8
(01-07-2017, Saat: 12:38)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Daha önce benzer bir konu üzerinde bir çok yorum yapılmıştı. Büyük Projelerde Form İsimleri Algoritması, konusuna bir göz atın isterseniz.

İlginiz için teşekkürler hocam inceleyeceğim Smile
kisisel_logo_dark.png
WWW
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  kod timer icinde bir kere islesin sadikacar60 5 299 30-04-2024, Saat: 17:22
Son Yorum: sadikacar60
  Optik form kodlama baloglurecep 8 1.535 16-11-2023, Saat: 16:23
Son Yorum: COMMANDX
  Edit içindeki tarihin doğru olup olmadığını kontrol etmek? hasansavci 2 427 17-10-2023, Saat: 03:35
Son Yorum: mcuyan
Sad Tabsheet içinde Form Create, Close olayları YILDIRIMBEY 0 281 24-08-2023, Saat: 17:26
Son Yorum: YILDIRIMBEY
  Thread içinde CoInitialize(nil) ve CoUninitialize serdar 6 1.173 22-08-2023, Saat: 09:50
Son Yorum: yhackup



Konuyu Okuyanlar: 1 Ziyaretçi