15. december 2004 - 10:57
Der er
8 kommentarer og 1 løsning
Hvordan laver man en "markeringsfirkant"?
Hej, Er der nogen der ved hvordan man laver sådan en "markeringsfirkant" af den type som fremkommer når man markerer flere ikoner med musen i Windows?
Annonceindlæg fra DE-CIX
Edge computing: behandling ved kilden
Edge computing revolutionerer den måde, data behandles på, ved at bringe kapacitet og ydeevne tættere på dér, hvor der er behov for det.
15. april 2025
15. december 2004 - 12:22
#6
Jeg HAR læst det, og det de mener med "rubber banding" er det samme som der sker hvis du vil tegne en ret linie i Word eller Paint. Den tegner stregen mens man trækker i den. Det har intet med firkantede markeringer at gøre.
15. december 2004 - 19:54
#8
Hej futterama Prøv denne kode, som tegner en firkant på formen. //EHT unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); private { Private declarations } public { Public declarations } end; var Form1: TForm1; var A, B, C, D: TPoint; XStart, YStart: Integer; const CanDraw:boolean = false; implementation {$R *.DFM} procedure Tegn(PenMode: TPenMode; PenColor: integer; Penwidth: integer;PenStyle:TPenStyle); begin with Form1.Canvas do begin Pen.Mode := PenMode; Pen.Style := PenStyle; Pen.Width := Penwidth; Pen.color := Pencolor; PolyLine([A, B, D, C, A]); end; end; procedure StartSlutFelt(X, Y: Integer); begin A.X := XStart; A.Y := YStart; B.X := X; B.Y := A.Y; C.X := A.X; C.Y := Y; D.X := B.X; D.Y := C.Y; Tegn(pmNotXor, clBlack, 1,psDot); end; procedure FlytteFelt(X, Y: integer); begin Tegn(pmNotXor, clBlack, 1,psDot); //tegner A.X := XStart; A.Y := YStart; B.X := X; B.Y := A.Y; C.X := A.X; C.Y := Y; D.X := B.X; D.Y := C.Y; Tegn(pmNotXor, clBlack, 1,psDot); //sletter igen end; procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if CanDraw then FlytteFelt(X, Y); end; procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin XStart := X; YStart := Y; StartSlutFelt(X, Y); CanDraw := true; end; procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin CanDraw := false; FlytteFelt(X, Y); StartSlutFelt(X,Y); end; end.