Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Problema con aplicacion MDI (https://www.clubdelphi.com/foros/showthread.php?t=6313)

wallesis 30-12-2003 20:16:02

Problema con aplicacion MDI
 
Hola amig@s
Veo que el nivel que teneis aquí es muy superior al mio, al fin y al cabo sólo soy un aprendiz.
Estoy trabajando con un editor de textos MDI y me ha surgido una duda, espero que me podais ayudar:
Yo se como, desde el el codigo fuente de la ventana principal, manejar o actuar sobre los componentes de la ventana hija, pero no lo se hacer a la inversa y ni siquiera se si se puede hacer.
Por ejemplo:
¿Que sentencias he de realizar o escribir desde el codigo fuente de la ventana hija o fsMDIchild para cambiar el estado de un boton que se encuentra en un componente TToolbar que está ubicado en la ventana principal o fsMDIform?
Gracias.

Julián 30-12-2003 20:20:34

Hola!,

añade la unit del form principal en el uses de la ventana hija (para no tener problemas hazolo con File-Use unit y te lo pondrá en el sitio correcto) y ya podras hacer fsMDIform.EsePedazoBoton.jarl:=jander;

taluegorl!

wallesis 02-01-2004 11:39:38

MUCHAS GRACIAS Julian por tu ayuda. Lo intentare poner en prueba ahora mismo.
Salu2.

wallesis 02-01-2004 13:44:27

Hola de nuevo.
He puesto en marcha los consejos de Julian pero me sigue dando fallo o error.
Este es todo el codigo fuente de la ventana hija. Ahí puesdes ver Julian, como he añadido la uses pero luego en el procedimiento no me funciona:


unit Codigo_Hija;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ComCtrls;

type
TVentana_Hija = class(TForm)
RE_Editor: TRichEdit;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure RE_EditorSelectionChange(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Ventana_Hija: TVentana_Hija;

implementation

uses Codigo_Principal;

{$R *.DFM}

procedure TVentana_Hija.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action := caFree;
end;


procedure TVentana_Hija.RE_EditorSelectionChange(Sender: TObject);
begin
TPrincipal.TB_Negrita.Down := fsBold in RE_Editor.SelAttributes.Style;
end;

end.

Como puedes ver el procedimiento es el de cuando cambia la seleccion en el editor y según donde pongamos el cursor así nos cambie los botones de cursiva,negrita, etc.
El editor está en la ventana hija y todo el codigo es el que puedes ver aquí. Pero tengo que actuar desde este codigo sobre los componentes de la ventana principal.
TPrincipal es la ventana Principal, TB_Negrita es el boton negrita situado en la barra de herramientas que a su vez está situada en la ventana principal.
El error que da es : Method identifier expected.
Me falta algo por hacer? o ¿Estoy haciendo algo mal?
Gracias de nuevo.

guillotmarc 02-01-2004 14:23:02

Hola

TPrincipal.TB_Negrita.Down := fsBold in RE_Editor.SelAttributes.Style;


Creo que el problema está en que utilizas la clase del formulario principal, en lugar de una instancia del mismo (es decir el propio formulario).

Cambialo por :

Principal.TB_Negrita.Down := fsBold in RE_Editor.SelAttributes.Style;

Saludos.

wallesis 03-01-2004 11:17:28

Ahora si que me funciona. Muchisimas gracias a ambos por haberme ayudado.Nos vemos.
Salu2


La franja horaria es GMT +2. Ahora son las 07:36:54.

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