Inicio > Componentes > Componente TSelectOnRuntime

Componente TSelectOnRuntime

Share Button

(versión 1.5)

Permite seleccionar componentes visuales (en Runtime) que haya en un form de forma visual como se hace con las imágenes en los programas de diseño o con los controles en el IDE de Delphi.
Además se pueden mover y redimensionar los controles seleccionados. Basta con soltar el control en el formulario, asignarle el control que se desea seleccionar/mover/redimensionar y activarlo.

Imagen del componente

Imagen del ejemplo

Download Descargar componente

Vota este post
Categories: Componentes Tags: ,
Subscribe
Notify of
guest

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

51 Comments
Inline Feedbacks
Ver todos los comentarios
Andre
15 years ago
Jhonny
Jhonny
15 years ago

Ey Neftali, estas hecho un tiro con el blog, muy útiles componentes y muy buenos artículos, felicitaciones y muchas gracias :).

Tonich
Tonich
14 years ago

Not correctly working on RAD Studio 2010

and pease fix this:

[DCC Warning] CSelectOnRunTime.pas(304): W1036 Variable ‘parentRight’ might not have been initialized
[DCC Warning] CSelectOnRunTime.pas(310): W1036 Variable ‘parentBootom’ might not have been initialized
[DCC Hint] CSelectOnRunTime.pas(259): H2164 Variable ‘frmPoint’ is declared but never used in ‘TSelectOnRunTime.ControlMouseMove’
[DCC Hint] CSelectOnRunTime.pas(673): H2164 Variable ‘i’ is declared but never used in ‘TSelectOnRunTime.SetActive’
[DCC Warning] CSelectOnRunTime.pas(748): W1036 Variable ‘repos’ might not have been initialized
[DCC Warning] CSelectOnRunTime.pas(749): W1036 Variable ‘wc’ might not have been initialized

I’m fix it that:

procedure TSelectOnRunTime.ControlMouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
const
minWidth = 20;
minHeight = 20;
var
newPos: TPoint;
frmPoint : TPoint;
_CanMove, _CanMoveOutParent:Boolean;
newLeft, newTop, newRight, newBottom:Integer;
parentRight, parentBootom:Integer;
begin
parentRight:=0; //first fix
parentBootom:=0; //Second fix

(and do it for «repos:=0» and «wc:=nil»)

and I kill «frmPoint» and «i» variables where I’m see Hints

but Also not correctly working if i do this SelectOnRunTime1.SelectControl=nil;

Iwan
Iwan
14 years ago

Your component not work in Delphi 2007.
when open Demo1.Dpr error Creating form Access Violation.

do you have new version for delphi 2007 and 2010?

thanks.

Cristopher
14 years ago

Muy bueno tu componente, pero desearia portarlo al Lazarus, ya que tengo un proyecto que necesita ser creada por Lazarus.

Cristopher
14 years ago

El componente TSelectOnRuntime fue ya convertido a Lazarus tuve una guerra con la unidad Contnrs.pas, pero mi proyecto me necesitaba guardar los cambios al dialogo hechos por el componente y converti tu TSaveComps, aunque una tiene como comentada una funcion que cuando un fichero existe es renombrado con la extension .bak.

Pronto este codigo estara disponible te lo notificare cuando suba los ficheros.

Cristopher
14 years ago

Asi una pequeña duda: en mi proyecto utilizando los componentes ya portados. es posible usar TSaveComps y TSelectOnRuntime en un TFrame ya que deseo darle estilo al diseñador como InstallShield 2008.

Cristopher
14 years ago

Hola, hace tiempo que no hablamos. Tu componente es muy bueno ya está portado a Lazarus (Incluyendo a TSaveComps). Y puedo usarlos en un formulario MDI hijo y los componentes que se seleccionen del formulario padre.

Estoy creando un instalador multiplataforma en Lazarus y Java y el que me da más conflicto es el diseñador de formularios interno del IDE no deseo hacerlo al diseño Delphi sino algo así o en MODO MDI

Ejemplo:
http://www.ethalone.com/CUI.gif
http://www.ethalone.com/Comparison/IS_DE.jpg

Raphael
Raphael
13 years ago

Hi,

I’m trying to change the color of the marks (markColor) but I’m not able to do this. Can you help me? I’ve took a look in your code, I’ve changed some things but it didn’t work. I don’t know why, it receive the value of the color but the marks of the component doesn’t change the color.
I’m using the Delphi 2010.

Thank you so much.

Raphael
Raphael
13 years ago

Hi,

First of all, thank you so much to answer to me so fast. Second of all, I tried the new version but it didn’t work and show me more problems with image. But, Fortunatally I found where the problem was happening.

TSelectOnRunTime.CreateNodes() – It just changed the colors after I put this code:
Parent := TWinControl(Self._Owner);

In this new version you took away the Repaint from there and put the BringToFront; in the PositionNodes(…).

Working with images, these replaces don’t work fine. Now, I’m trying to this with a list of components.

Thank you so much.
Best Regards

Raphael
Raphael
13 years ago

Hi,
First of all, thank you so much to answer to me so fast and I’m able to change de color. Second of all, I tried the new version but it shows me more problems with image. But, fortunatally I think I found where the problem was happening.
In this new version you took away the Repaint from there and put the BringToFront; in the PositionNodes(…).
Working with images, these replaces don’t work fine. Now, I’m trying to this with a list of components.
Thank you so much.
Best Regards

Raphael
Raphael
13 years ago

Hi, sorry for the long time to write to you again. Yes I can send it to you but I don’t know how. Can you tell me your email?

Another thing, I’m studying how to use your class to implement the move and resize to more than one component. Today I’m doing an object for each component, because of this, I’m able to select more than one but when I try to move/resize I can do this just one at a time. Do you have some tip for me?

Thank you again!
Regards

Raphael
Raphael
13 years ago

Sorry for the long time again, I just have sent the email to you.

Regards

Raphael
Raphael
13 years ago

I forgot to say to you. Your class is with memory leak. In the example I already found some thing, but It still have.

See you

Cristopher
13 years ago

No se puede usar en un TPanel?

Cristopher
13 years ago

No. si el tpanel se puede usar como si fuera un formulario

Cristopher
13 years ago

Asi, en lugar de usar el formulario como campo de diseño se usa un TPanel.

leandro
leandro
13 years ago

hola, se puede instalar en delphi 2010?
como lo hago?

Lepe
Lepe
11 years ago

Muchas gracias Neftali por estos componentes, funcionan de diez.

He visto que mientras arrastras un control, no se actualiza el form de detrás (el padre), donde se puede apreciar mejor, es en la aplicación FormDesigner que has realizado, porque no se actualiza los puntitos del grid que se pintan para que creas que estas en tiempo de diseño.

La solución es bien simple, añadir un nuevo evento que se lanza mientras se mueve un control:

[code]
published

property OnCanResize:TCanResizeControlEvent read FOnCanResize write FOnCanResize;
//Lepes: Permite realizar tareas mientras se mueve el control en pantalla
// por ejemplo, actualizar el form de detrás
property OnMovingControl: TNotifyEvent read FOnMovingControl write FOnMovingControl;
[/code]

y ya en la implementación del método ControlMouseMove (al final del todo):
[code]
if Assigned ( FOnMovingControl ) then FOnMovingControl( TControl( Sender ) ) ;
[/code]

Saludos y muchas gracias

Braulio
Braulio
11 years ago

Hola con esta componente se pueden hacer multiples selecciones y moverlas a la vez?

Gracias

angel
angel
11 years ago

y donde se puede descargar la version para lazarus?

la ando buscando que la lei en los comentarios y no la encuentro.

Gracias.

Miguel Angel
Miguel Angel
10 years ago

Buenas noches Neftali

Has tenido la oportunidad de probar el TSelectOnRuntime en Delphi XE5?
Los nodos que se dibujan alrededor del control para simular su selección, se muestran incompletos, diferentes a como se ven en los demos que tienes.

Saludos

Victor
Victor
9 years ago

Hola Neftali:
En primer lugar darte las gracias por tu componente, lo estoy usando y la verdad es que ha sido sencillo de instalar de usar y de comprender. Pero me ha salido una duda, que no se si es posible sobre este componente o conoces algún otro sobre el que puedas conocer.

Estoy utilizando el componente sobre TImage y perfecto para moverlo y cambiar el tamaño, pero también me gustaría saber si podemos rotar la imagen. ¿se te ocurre una solución o ves la posibilidad?

Yosley
Yosley
7 years ago

Este componente funciona en Berlin ?

Padam Jain
Padam Jain
6 years ago

Hi,

Are they compatible with Delphi seattle and firemonkey ?

Mirko
Mirko
4 years ago

Hola,
tengo dos preguntas.
1. No encuentro el componente TSaveComps;
2. Cuando termino de mover una TImage con el componente SelectOnRunTime, me gustaria guardar las coordinadas X y Y del TImage de manera de actualizar en tiempo real el nuevo mapa. Todas mis imagenes estan guardadas en un archivos que representa los barriles de una cantina y de manera dinamica lo actualizo segun los cambio que el usuario hace directamente en el mapa. No logro interceptar cuando SelectOnRunTime termina de mover el TImage. Algunas ayuda?

Utilizo Delphi 10.3

Muchas Gracias
Mirko

Mirko
Mirko
4 years ago

@Germán Estévez

Muchas gracias German,
en esto estaba trabajando pero me anticipaste. Exactamente lo que necesitaba.
Lo unico es que cuando reinicio el Delphi el componente se me disinstala.
En las Library ya agregue:
– C:\01 Componenti\SelectOnRunTime\Sources
– C:\01 Componenti\SelectOnRunTime\Package

y me compila y todo…..solo que no me lo mantiene y cada vez reinicio el Delphi me toca juntar nuevamente la GlibD6.bpl

Utilizo Delphi 10.3.3

Mirko
Mirko
4 years ago

@Mirko

He cambiato simplemente el nombre del DPK
de
__Package de componentes de Neftalì

en
Package de componentes de Neftalì

No se que decir….pero ahora queda instalado :)

Muchas gracias

51
0
Would love your thoughts, please comment.x
()
x