Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Bloquear creación de nuevo elemento en tiempo de ejecución. (https://www.clubdelphi.com/foros/showthread.php?t=84582)

chavarias 06-11-2013 20:55:42

Bloquear creación de nuevo elemento en tiempo de ejecución.
 
Buen día.

Estoy haciendo una práctica en Delphi en el cual se me pide:
- Implementación de listas, agregar un botón donde se pueda insertar elementos por el inicio de la lista.
- Además, agregar un botón que al dar clic se eliminen elementos de la lista (por el final).
- Modificar la práctica para evitar que la lista de botones creados en tiempo de ejecución, se "salgan" de la forma.

Ya lo tengo funcionando, pero el punto final no encuentro cómo puedo hacerlo.

Gracias de antemano por su ayuda.

Casimiro Notevi 06-11-2013 21:34:04

Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración :)

ecfisa 06-11-2013 22:33:57

Hola chavarias.

Código Delphi [-]
function IsButtonInsideForm(const FormR, ButtonR: TRect): Boolean;
begin
  Result := PtInRect(FormR, Point(ButtonR.Left, ButtonR.Top) ) and
    PtInRect(FormR, Point(ButtonR.Left+ButtonR.Right, ButtonR.Top+ButtonR.Bottom))
end;

Ejemplo de uso:
Código Delphi [-]
procedure TForm1.btnCrearClick(Sender: TObject);
var
  i: Integer;
  R: TRect;
begin
  Randomize;
  for i := 1 to 100 do
  begin
    R.Left   := Random(1000);
    R.Top    := Random(800);
    R.Right  := 70;
    R.Bottom := 21;
    if IsButtonInsideForm(ClientRect, R) then
      with TButton.Create(self) do
      begin
        Name   := 'Button' + IntToStr(i);
        Left   := R.Left;
        Top    := R.Top;
        Width  := R.Right;
        Height := R.Bottom;
        Parent := Self;
      end;
  end
end;
...
Y por favor, no olvides leer nuestra guía de estilo como te sugirió Casimiro.

Saludos :)


La franja horaria es GMT +2. Ahora son las 00:35:04.

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