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ı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.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ı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.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?
P.Safa:Yaşlanarak değil, yaşayarak tecrübe kazanılır.Zaman insanları değil,armutları olgunlaştırır
C.Yücel:Toprak gibi olmalısın! Ezildikçe sertleşmelisin!Seni ezenler sana muhtaç kalmalı! Hayatı sende bulmalı
S.Canan:Bildiğini zannettiğin an hiç bir şey öğrenemezsin
Bilgi uçar
WWW
Cevapla
#17
(03-07-2018, Saat: 10:38)uparlayan Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.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ı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.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ı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
(03-07-2018, Saat: 10:20)murtishow76 Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.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ı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
(03-07-2018, Saat: 10:38)uparlayan Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.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;

Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
P.Safa:Yaşlanarak değil, yaşayarak tecrübe kazanılır.Zaman insanları değil,armutları olgunlaştırır
C.Yücel:Toprak gibi olmalısın! Ezildikçe sertleşmelisin!Seni ezenler sana muhtaç kalmalı! Hayatı sende bulmalı
S.Canan:Bildiğini zannettiğin an hiç bir şey öğrenemezsin
Bilgi uçar
WWW
Cevapla




Konuyu Okuyanlar: 1 Ziyaretçi