(7) Ratea la forma del icono (icono)
Cree un nuevo Form3, guarde como capture3.pas. Establezca las cuatro propiedades del atributo Bordericons en falso.
Borderstyle está configurado en BSNone, FormStyle está configurado en FSStayontop.
Una variable privada: fdragging: boolean;
captura de unidad3;
interfaz
usos
Windows, mensajes, sysutils, variantes, clases, gráficos, controles, formularios,
Diálogo;
tipo
TForm3 = class (tForm)
Procedimiento formulcreate (remitente: tobject);
procedimiento FormMousEdown (remitente: tobject; botón: tmouseButton;
Cambio: tshiftstate;
procedimiento FormMouseMove (remitente: tobject; shift: tshiftState;
X, y: entero);
Procedimiento FormMouseUp (remitente: tobject; botón: tmouseButton;
Cambio: tshiftstate;
procedimiento FormActivate (remitente: tobject);
procedimiento FormDestrOY (remitente: tobject);
procedimiento FormPaint (remitente: tobject);
Privado
fdragging: booleano;
público
frect: trect;
FBMP: TBITMAP;
fin;
varilla
Form3: tForm3;
Implementación
{$ R *.dfm}
// Crear un nuevo cursor personalizado Cursor_2 y colocarlo en el recurso Capture3.Res
// En el archivo, hay un borde rectangular blanco de 32*32 para indicar el rango de la captura.
procedimiento tForm3.FormCreate (remitente: tobject);
var adc: hdc;
const crbox = -19;
Comenzar
Screen.cursors [crbox]: = loadCursor (hinstance, 'cursor_2');
Cursor: = crbox;
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);
LiberC (0, ADC);
SetBounds (0,0, screen.width, pantalla.Height);
fin;
procedimiento tform3.FormMousEdown (remitente: tobject; botón: tmouseButton;
Cambio: tshiftstate;
Comenzar
Si mbleft = botón entonces comience
fdragging: = verdadero;
SetRect (frect, x, y, x+32, y+32);
Canvas.DrawFocusRect (frect);
fin;
fin;
procedimiento tForm3.FormMouseMove (remitente: tobject; shift: tshiftState;
X, y: entero);
Comenzar
Si fdragging entonces comienza
Canvas.DrawFocusRect (frect);
frect.left: = x;
frect.top: = y;
frect.right: = x+32;
frect.bottom: = y+32;
Canvas.DrawFocusRect (frect);
fin;
fin;
procedimiento tform3.FormMouseUp (remitente: tobject; botón: tmouseButton;
Cambio: tshiftstate;
Comenzar
Modalresult: = mROK;
fin;
procedimiento tForm3.FormActivate (remitente: tobject);
const CRHAND = -18;
Comenzar
Screen.cursors [CRHAND]: = LoadCursor (HinStance, PChar ('Cursor_1'));
Cursor: = crhand;
fin;
procedimiento tform3.FormDestroy (remitente: tobject);
Comenzar
FBMP.Free;
Screen.cursor: = CRDefault;
fin;
procedimiento tForm3.FormPaint (remitente: tobject);
Comenzar
Canvas.draw (0,0, FBMP);
fin;
fin.