memo

erick
16 de Junio del 2005
Necesito que ayuden a resolver un problema estoy haciendo editor en el que pueda manejar varios documentos, por medio de pestañas, para eso utilizo el PageControl con sus respectivos TabSheet que contendran sus propios

Memos. Todo esto lo hago en tiempo de ejecucion.

Type
TForm1 = class(TForm)
protected
PageControl: TPageControl;
TabSheet: TTabSheet;
Memo: TMemo;
procedure MemoChange(Sender: TObject);
procedure TabSheetChange(Sender: TObject);
end;
var
Lista: TComponentList;


El codigo para crear el PageControl es:

Lista:= TcomponentList.Create; // Lo utilizo para llevar un control de las Pestañas
PageControl:= TPageControl.Create(Self);
PageControl.Parent:= Form1;

este se crea una sola vez al crear el formulario.


El codigo para crear el TabSheet con su memos es:

TabSheet:= TTabSheet.Create(PageControl);
TabSheet.PageControl:= PageControl;
Memo:= TMemo.Create(TabSheet); y ya probe usando - Memo:= TMemo.Create(Self);-
Memo.Parent:= TabSheet;
lista.Add(TabSheet);
PageControl.OnChange:= TabSheetChange; // TabSheetChange es un procedimiento que me permite cambiar de ventana

Procedure TForm1.TabSheetChange(Sender: TObject);
begin
Memo.Setfocus; // Se detiene la ejecucion cuando pasa por aqui
end;

esto se hace cada vez que presiono el boton nuevo o abrir

todo parece y se ve perfecto puedo cambiar de pestaña ver y escribir sobre su respectivo memo, el problema esta

cuando quiero cambiar de una pestaña a otra manda el siguiete error - no se puede poner el foco en una pestaña

desabilitada o invisible-, al parecer el foco queda en el memo de la ultima pestaña que hice ya que si cambio a la ultima pestana no me muestra el error.

Mi pregunta que me ha llevado a tener varias noches de desvelo y es la siguiente, ¿ hay alguna propiedad para hacer referencia al memo de la pestaña que tengo seleccionada ?, ¿ Esta correcto el codigo de construccion o de las variables ? o que demonios tengo que hacer ya no puedo solo necesito ayuda.


asdfsd
16 de Junio del 2005
si. No hace falta la "Lista" paral llevar el control de las pestañas.

la pestaña activa es PageControl.ActivePage

te falto la siguiente instruccion para relacionar el memo con el TabSheet despues de crear el memo:
TabSheet.InsertControl(memo);

si queres acceder al memo seria:
PageControl.ActivePage.Controls[0] // porque es el primer objeto del TabSheet.

saludos.
Sebastian ([email protected])