02-07-2018, Saat: 16:38
Herhangi bir kontrolle çizgi çizmeyeceksiniz tshape'i çizgi olarak kullanacaksınız. Ve sürekli en yukarda tutacaksınız. Ben cetvel yapmıştım bu şekilde.
Topluluk mopluluk yok :/
klavuz çizgisi
|
02-07-2018, Saat: 16:38
Herhangi bir kontrolle çizgi çizmeyeceksiniz tshape'i çizgi olarak kullanacaksınız. Ve sürekli en yukarda tutacaksınız. Ben cetvel yapmıştım bu şekilde.
Topluluk mopluluk yok :/
Transparent bir Panel oluşturup bunu istediğiniz panel içinde kullanırsınız. Sonra; oluşturduğunuz Transparent panel'in OnPaint'inde istediğiniz boyama/çizme işlemini yaparsanız alttaki Panelin bileşenleri üzerinde çizim elde etmiş olursunuz.
Basit bir deneme yaptım olumlu gibi gözüküyor: Transparent panel için kodlar: TCanPanel = class(ExtCtrls.TPanel) private procedure WMEraseBkGnd(Var Message: TWMEraseBkGnd); message WM_EraseBkGnd; protected procedure CreateParams(Var Params: TCreateParams); override; procedure Paint; override; end; implementation { TCanPanel } procedure TCanPanel.CreateParams(var Params: TCreateParams); begin Inherited CreateParams(Params); Params.ExStyle := Params.ExStyle or WS_EX_TRANSPARENT; end; procedure TCanPanel.Paint; begin // BURADA GEREKLİ ÇİZİMLERİ YAPMALISINIZ. // Ben örnek olarak bir çizgi çizdiriyorum Canvas.Pen.Width := 3; Canvas.MoveTo(100, 0); Canvas.LineTo(100, Height); end; procedure TCanPanel.WMEraseBkGnd(var Message: TWMEraseBkGnd); begin Message.Result := 1; end; Asıl panelinizi kullandığınız form içinde TCanPanel tipinde bir değişken tanımlayıp, formun OnCreate'inde: pnl := TCanPanel.Create(Self); pnl.Parent := Panel1; pnl.Height := 50; pnl.Width := 50; pnl.Align := alClient;gibi bir tanımla yaparsanız istediğinize yakın bir sonuç elde edersiniz.
There's no place like 127.0.0.1
03-07-2018, Saat: 09:47
(02-07-2018, Saat: 16:38)SimaWB Adlı Kullanıcıdan Alıntı: Transparent bir Panel oluşturup bunu istediğiniz panel içinde kullanırsınız. Sonra; oluşturduğunuz Transparent panel'in OnPaint'inde istediğiniz boyama/çizme işlemini yaparsanız alttaki Panelin bileşenleri üzerinde çizim elde etmiş olursunuz. güzel ancak button1 çalışmıyor çalışması için en yapmamız lazım çizginin her daim üstte olması şartıyla ( fmx platformunda hittest olayı var) vcl kodunu biri yazmış ama bana buttona basınca çizgiyi yutuyor....
Haklısınız. Şimdi denedim, olmamış
Hatalı bilgilendirme için kusura bakmayın... Ben de @boreas gibi oyumu TShape'den yana kullanıyorum. Panel'in OnResize'ında TShape'lerin konumlarını düzenleyerek yapabilirsiniz.
There's no place like 127.0.0.1
03-07-2018, Saat: 10:20
(03-07-2018, Saat: 10:04)SimaWB Adlı Kullanıcıdan Alıntı: Haklısınız. Şimdi denedim, olmamışevt haklısınız ama tshape ve benzeri graphiccontroller buton ve panellerin üzerine geçmiyor <bringtofront> o yüzden o da olmuyor
03-07-2018, Saat: 10:38
TGridPanel belki amacınıza daha uygundur denediniz mi?
YouTube Delphi Tips
"Yaşlanarak değil, yaşayarak tecrübe kazanılır. Zaman insanları değil, armutları olgunlaştırır" Peyami Safa
03-07-2018, Saat: 10:41
(Son Düzenleme: 03-07-2018, Saat: 10:44, Düzenleyen: murtishow76.)
(03-07-2018, Saat: 10:38)uparlayan Adlı Kullanıcıdan Alıntı: TGridPanel belki amacınıza daha uygundur denediniz mi? omultipanel adlı bir bileşen var elimde onun üzerinde çalışacam .. ama parentin bir önemi yok ..... işimi görecek herhangi parent olsun yeter.... grid panel de bu işlemi nasıl yapacazki anlamadım.. bana tüm kontrollerin üzerinde sanal çizgiler lazım ... photoshoptaki gibi dreamviwerdaki gibi slice çizgileri klavuz çizgileri.. (03-07-2018, Saat: 10:20)murtishow76 Adlı Kullanıcıdan Alıntı: evt haklısınız ama tshape ve benzeri graphiccontroller buton ve panellerin üzerine geçmiyor <bringtofront> o yüzden o da olmuyorBende TShape diğer bileşenlerin altında kalıyor. Panel üzerine 1 buton, 1 edit ve 1 Shape koydum. Panel'in OnPaint'inde aşağıdakileri yazdım: Shape1.Top := 1; Shape1.Left := 100; Shape1.Width := 2; Shape1.Height := Panel1.Height; Sonuç:
There's no place like 127.0.0.1
03-07-2018, Saat: 10:51
(Son Düzenleme: 03-07-2018, Saat: 10:55, Düzenleyen: murtishow76.)
(03-07-2018, Saat: 10:48)SimaWB Adlı Kullanıcıdan Alıntı:(03-07-2018, Saat: 10:20)murtishow76 Adlı Kullanıcıdan Alıntı: evt haklısınız ama tshape ve benzeri graphiccontroller buton ve panellerin üzerine geçmiyor <bringtofront> o yüzden o da olmuyorBende TShape diğer bileşenlerin altında kalıyor. çizgi kontrollerin altında olmuş kardeş ben üstünde istiyorum... tshape ve tbevel işlerimi gören komponent lakin en üstte konumlandıryamıyoruz b. bir makalede handle atanırsa üzstte çıkacağından bahsediyolardı ama nasıl olacak bilmiyorum .....
03-07-2018, Saat: 11:03
(03-07-2018, Saat: 10:41)murtishow76 Adlı Kullanıcıdan Alıntı:(03-07-2018, Saat: 10:38)uparlayan Adlı Kullanıcıdan Alıntı: TGridPanel belki amacınıza daha uygundur denediniz mi? Aşağıdaki linki incelermisin arkadaşım; http://www.delphican.com/tcustomcontrol-...muyor.html
YouTube Delphi Tips
"Yaşlanarak değil, yaşayarak tecrübe kazanılır. Zaman insanları değil, armutları olgunlaştırır" Peyami Safa |
« Önceki Konu | Sonraki Konu »
|