(7) Explorez la forme de l'icône (icône)
Créez un nouveau formulaire3, enregistrez-vous en capture3.pas. Définissez les quatre propriétés de l'attribut BorderICONS sur FALSE.
Borderstyle est défini sur bsnone, FormStyle est défini sur fsstayontop.
Une variable privée: FDragging: Boolean; deux variables publiques: Frect: Trect, FBMP: TBITMAP;
Capture unitaire3;
interface
usages
Windows, messages, systèmes, variantes, classes, graphiques, contrôles, formulaires,
Dialogues;
taper
Tform3 = classe (tform)
Procédure FormCreate (expéditeur: tobject);
Procédure FormMousDown (expéditeur: tobject; bouton: tmouseButton;
Shift: tshiftstate; x, y: entier);
Procédure FormMouseMove (expéditeur: tobject; Maj: tshiftState;
X, y: entier);
Procédure FormMouseUp (expéditeur: tobject; bouton: tmouseButton;
Shift: tshiftstate; x, y: entier);
Procédure Formativate (expéditeur: tobject);
Procédure FormDestroy (expéditeur: tobject);
Procédure FormPaint (expéditeur: tobject);
Privé
fdragging: booléen;
publique
Frect: Trect;
FBMP: tbitmap;
fin;
var
Form3: TForm3;
Mise en œuvre
{$ R * .dfm}
// Créez un nouveau curseur de curseur personnalisé et placez-le dans CAPTURE3.RES RESSOURCE
// Dans le fichier, il y a un bord rectangulaire blanc de 32 * 32 pour indiquer la plage de la capture.
Procédure TForm3.FormCreate (Sender: Tobject);
var ADC: HDC;
const crox = -19;
Commencer
Screen.Cursors [CRBOX]: = LoadCursor (Hinstance, 'cursor_2');
Curseur: = crox;
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);
Libéré (0, ADC);
SetBounds (0,0, écran.Width, Screen.Height);
fin;
Procédure TForm3.FormmousDown (Sender: Tobject; Bouton: TMouseButton;
Shift: tshiftstate; x, y: entier);
Commencer
Si mbleft = bouton, alors commencez
fdragging: = true;
SetRect (Frect, x, y, x + 32, y + 32);
Canvas.Drawfocusrect (Frect);
fin;
fin;
Procédure TForm3.FormMouseMove (Sender: Tobject; Shift: TshiftState;
X, y: entier);
Commencer
Si fdragging alors commencez
Canvas.Drawfocusrect (Frect);
Frect.left: = x;
Frect.top: = y;
Frect.Right: = x + 32;
frect.bottom: = y + 32;
Canvas.Drawfocusrect (Frect);
fin;
fin;
Procédure TForm3.FormMouseUp (Sender: Tobject; Bouton: TMouseButton;
Shift: tshiftstate; x, y: entier);
Commencer
ModalResult: = MROK;
fin;
procédure tform3.formactivate (expéditeur: tobject);
const Crhand = -18;
Commencer
Screp.cursors [crhand]: = loadCursor (hinstance, phar ('cursor_1'));
Curseur: = crhand;
fin;
Procédure TForm3.FormDestroy (expéditeur: tobject);
Commencer
fbmp.free;
Screen.Cursor: = Crdefault;
fin;
procédure tform3.formpaint (expéditeur: tobject);
Commencer
Canvas.Draw (0,0, FBMP);
fin;
fin.