ВОбщем в программе простым нажатием мыши и вождением по загруженному рисунку рисуется прямоугольник красного цвета. Но красным он бывает только на цветных картинках... а вот если загрузить черно-белую, то и прямоугольник становится серым.... в чем тут дело?
P.S. На форме Image, Button, Label, OpenPictureDialog
| Код | var Form1: TForm1; Sel: integer; XX1,YY1: integer; XX2,YY2: integer; procedure Draw(xx_1,yy_1,xx_2,yy_2:integer);
implementation uses Unit2; {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin Form1.DoubleBuffered:=true; Image1.Canvas.Brush.Color:=clWhite; Image1.Canvas.Pen.Width:=1; Sel:=1; end; procedure Draw(xx_1,yy_1,xx_2,yy_2:integer); begin if (xx_2<0) then xx_2:=0; if (yy_2<0) then yy_2:=0; if (xx_2>433) then xx_2:=433; if (yy_2>313) then yy_2:=313;
Form1.Image1.Picture.LoadFromFile(Form1.Label8.Caption); Form1.Image1.Canvas.Brush.Style:=bsClear; Form1.Image1.Canvas.Pen.Width:=1; Form1.Image1.Canvas.Pen.Color:=clRed; Form1.Image1.Canvas.Rectangle(xx_1,yy_1,xx_2,yy_2); end; function TForm1.VidelenieNameFile:string; var s1:string; F:TextFile; begin if OpenPictureDialog1.Execute then begin AssignFile(F, OpenPictureDialog1.Filename); Reset(F); s1:=OpenPictureDialog1.Filename; CloseFile(F); end else s1:='Icon.ico'; ExtractFileName(s1); VidelenieNameFile:=s1; end; procedure TForm1.Button3Click(Sender: TObject); begin Label8.Caption:=VidelenieNameFile; Image1.Picture.LoadFromFile(Label8.Caption); end; procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer); begin if (Label8.Caption<>'ссылка изображения') then if (Sel=2 ) then begin XX2:=X; YY2:=Y; Draw(XX1,YY1,XX2,YY2); end end; procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin Form1.Image1.Picture.LoadFromFile(Form1.Label8.Caption); XX1:=X; YY1:=Y; Sel:=2; end; procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin Sel:=1; end; end.
|
Если все еще кому-нить надо....
|