Unidad Unidad1;
interfaz
usos
Windows, mensajes, sysutils, variantes, clases, gráficos, controles, formularios,
Diálogo, extctrls, stdctrls, jpeg;
const lMousedown = false;
tipo
TForm1 = class (tForm)
Edit1: tedit;
Panel2: Tpanel;
Panel1: Tpanel;
Panel3: Tpanel;
Panel4: Tpanel;
Panel5: Tpanel;
Panel6: Tpanel;
Panel7: Tpanel;
Panel8: Tpanel;
Panel11: Tpanel;
Panel22: tpanel;
Panel33: tpanel;
Panel44: Tpanel;
Panel55: Tpanel;
Panel66: Tpanel;
Panel77: Tpanel;
Panel88: tpanel;
Botón 1: tbutton;
Procedimiento edit1MouseMove (remitente: tobject; shift: tshiftstate; x,
Y: entero);
procedimiento edit1MousEdown (remitente: tobject; botón: tmouseButton;
Cambio: tshiftstate; X, y: entero);
procedimiento edit1MouseUp (remitente: tobject; botón: tmouseButton;
Cambio: tshiftstate; X, y: entero);
procedimiento FormMousEdown (remitente: tobject; botón: tmouseButton;
Cambio: tshiftstate; X, y: entero);
Procedimiento Button1MousEdown (remitente: Tobject; botón: TMouseButton;
Cambio: tshiftstate; X, y: entero);
Button de procedimiento1MouseMove (remitente: tobject; shift: tshiftstate; x,
Y: entero);
Procedimiento Button1MouseUp (remitente: tobject; botón: tmouseButton;
Cambio: tshiftstate; X, y: entero);
privado
{Declaraciones privadas}
público
{Declaraciones públicas}
fin;
varilla
Form1: tform1;
S, A: booleano;
implementación
{$ R *.dfm}
procedimiento manipulateControl (control: tcontrol; shift: tshiftstate; x, y, precisión: integer);
var sc_manipulate: word;
comenzar
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// 光标在控件的最左侧 ****************************************** ********************
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
if (x <= precision) y (y> precisión) y (y <control.Height-Precision)
Entonces comienza
Sc_manipulate: = $ f001;
Control.cursor: = crsizewe;
fin
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// 光标在控件的最右侧 ****************************************** ********************
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
else if (x> = control.Width-Precision) y (y> precisión) y (y <control.Height-Precision)
Entonces comienza
Sc_manipulate: = $ f002;
Control.cursor: = crsizewe;
fin
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// 光标在控件的最上侧 ********************************************** ******************
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
else if (x> precision) y (x <control.width-precision) y (y <= precisión)
Entonces comienza
Sc_manipulate: = $ f003;
Control.cursor: = crsizens;
fin
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// 光标在控件的左上角 ********************************************** ******************
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
else if (x <= precision) y (y <= precisión)
Entonces comienza
Sc_manipulate: = $ f004;
Control.cursor: = crsizenwse;
fin
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// 光标在控件的右上角 ********************************************** ******************
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
else if (x> = control.Width-Precision) y (y <= precisión)
Entonces comienza
Sc_manipulate: = $ f005;
Control.cursor: = crsizenesw;
fin
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// 光标在控件的最下侧 ****************************************** ********************
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
else if (x> precision) y (x <control.width-precision) y (y> = control.Height-Precision)
Entonces comienza
Sc_manipulate: = $ f006;
Control.cursor: = crsizens;
fin
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// 光标在控件的左下角 ********************************************** ******************
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
else if (x <= precision) y (y> = control.Height-Precision)
Entonces comienza
Sc_manipulate: = $ f007;
Control.cursor: = crsizenesw;
fin
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// 光标在控件的右下角 ********************************************** ******************
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
else if (x> = control.Width-Precision) y (y> = control.Height-Precision)
Entonces comienza
Sc_manipulate: = $ f008;
Control.cursor: = crsizenwse;
fin
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// 光标在控件的客户区(移动整个控件) **************************************** *****
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
else if (x> 5) y (y> 5) y (x <control.width-5) y (y <control.height-5)
Entonces comienza
Sc_manipulate: = $ f009;
Control.cursor: = crsizeall;
fin
De lo contrario, comience
Sc_manipulate: = $ f000;
Control.cursor: = CRDefault;
fin;
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
if shift = [ssleft] entonces
comenzar
DesasasteeCapture;
Control.perform (WM_SYSCOMMAND, SC_MANIPULE, 0);
fin;
fin;
Procedimiento tForm1.Edit1MouseMove (remitente: tobject; shift: tshiftState; x,
Y: entero);
comenzar
ManipulateControl ((remitente como tcontrol), shift, x, y, 9);
edit1.hint: = 'edit1: tedit'+chr (13)+'origen:'+intToStr (edit1.top)+','
+IntToStr (edit1.left)+';'+'size:'+intToStr (edit1.width)+intToStr (edit1.height)+chr (13)+'Tab Stop: ture; orden: 0';
Si s = verdadero entonces
comenzar
a: = falso;
panel1.visible: = true; panel2.visible: = true; panel3.visible: = true;
panel4.visible: = true; panel5.visible: = true;
panel6.visible: = true; panel7.visible: = true; panel8.visible: = true;
panel1.top:=Edit1.top-6;
panel1.left: = edit1.left-6;
panel2.top:=Edit1.Top+(Edit1.Height div 2) -3;
panel2.left: = edit1.left-6;
panel3.top:=Edit1.Top+Edit1.Height;
panel3.left: = edit1.left-6;
panel4.top:=Edit1.top-6;
panel4.left: = edit1.left+(edit1.width div 2);
panel5.top:=Edit1.Top+Edit1.Height;
panel5.left: = edit1.left+(edit1.width div 2);
panel6.top:=Edit1.top-6;
panel6.left: = edit1.left+edit1.width;
panel7.top:=Edit1.Top+(Edit1.Height div 2) -3;
panel7.left: = edit1.left+edit1.width;
panel8.top:=Edit1.Top+Edit1.Height;
panel8.left: = edit1.left+edit1.width;
fin;
fin;
procedimiento tForm1.Edit1MousEdown (remitente: tobject; botón: tmouseButton;
Cambio: tshiftstate; X, y: entero);
comenzar
panel11.visible: = false; panel22.Visible: = false; panel33.visible: = false;
panel44.visible: = false; panel55.visible: = false;
panel66.visible: = false; panel77.visible: = false; panel88.visible: = false;
s: = verdadero;
a: = falso;
panel1.visible: = true; panel2.visible: = true; panel3.visible: = true;
panel4.visible: = true; panel5.visible: = true;
panel6.visible: = true; panel7.visible: = true; panel8.visible: = true;
panel1.top:=Edit1.top-6;
panel1.left: = edit1.left-6;
panel2.top:=Edit1.Top+(Edit1.Height div 2) -3;
panel2.left: = edit1.left-6;
panel3.top:=Edit1.Top+Edit1.Height;
panel3.left: = edit1.left-6;
panel4.top:=Edit1.top-6;
panel4.left: = edit1.left+(edit1.width div 2);
panel5.top:=Edit1.Top+Edit1.Height;
panel5.left: = edit1.left+(edit1.width div 2);
panel6.top:=Edit1.top-6;
panel6.left: = edit1.left+edit1.width;
panel7.top:=Edit1.Top+(Edit1.Height div 2) -3;
panel7.left: = edit1.left+edit1.width;
panel8.top:=Edit1.Top+Edit1.Height;
panel8.left: = edit1.left+edit1.width;
fin;
procedimiento tForm1.Edit1MouseUp (remitente: tobject; botón: tmouseButton;
Cambio: tshiftstate; X, y: entero);
comenzar
Si s = verdadero entonces
comenzar
a: = falso;
S: = falso;
panel1.visible: = true; panel2.visible: = true; panel3.visible: = true;
panel4.visible: = true; panel5.visible: = true;
panel6.visible: = true; panel7.visible: = true; panel8.visible: = true;
panel1.top:=Edit1.top-6;
panel1.left: = edit1.left-6;
panel2.top:=Edit1.Top+(Edit1.Height div 2) -3;
panel2.left: = edit1.left-6;
panel3.top:=Edit1.Top+Edit1.Height;
panel3.left: = edit1.left-6;
panel4.top:=Edit1.top-6;
panel4.left: = edit1.left+(edit1.width div 2);
panel5.top:=Edit1.Top+Edit1.Height;
panel5.left: = edit1.left+(edit1.width div 2);
panel6.top:=Edit1.top-6;
panel6.left: = edit1.left+edit1.width;
panel7.top:=Edit1.Top+(Edit1.Height div 2) -3;
panel7.left: = edit1.left+edit1.width;
panel8.top:=Edit1.Top+Edit1.Height;
panel8.left: = edit1.left+edit1.width;
fin;
fin;
Procedimiento tForm1.FormMousEdown (remitente: tobject; botón: tMouseButton;
Cambio: tshiftstate; X, y: entero);
comenzar
a: = falso;
S: = falso;
panel1.visible: = false; panel2.visible: = false; panel3.visible: = false;
panel4.visible: = false; panel5.visible: = falso;
panel6.visible: = false; panel7.visible: = false; panel8.visible: = false;
// **********
panel11.visible: = false; panel22.Visible: = false; panel33.visible: = false;
panel44.visible: = false; panel55.visible: = false;
panel66.visible: = false; panel77.visible: = false; panel88.visible: = false;
fin;
procedimiento tForm1.Button1MouseUp (remitente: tobject; botón: tmouseButton; shift: tshiftState; x, y: entero);
Comience si a = verdadero entonces
comenzar
a: = falso;
S: = falso;
panel1.visible: = false; panel2.visible: = false; panel3.visible: = false;
panel4.visible: = false; panel5.visible: = falso;
panel6.visible: = false; panel7.visible: = false; panel8.visible: = false;
panel11.visible: = true;
panel22.visible: = true;
panel33.visible: = true;
panel44.visible: = true;
panel55.visible: = true;
panel66.visible: = true;
panel77.visible: = true;
panel88.visible: = true;
panel11.top:=Button1.top-6;
panel11.left: = button1.left-6;
panel22.top:=Button1.Top+(Button1.Height div 2) -3;
panel22.left: = button1.left-6;
panel33.top:=Button1.Top+Button1.Height;
panel33.left: = button1.left-6;
panel44.top:=button1.top-6;
panel44.left: = Button1.left+(Button1.Width Div 2);
panel55.top:=Button1.Top+Button1.Height;
panel55.left: = Button1.left+(Button1.Width Div 2);
panel66.top:=Button1.top-6;
panel66.left: = button1.left+button1.width;
panel77.top:=Button1.top+(Button1.Height div 2) -3;
panel77.left: = button1.left+button1.width;
panel88.top:=Button1.Top+Button1.Height;
panel88.left: = button1.left+button1.width;
fin;
fin;
Procedimiento tForm1.Button1MousEdown (remitente: tobject; botón: tmouseButton;
Cambio: tshiftstate; X, y: entero);
comenzar
a: = verdadero;
S: = falso;
panel1.visible: = false; panel2.visible: = false; panel3.visible: = false;
panel4.visible: = false; panel5.visible: = falso;
panel6.visible: = false; panel7.visible: = false; panel8.visible: = false;
panel11.visible: = true; panel22.visible: = true; panel33.visible: = true;
panel44.visible: = true; panel55.visible: = true;
panel66.visible: = true; panel77.visible: = true; panel88.visible: = true;
panel11.top:=Button1.top-6;
panel11.left: = button1.left-6;
panel22.top:=Button1.Top+(Button1.Height div 2) -3;
panel22.left: = button1.left-6;
panel33.top:=Button1.Top+Button1.Height;
panel33.left: = button1.left-6;
panel44.top:=button1.top-6;
panel44.left: = Button1.left+(Button1.Width Div 2);
panel55.top:=Button1.Top+Button1.Height;
panel55.left: = Button1.left+(Button1.Width Div 2);
panel66.top:=Button1.top-6;
panel66.left: = button1.left+button1.width;
panel77.top:=Button1.top+(Button1.Height div 2) -3;
panel77.left: = button1.left+button1.width;
panel88.top:=Button1.Top+Button1.Height;
panel88.left: = button1.left+button1.width;
fin;
Procedimiento tForm1.Button1MousEmove (remitente: tobject; shift: tshiftState; x,
Y: entero);
comenzar
ManipulateControl ((remitente como tcontrol), shift, x, y, 9);
edit1.hint: = 'Button1: tbutton'+chr (13)+'origen:'+intToStr (botón1.top)+','
+IntToStr (Button1.left)+';'+'tamaño:'+intToStr (Button1.Width)+intToStr (Button1.Height)+Chr (13)+'Tab Stop: Ture; Order: 0';
Si a = verdadero entonces
comenzar
S: = falso;
panel1.visible: = false; panel2.visible: = false; panel3.visible: = false;
panel4.visible: = false; panel5.visible: = falso;
panel6.visible: = false; panel7.visible: = false; panel8.visible: = false;
panel11.visible: = true; panel22.visible: = true; panel33.visible: = true;
panel44.visible: = true; panel55.visible: = true;
panel66.visible: = true; panel77.visible: = true; panel88.visible: = true;
panel11.top:=Button1.top-6;
panel11.left: = button1.left-6;
panel22.top:=Button1.Top+(Button1.Height div 2) -3;
panel22.left: = button1.left-6;
panel33.top:=Button1.Top+Button1.Height;
panel33.left: = button1.left-6;
panel44.top:=button1.top-6;
panel44.left: = Button1.left+(Button1.Width Div 2);
panel55.top:=Button1.Top+Button1.Height;
panel55.left: = Button1.left+(Button1.Width Div 2);
panel66.top:=Button1.top-6;
panel66.left: = button1.left+button1.width;
panel77.top:=Button1.top+(Button1.Height div 2) -3;
panel77.left: = button1.left+button1.width;
panel88.top:=Button1.Top+Button1.Height;
panel88.left: = button1.left+button1.width;
fin;
fin;
fin.