Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-03-2012
CarlosAlberto CarlosAlberto is offline
Miembro
 
Registrado: ago 2010
Posts: 78
Poder: 14
CarlosAlberto Va por buen camino
Mover un label en tiempo de ejecución

Estimados miembros del club: quisiera saber ¿cómo puedo mover un label dentro de un panel o en el mismo formulario?. Tengo otra pregunta: ¿cómo puedo crear en tiempo de ejecución del programa un componente Label?
Muchas gracias y saludos.
Carlos Alberto
Responder Con Cita
  #2  
Antiguo 22-03-2012
Avatar de juanlaplata
juanlaplata juanlaplata is offline
Miembro
 
Registrado: ene 2007
Ubicación: La Plata, Bs. As. (Argentina)
Posts: 212
Poder: 18
juanlaplata Va por buen camino
Hay un ejemplo muy bueno aqui mismo en el FTP del club..
http://terawiki.clubdelphi.com/Delph...tes-Funciones/

Busca "Componente_resize_controls_y_demo"

Saludos
Responder Con Cita
  #3  
Antiguo 22-03-2012
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola CarlossAlberto, para mover el Label dentro de un panel solo tienes que cambiar su Parent y viceversa.

Código Delphi [-]
  Label.Parent := Panel1;

si quieres puedes utilizar los eventos de arrastrar y soltar.

Para crear un Label en ejecución:

Código Delphi [-]
var
 Lab:TLabel;
begin
 Lab:=TLabel.Create(self);
 With Lab do
 begin
  Parent:=self;
  Name:='nombre';
  Caption:='Label';
  Left:=10;
  Top:=10;
 end;

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #4  
Antiguo 22-03-2012
Avatar de Cañones
Cañones Cañones is offline
Miembro
 
Registrado: ene 2007
Ubicación: La Paz Entre Ríos
Posts: 354
Poder: 18
Cañones Va por buen camino
Tal vez este componente del compañero Neftalí te sirva.
Saludos.
Responder Con Cita
  #5  
Antiguo 22-03-2012
CarlosAlberto CarlosAlberto is offline
Miembro
 
Registrado: ago 2010
Posts: 78
Poder: 14
CarlosAlberto Va por buen camino
Crear un label en tiempo de ejecución

Estimada Caro: gracias por la repuesta. Crearlo pude hacerlo pero para moverlo dentro del form donde lo cree ¿cómo hago? o ¿cómo llego a un evento del label ceado?
Saludos.
Carlos Alberto
Responder Con Cita
  #6  
Antiguo 22-03-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Carlos.

Si queres utilizar Drag&Drop sobre el TLabel que creaste para situarlo en el TPanel, podrías hacer:
Código Delphi [-]
  ...
  private
    FLabel: TLabel;
    procedure LabelMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
  public
  end;
...

implementation

(* Label OnMouseDown *)
procedure TForm1.LabelMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
 TLabel(FindComponent('MiLabel')).BeginDrag(True);
end;

(* Crear Label *)
procedure TForm1.Button1Click(Sender: TObject);
begin
  FLabel:= TLabel.Create(Self);
  FLabel.Name:= 'MiLabel';
  FLabel.Left:= 10;
  FLabel.Top:= 10;
  FLabel.Parent:= Self;
  FLabel.OnMouseDown:= LabelMouseDown;
end;

(* Panel OnDragOver *)
procedure TForm1.Panel1DragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
  Accept:= Source is TLabel;
end;

(* Panel OnDragDrop *)
procedure TForm1.Panel1DragDrop(Sender, Source: TObject; X, Y: Integer);
begin
  TLabel(FindComponent('MiLabel')).Parent:= Panel1;
end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 22-03-2012 a las 20:15:04. Razón: corregir error de tipeo en comentario
Responder Con Cita
  #7  
Antiguo 22-03-2012
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola de nuevo CarlosAlberto, puedes utilizar también el parámetro source de los eventos OnDragDrop y OnDragOver, te pongo un ejemplo.

Digamos que quieres crear varios TLabel y no solo uno y asignarles el evento Onclick a todos, en cual solo vamos a mostrar su Caption de cada Label.

Código Delphi [-]
  public
    I : Integer;
    Lab:TLabel;
    procedure LabClick(Sender: TObject);

....................................................
....................................................
//Evento Onclick del Label
procedure TForm1.LabClick(Sender: TObject);
begin
 Showmessage(TLabel(Sender).Caption);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 Lab:=TLabel.Create(self);
 With Lab do
 begin
  Parent:=self;
  Caption:='Label'+IntToStr(I);
  //si quieres también le puedes dar un nombre a cada label creado en este ej. vacío para todos
  Name := '';
  //esta propiedad es para trabajar con los eventos Drag&Drop
  DragMode := dmAutomatic;
  Left:=10;
  Top:=I;
  OnClick := LabClick;//Aquí le asignamos en mismo evento OnClick a cada Label
  Inc(I,20);
 end;
end;

Y en los eventos OnDragDrop y OnDragOver del Panel lo siguiente.

Código Delphi [-]
procedure TForm1.Panel1DragDrop(Sender, Source: TObject; X, Y: Integer);
begin
  if (Source is TLabel) then
   begin
    TLabel(Source).Parent := Panel1;
    TLabel(Source).Left := X;
    TLabel(Source).Top := Y;
   end;
end;

procedure TForm1.Panel1DragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
 Accept := (Source is TLabel);
end;

Si tienes duda sobre algo, solo pregunta y no te olvides inicializar I en en Oncreate de tu formulario.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.

Última edición por Caro fecha: 22-03-2012 a las 20:20:32.
Responder Con Cita
  #8  
Antiguo 23-03-2012
CarlosAlberto CarlosAlberto is offline
Miembro
 
Registrado: ago 2010
Posts: 78
Poder: 14
CarlosAlberto Va por buen camino
Gracias

Estimados amigos del club:
Estoy agradecido por las respuesta que me brindaron. Probé la de la moderadora Caro y logré los resultados que esperaba.
Saludos
Carlos Alberto
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Crear Un Label En Tiempo De Ejecucion En C++ Builder soancatl55 C++ Builder 12 30-11-2011 18:49:15
Mover un panel en tiempo ejecución por el form CarlosAlberto Varios 3 10-08-2011 10:16:53
Mover imagenes creadas en tiempo de ejecucion en lazarus Guy Fawkes Lazarus, FreePascal, Kylix, etc. 1 14-01-2010 19:09:14
Mover caida de impresión en tiempo de ejecución osmuar_exp Impresión 2 22-03-2008 12:36:32
mover componentes en tiempo de ejecución Dantael OOP 3 06-02-2005 12:29:46


La franja horaria es GMT +2. Ahora son las 02:13:36.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi