Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Edit se resiste a recibir foco... (https://www.clubdelphi.com/foros/showthread.php?t=38458)

aprendiz2 15-12-2006 03:04:07

Edit se resiste a recibir foco...
 
// Hola otra vez... mas problemas !!! jaja !!!
// quizas alguien me pudiese iluminar con este misterio... ( mientras tengo
// ignorancia... tengo misterios ! ).
//
// Asumiendo que tenemos 2 forms:
//
// en el Form 1 hay:
// un ScrollBox
// un boton. ( TButton )
//
//
// en el Form2 hay:
// uno o varios TEdit
// un checkbox
// un boton
//
// asumiendo que el Form2 se crea automaticamente en el arranque...
// la accion del boton en el form principal ( el Form1 ),
// es simplemente cambiar el parent del Form2,
// para que quede metido en el ScrollBox del Form1
// ( Form2.Parent := ScrollBox1 )
// una vez que se ha mostrado el Form2 metido en el ScrollBox,
// ( hasta ahi todo bien )
// favor intentar darle Click a alguno de los Edit ...
//
//
// En mi version 5, el foco no se traslada a los Edit, pero un doble-click si
// selecciona todo el texto.
// si en alguno de los Edit se pone un showmessage en el OnMouseClick..
// se vera que el Click si llega ahi... pero el foco no se traslada !!!
// Con el TAB si se pueden recorrer los Edit.
//
// El CheckBox y boton en el Form2, si logran recibir el foco
// cuando se hace click en ellos
//
// por que el TEdit se "resiste" a recibir el foco ?
// tiene algo que ver con la version 5 ?
// o algo que no se hacer bien ?
//
// Si fuese un TPanel lo que metemos dentro del ScrollBox en vez de
// un TForm... todo el problema desaparece... ( los Edit estarian dentro
// del Panel )...
// Pero curiosamente lo que deseo es meter Forms adentro del Scrollbox !
//
//
//------------------------------------------------------------
//Aqui sigue el codigo de las 2 unidades
// se asume el Form2 se "autocrea" en el arranque.
//
//Instrucciones:
// -correr el programa
// -hacer click en el boton del Form1.
// hacer click en los objetos que aparecen dentro del scrollbox1
//-------------------------------------------------------------
//

unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
ScrollBox1: TScrollBox;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2;
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.Top := 0;
Form2.Left := 0;
Form2.Parent := ScrollBox1;
Form2.Show;
end;
end.


{-------------------------------------------------}
{ Aqui esta el Form2 que quedara metido en }
{ dentro del scrollbox1, en el Form1 }
{ Se asume el Form2 se "AutoCrea" en el arranque }
{-------------------------------------------------}

unit Unit2;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm2 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
CheckBox1: TCheckBox;
Button1: TButton;
procedure Edit1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.DFM}
procedure TForm2.Edit1Click(Sender: TObject);
begin
ShowMessage('OnClick... pero el foco no se traslada a los Edit');
end;
end.

// -----------------------------
// Gracias !!!!
//----------------------------

roman 15-12-2006 04:37:16

Intenta quitándole el borde a Form2:

Código Delphi [-]
Form2.BorderStyle := bsNone;

Y por favor, utiliza etiquetas [code] o [delphi] para presentar correctamente tu código en estos foros.

// Saludos

aprendiz2 15-12-2006 05:47:46

Si Funciona !!! Gracias Roman !!!!
 
SI FUNCIONA !!!! ROMAN SABE MUCHO !!!!!
MUY AGRADECIDO !!!!

( Lo siento, disculpas acerca de las etiquetas [delphi]... no sabia... soy nuevo en esto de foros... intentare hacerlo bien la proxima vez !!! )

roman 15-12-2006 06:27:44

Ja, ja, ¡hombre! ¡qué exageración, por un bordecito! :D

Lo que sí, yo no usaría forms, ¿por qué no mejor usas frames? Están hechos precisamente para eso: son como un panel, en el sentido que actúan como un contenedor de controles y se puede colocar sin problemas dentro de un formulario. Y son como un formulario en el sentido que pueden editarse a parte para no tener todo regado en el mismo formulario y se puede reusar fácilmente en otros formularios.

// Saludos

aprendiz2 16-12-2006 01:41:06

Sugerencia es bienvenida
 
:) La sugerencia es muy bienvenida !!!!.

Intentare cambiar el enfoque a Frames... ya que estoy viendo otros problemas que nacen... comportamientos raros...( para mi ! ).

:confused: (Me da la impresion que un form adentro de otro da resultados un tanto inesperados.. por ejemplo el ActiveControl del form de adentro ).

Quizas algun dia, si alguien tuviese el tiempo y la voluntad de explicarme brevemente que conexion hay entre el borde de un Form y el foco de un Edit, me encataria saberlo... !:eek:

Muy agradecido otra vez por su ayuda y sugerencia !

Aprendiz2


La franja horaria es GMT +2. Ahora son las 19:06:00.

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