17-10-2018, Saat: 14:06
(Son Düzenleme: 17-10-2018, Saat: 14:14, Düzenleyen: Fesih ARSLAN.)
Merhaba;
ImageViewer nesnesinin BitmapScale ile görüntüyü uzaklaştırıp yakınlaştıryorum bu işlemi yapmadan önce Rectangle ile seçim yaptığımda doğru yeri alabiliyorken uzaklaştırıp yakınlaştırınca doğru yeri alamıyorum. Resim boyutu değiştiğinde doğru alanı nasıl seçebilirim.
Forma bir adet ImageViewer, TrackBar1, Rectangle ekliyorum.

http://s3.dosya.tc/server17/ezxe6h/Bitmap.rar.html Örnek kodlar
ImageViewer nesnesinin BitmapScale ile görüntüyü uzaklaştırıp yakınlaştıryorum bu işlemi yapmadan önce Rectangle ile seçim yaptığımda doğru yeri alabiliyorken uzaklaştırıp yakınlaştırınca doğru yeri alamıyorum. Resim boyutu değiştiğinde doğru alanı nasıl seçebilirim.
Forma bir adet ImageViewer, TrackBar1, Rectangle ekliyorum.
private Selecting: Boolean;
procedure TForm1.ImageViewerMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); begin Selecting := true; Rectangle.Position.X := X; Rectangle.Position.Y := Y; Rectangle.Width := 0; Rectangle.Height := 0; end;
procedure TForm1.ImageViewerMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Single); begin if Selecting then begin Rectangle.Width := X - Rectangle.Position.X; Rectangle.Height := Y - Rectangle.Position.Y; end; end;
procedure TForm1.ImageViewerMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); begin if Selecting then begin Selecting := False; Rectangle.Width := X - Rectangle.Position.X; Rectangle.Height := Y - Rectangle.Position.Y; ImageViewer.RealignContent; end; end;
procedure TForm1.TrackBar1Change(Sender: TObject); begin ImageViewer.BitmapScale := TrackBar1.Value / 100; end;
procedure TForm1.Button3Click(Sender: TObject); begin Memo1.Lines.Add( CurrToStr(Round(Rectangle.Position.X)* TrackBar1.Value / 100)); Memo1.Lines.Add( CurrToStr(Round(Rectangle.Position.Y)* TrackBar1.Value / 100)); Memo1.Lines.Add( CurrToStr(Round(Rectangle.Width)* TrackBar1.Value / 100)); Memo1.Lines.Add( CurrToStr(Round(Rectangle.Height)* TrackBar1.Value / 100)); end;

http://s3.dosya.tc/server17/ezxe6h/Bitmap.rar.html Örnek kodlar


