Ramka na TImage

0

Czesc.

Mam problem, mianowicie potrzebuje zrobic prostokat do zaznaczania obaszaru na TImage (taki jak w programach graficznych) i mam z tym problem. Wiem ze trzeba uzyc OnMouseDown z ssLeft OnMouseMove I Down. Nie wiem jak zrealizowac OnMouseMove tak, zeby nie znikalo mi to co jest wpisane w TImage. (probowalem Canvas.CopyMode na XOR, ale nic to nie daje, chba cos zle robie.)
Byl bym bardzo wdzieczny gdyby ktos podzielil sie kodem zrodlowym realizujacym w/w funkcje, lub dal jakies namiary.

Pozdrawiam.

0

var
x2,y2 : integer;

procedure onmousedown
x2 := x;
y2 := y;

i w procedure onmouseup
noxx.copy_image_rect(image1,image2,rect(x2,y2,x,y),clblack);

(BTW noxx to moj unit :DDD) oto kod do niego

[...]
procedure copy_image_rect(Form_image : TImage; To_image : TImage; Rect : TRect; backgroundcolor : TColor);
begin
To_image.Canvas.BrushCopy(Rect,Form_image.picture.bitmap,rect,backgroundcolor);
end;
[...]

==========
ten kod nie rysuje takiego obramowania ale za to wycina ten kwadrat i kopjuje go do image2. - zmienisz sobie kod :) a jak nie to odpisz.

0

poprzegladaj zrodla dolaczone do Delphi
demos\doc\graphex
moze cos ci to pomoze :-) ---=-=[ Delphi 3, 6 ]=-=-
-=-=-==[ LKS ]==-=-=-
-=[ [email protected] ]=-

0

Thx za oddzew.
Chyba wyrazilem sie nieprecyzyjnie.
Chodzi mi o to, ze ta ramka ma TYLKO, pokazac jaki obszar sie zaznacza, do niczego innego jej nie potrzebuje. Do dalszej "obrobki" starczaja mi pozycje myszy z pod Down i Up.
Ukulalem sobie taki kod:
(pod OnMouseDown jest przypisanie StartX:=X ...)
&ltCODE&gt
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var RectFrame : TRect;
Region1 : hRGN;
begin
if (ssLeft in Shift) then
begin
Image1.Canvas.Pen.Style := psDash;
Image1.Canvas.Brush.Color := clBlack;
Region1 := CreateRectRgn(StartX,StartY,X,Y);
FrameRgn(Image1.Canvas.Handle, Region1, Canvas.Brush.Handle, 2,2); //to obczailem w WinAPI, ale rownie dobrze moze byc Rect z Canvas.
Image1.Repaint;
end;
end;
&lt/CODE&gt
i niby to dziala, ale niestety to rysowaniko pozostawia wieele do zyczenia.
Nie wiem jak zrobic tak zeby dalo sie tego uzywac.

Pozdrawiam i prosze o pomoc

1 użytkowników online, w tym zalogowanych: 0, gości: 1