Selamın aleyküm arkadaşlar Graphics32 companent'de PaintBox32 var ben bir resim koyuyorum bu resmin belirli kordinatına nasıl panel sabitlerim bir türlü çözemedim yardımcı olursanız sevinirim?
Konuyu Oyla:
Graphics32 companent PaintBox32 panel sabitleme.
|
08-08-2016, Saat: 20:08
(Son Düzenleme: 08-08-2016, Saat: 20:09, Düzenleyen: Fesih ARSLAN.)
Aleyküm Selam,
PaintBox32 nesnesini kullanmadım. Fakat size yardımcı olabile adına bir açıklama gereği duydum. PaintBox32 bileşen hiyerarşisi aşağıdaki gibi görünüyor. TCustomControl | TCustomPaintBox32 | TCustomImage32 | TImage32 TImage32 ise muhtemelen grafik kontrolden (TGraphicControl) türemiştir. Kullanmak istediğiniz TPanel ise TWinControl'den türemiştir. Dolayısıyla PaintBox32 üzerine (Panel1.Parent := PaintBox32) Panel yerleşmeyecektir. PaintBox32 nesnesinin temel sınıflarında değişiklikle bu durum belki aşılabilir. Konuyu biraz daha açıklama imkanınız var ise, belki daha farklı yöntemlerle yardımcı olabiliriz. İyi çalışmalar
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.
08-08-2016, Saat: 20:39
Fesih beyin farklı yöntemle yardımcı olma fikrine katılıyorum.
DelphiTurkiye forumda paylaşmıştım ama site kapanmış. Arşivimden bakmam lazım bulursam buradan yollarım. Vakit sıkıntısı yaşıyorum, aşabilirsem örnek yazar burada paylaşırım. Mantık bir ilüzyona dayalı. Layer (katman) mantığını gütmek lazım. Haritalama vb için uygun bir yöntem olarak düşündüm. Nesneler dinamik olarak create edildiği varsayımıyla ya dinamik dizi ile bu nesne konumları kayıt altına alınır veya karmaşık vektörel durumlar varsa nesne konumuna ilişkin resim ile aynı büyüklükte görünmeyen ikinci bir boş resim oluşturup, yerleşimi bu boş resme renkli yer belirteçleri olarak koyarak, daha sonra bu boş resimdeki noktaları scanline ile diziye alıp gerçeği üzerine layer mantığıyla işlemek olabilir.
Saygılarımla
Muharrem ARMAN ![]()
08-08-2016, Saat: 20:42
@Fesih ARSLAN
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol -- ![]() Hocam şöyle bir program var delphi ile yazılmış harita programı resmi koyuyor programa ve fare ile yakınlaştırma uzaklaştırma yada fare ile tıklayıp aşşağı yukarı sağa sola götürme var ve harita üzerinde belirli kordinata yuvarlak nesne ve nesne üzerine yazı yazma oluyor bu program ne ile yapılmış buna benzer örnek bir program var mıdır?
08-08-2016, Saat: 20:54
Saygılarımla
Muharrem ARMAN ![]()
08-08-2016, Saat: 20:57
@mmarman
Arşiv bozulmuş dosyalar indirdim ama içi boş hocam benim projemi size göndersem özelden bakabilirmisiniz?
08-08-2016, Saat: 21:05
Üzgünüm yardım etmek isterim ancak senin sonuca ulaşman lazım. Dolayısı ile başlığı okuyanlar.
Aksi halde işçilik olur.
Saygılarımla
Muharrem ARMAN ![]()
08-08-2016, Saat: 21:08
Hocam çok denedim ama sonuca ulaşamadım
![]()
08-08-2016, Saat: 21:16
(Son Düzenleme: 19-08-2016, Saat: 20:45, Düzenleyen: Fesih ARSLAN.)
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol hocamızın örneği işinizi görür sanırım.
Daha kapsamlı bir uygulama yazacaksanız, ücretli harici bileşen setleri de var. Örneğin ImageEn gibi. Layer'lardan oluşan ve vektörel çalışan nesneleri var. Yüzlerce efekt uygulanabiliyor. Aşağıdaki linkten özelliklerine göz atabilirsiniz. Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol İyi çalışmalar
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.
![]()
Eve geldim.
Arşivimden projeyi buldum. Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol indirebilirsin. ![]() Gözle takip etmek isteyenler için kodlar aşağıda.. Var xBitmap : TBitmap; procedure TForm1.btTemizleClick(Sender: TObject); begin Image1.Picture.Graphic := xBitmap; end; procedure TForm1.btDoldurClick(Sender: TObject); Var i : Integer; x, y : Integer; Satir : String; x1, y1 : Integer; begin for i := 0 to ListBox1.Count - 1 do begin Satir := ListBox1.Items[i]; x := StrToInt( Copy(Satir, 1, Pos(',', Satir) -1) ); System.Delete(Satir, 1, Pos(',', Satir)); y := StrToInt( Copy(Satir, 1, Pos('.', Satir) -1) ); x1 := Trunc( X * (Image1.Width / Image1.Picture.Bitmap.Width ) ); y1 := Trunc( Y * (Image1.Height / Image1.Picture.Bitmap.Height) ); with PaintBox1.Canvas do begin Brush.Style := bsSolid; Brush.Color := clYellow; Pen.Color := clBlue; Pen.Width := 3; Rectangle(x1-5, y1-5, x1+5, y1+5); end; end; end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin ListBox1.Items.SaveToFile( ChangeFileExt(Application.Exename, '_Koordinat.TXT') ); xBitmap.Free; end; procedure TForm1.FormResize(Sender: TObject); begin btTemizle.Click; Application.ProcessMessages; btDoldur.Click; end; procedure TForm1.FormShow(Sender: TObject); begin xBitmap := TBitmap.Create; xBitmap.Assign( Image1.Picture.Bitmap ); If FileExists( ChangeFileExt(Application.Exename, '_Koordinat.TXT') ) then ListBox1.Items.LoadFromFile( ChangeFileExt(Application.Exename, '_Koordinat.TXT') ); end; procedure TForm1.ListBox1DblClick(Sender: TObject); begin if ListBox1.ItemIndex >= 0 then ListBox1.Items.Delete(ListBox1.ItemIndex); FormResize(Nil); end; procedure TForm1.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); Var x1, y1 : Integer; begin x1 := Trunc( X / (Image1.Width / Image1.Picture.Bitmap.Width ) ); y1 := Trunc( Y / (Image1.Height / Image1.Picture.Bitmap.Height) ); Form1.Caption := Format('X: %d, Y:%d', [x1, y1]); end; procedure TForm1.PaintBox1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); Var x1, y1 : Integer; begin x1 := Trunc( X / (Image1.Width / Image1.Picture.Bitmap.Width ) ); y1 := Trunc( Y / (Image1.Height / Image1.Picture.Bitmap.Height) ); ListBox1.Items.Add( Format('%d,%d.', [ X1, Y1]) ); FormResize(Nil); end; end. ![]()
Saygılarımla
Muharrem ARMAN ![]() |
« Önceki Konu | Sonraki Konu »
|
Konu ile Alakalı Benzer Konular | |||||
Konular | Yazar | Yorumlar | Okunma | Son Yorum | |
Panel ve çözünürlük | Lord_Ares | 8 | 537 |
01-10-2017, Saat: 01:02 Son Yorum: mcuyan |
|
Değer döndüren panel | Lord_Ares | 11 | 734 |
26-09-2017, Saat: 15:19 Son Yorum: Lord_Ares |
Konuyu Okuyanlar: 1 Ziyaretçi