Ver Mensaje Individual
  #2  
Antiguo 30-11-2007
mierda mierda is offline
Miembro
 
Registrado: may 2006
Posts: 129
Reputación: 18
mierda Va por buen camino
hola, yo lo hago asi:

Con estos 3 procedures, solo te falta adaptarlos a tus necesidades.
Tienes que ponerlos en esos eventos:

Código Delphi [-]
 
//--------------------------------------------------------
// con estos 3 procedures MouseDown,MouseUp, Mousemove
// hacemos lo de mover los items de la pantalla
//-------------------------------------------------------
procedure TForm1.QrDBEan1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var i: integer; comp:string;
begin
    guardado := false;
    Screen.Cursor := crSizeAll;
    // sino teniamos seleccionado el item, se selecciona
    ComboBox1.ItemIndex := combobox1.Items.IndexOf((Sender as Tcomponent).name);
    // se pone a true una variable goblal que es la que dice que se esta moviendo
    moving:=true;
    // cogemos los ultimos valores antes de moverlo
    lastx:=x;
    lasty:=y;
    // si es un texto le cogemos el el text y lo ponemos
    comp := copy(ComboBox1.Text,0,5);
    if (comp = 'texto') then
      begin
        Tcaption.Text := (Sender as Tlabel).Caption;
        if ((Sender as Tlabel).Alignment = taLeftJustify) then Calign.ItemIndex := 0;
        if ((Sender as Tlabel).Alignment = taRightJustify) then Calign.ItemIndex := 1;
        if ((Sender as Tlabel).Alignment = tacenter) then Calign.ItemIndex := 2;
        if ((sender as tlabel).WordWrap = true) then
          Checksalto.Checked := true
          else
          Checksalto.Checked := false;
        Rxgrados.Value := ((sender) as tlabel).Tag;
      end
    else
      Tcaption.Text := '';
    if (comp = 'shape') then
      begin
        if (sender as tshape).Shape = strectangle then ComboBox2.ItemIndex := 0;
        if (sender as tshape).Shape = stcircle then ComboBox2.ItemIndex := 1;
        if (sender as tshape).Pen.Style = pssolid then ComboBox3.ItemIndex := 0;
        if (sender as tshape).Pen.Style = psdot then ComboBox3.ItemIndex := 1;
        RxSpinEdit1.Value := (sender as tshape).Pen.Width;
      end;
end;
 
procedure TForm1.QrDBEan1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var i: integer; comp: string;
begin
comp := copy(ComboBox1.Text,0,5);
  for i:=0 to (form1.ComponentCount - 1) do
      if form1.Components[i].Name = ComboBox1.Text  then
      begin
        if ((moving = true) and not (SSCtrl in Shift)) then begin
             // si es el objeto que tenemos seleccionado lo movemos en tiempo real
             (form1.Components[i] as tcontrol).left:=(form1.Components[i] as Tcontrol).left+(x-lastx);
             (form1.Components[i] as tcontrol).top:=(form1.Components[i] as Tcontrol).top+(y-lasty);
            end;
      end;
end;
procedure TForm1.QrDBEan1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var i: integer; comp: string;
begin
comp := copy(ComboBox1.Text,0,5);
  for i:=0 to (form1.ComponentCount - 1) do
      if form1.Components[i].Name = ComboBox1.Text  then
      begin
        if ((moving = true)) then
           begin
              if (SSCtrl in Shift) then
              // si es el objeto que tenemos seleccionado lo movemos en tiempo real
                begin
                  (form1.Components[i] as tcontrol).width:=(form1.Components[i] as Tcontrol).width+(x-lastx);
                  (form1.Components[i] as tcontrol).height:=(form1.Components[i] as Tcontrol).height+(y-lasty);
                end
              else
                begin
                end;
            end;
      end;
 // dejamos de apretar el boton entonces ponemos la variable a false y cambiamos el raton
 moving:=false;
 Screen.Cursor := crArrow;
end;
Responder Con Cita