(Vi) Gebietserfassungsformular
Erstellen Sie ein neues Formular1, speichern Sie als Capture1.pas. Setzen Sie die vier Eigenschaften der Attribut -Bordericons auf false.
BorderSyle ist auf bsnone eingestellt, Cursor ist auf crcross eingestellt, Formstyle ist auf fSstayontop eingestellt.
Fügen Sie eine private Variable hinzu: FDRAGGing: Boolean;
Die Funktion von Form1: Erstellt, wenn Sie den Bereich greifen, verschwindet, nachdem er das Bild gesammelt hat.
Einheit capture1;
Schnittstelle
Verwendung
Fenster, Nachrichten, Systeme, Varianten, Klassen, Grafiken, Steuerelemente, Formulare,
Dialoge;
Typ
Tform1 = Klasse (tform)
Prozedur Formcreate (Absender: Tobject);
VerfahrensformularDestroy (Absender: Tobject);
Verfahrensformung (Absender: Tobject);
Verfahrensformmousedown (Absender: Tobject; Taste: TMouseButton;
Verschiebung: TShiftState; x, y: Ganzzahl);
Verfahrensformmousemove (Absender: Tobject; Verschiebung: TShiftstate; x,
Y: Ganzzahl);
Prozedur FormMouseUp (Absender: Tobject; Taste: TMouseButton;
Verschiebung: TShiftState; x, y: Ganzzahl);
Privat
FDRAGGING: Boolean;
öffentlich
FRECT: TRECT;
FBMP: tbitmap;
Ende;
var
Form1: tform1;
Durchführung
{$ R *.dfm}
procedure tform1.formcreate (Absender: tobject);
Var ADC: HDC;
Beginnen
FBMP: = tbitmap.create;
fbmp.width: = screen.width;
fbmp.height: = screen.height;
ADC: = getdc (0);
Bitblt (fbmp.canvas.handle, 0,0, screen.width, screen.height, adc, 0,0, srccopy);
LoVedC (0, adc,);
Setbounds (0,0, screen.width, screen.height);
Ende;
procedure tform1.FormDestroy (Absender: Tobject);
Beginnen
fbmp.free;
Ende;
procedure tform1.formpaint (Absender: tobject);
Beginnen
Canvas.draw (0,0, fbmp);
Ende;
// Wenn Sie die linke Maustaste drücken, stellen Sie den Rechteck -FRECT so ein, dass es sich nur um einen Punkt handelt.
// Zeichne dieses Rechteck mit Drawfocusrect
Prozedur TForm1.FormmouseDown (Absender: Tobject; Taste: tmouseButton;
Verschiebung: TShiftState; x, y: Ganzzahl);
Beginnen
Wenn Button = Mbleft dann beginnen
fdagging: = wahr;
SetRect (FRECT, X, Y, X, Y);
Canvas.DrawfocusRect (FRECT);
Ende;
Ende;
// Wenn sich die Maus bewegt, bestimmen Sie, ob sie sich in der Zeichnung befindet (drücken
// Machen Sie die untere rechte Ecke die aktuelle Mausposition und zeichnen Sie ein Rechteck beim Aufrufen von DrawfocusRect
Prozedur tform1.FormMousemove (Absender: Tobject; Shift: TShiftState; x,
Y: Ganzzahl);
Beginnen
Wenn FDRAGGing dann beginnen
Canvas.DrawfocusRect (FRECT);
frect.Right: = x;
frect.bottom: = y;
Canvas.DrawfocusRect (FRECT);
Ende;
Ende;
// Beurteile, ob es in der Zeichnung ist (drücken Sie die linke Maustaste), wenn die Maus auftaucht,
// Drawfocusrect das Rechteck zurücksetzen
procedure tform1.formMouseUp (Absender: Tobject; Taste: tmouseButton;
Verschiebung: TShiftState; x, y: Ganzzahl);
Beginnen
Wenn FDRAGGing dann beginnen
Canvas.DrawfocusRect (FRECT);
fdagging: = falsch;
Ende;
ModalResult: = MROK;
Ende;
Ende.