Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
klavuz çizgisi
#11
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 :/
Cevapla
#12
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.

2018-07-02_1_sn7bdt.png
There's no place like 127.0.0.1
WWW
Cevapla
#13
(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.
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 := TMyPanel.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.

2018-07-02_1_sn7bdt.png


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....
Cevapla
#14
Haklısınız. Şimdi denedim, olmamış Sad
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
WWW
Cevapla
#15
(03-07-2018, Saat: 10:04)SimaWB Adlı Kullanıcıdan Alıntı: Haklısınız. Şimdi denedim, olmamış Sad
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.
evt haklısınız ama tshape ve benzeri graphiccontroller buton ve panellerin üzerine geçmiyor <bringtofront> o yüzden o da olmuyor
Cevapla
#16
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
WWW
Cevapla
#17
(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..
Cevapla
#18
(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 olmuyor
Bende 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ç:
2018-07-03_ywuert.png
There's no place like 127.0.0.1
WWW
Cevapla
#19
(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 olmuyor
Bende 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ç:
2018-07-03_ywuert.png

ç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 .....
Cevapla
#20
(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?

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..

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
WWW
Cevapla




Konuyu Okuyanlar: 1 Ziyaretçi