Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   "Include" en los formularios (https://www.clubdelphi.com/foros/showthread.php?t=9101)

rafita 14-04-2004 15:33:17

"Include" en los formularios
 
Muy buenas compañer@s,

Estoy intentando reutilizar parte de un formulario (una zona de cabecera) en otros, al igual que en el código se puede utilizar un include de la siguiente forma: {$I '.\includes\veraccesos.inc'}

Me he creado un archivo CABECERA.INC donde incluyo la parte del formulario que deseo repetir, pero en el formulario donde pretendo utilizarlo, no me deja poner: {$I '.\includes\CABECERA.INC'}

Lo que sí me permite es pegar el trozo de texto que define esos elementos, naturalmente teniendo cuidado de dónde lo pego.

De esta forma puedo reutilizar parte del diseño de un formulario para el resto de la aplicación, pero, además de ser muy laborioso, si hubiese que rectificar algo en esa zona de cabecera, tendría que abrir y modificar todos y cada uno de los formularios.

¿Alguien sabe alguna forma más lógica?
¿Hay alguna directiva similar a {$I '.\includes\veraccesos.inc'} que se pueda poner en el formulario (en modo texto naturalmente)?

Gracias a todos.

delphi.com.ar 14-04-2004 15:39:39

Cita:

Empezado por rafita
¿Alguien sabe alguna forma más lógica?

Si... utilizar la potencialidad de la programación orientada a objetos :)


PD: Yo use en varias ocaciones $I sin problemas... ¿En dónde en particular quieres incluír un archivo?

rafita 14-04-2004 15:52:56

¡Estoy alucinado por tu rapidez en responder!

Te explico, tenía una pequeña aplicación con un formulario cabecera que no desaparecía nunca, el resto quedaban bajo él dejándolo visible, pero hemos tenido problemas con las diferentes versiones del sistema operativo y con las distintas "apariencias"... por los altos de los bordes, de las barras de título de las ventanas,... Así que, por prisas, hemos decidio hacer todos los formularios completos, incluyendo en ellos la parte que antes permanecía constante. Es una chapa, pero es más o menos rápido.

El include pretendía hacerlo así:

Código:

object FTablas: TFTablas
  Left = 0
  Top = 0
  BorderIcons = []
  BorderStyle = bsNone
  Caption = 'Mantenimiento de Tablas'
  ClientHeight = 543
  ClientWidth = 792
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'MS Sans Serif'
  Font.Style = []
  OldCreateOrder = False
  OnClose = FormClose
  OnCreate = FormCreate
  PixelsPerInch = 96
  TextHeight = 13

  {$I '.\includes\CABECERA.INC'}

  object Bevel2: TBevel
    Left = 248
    Top = 176
    Width = 273
    Height = 297
  end

He tenido especial cuidado de mantener cada bloque completo.

Al pasar de modo texto a modo formulario me aparece este error:
Error creating form: Indentifier expected on line 21.

Gracias por tu interés.

delphi.com.ar 14-04-2004 16:05:58

No creo que el DFM soporte directivas al compilador, ya que los datos del DFM no se compilan, podrías definir estas propiedades por código en el create de tus formularios.

Saludos!

roman 14-04-2004 16:10:16

Yo no pasaría por alto la observación de delphi.com.ar que dice

Cita:

Empezado por delphi.com.ar
utilizar la potencialidad de la programación orientada a objetos

y comenzaría a investigar acerca de la herencia visual de formularios que si bien puede ser un tema nuevo para tí al final te dará menos dolores de cabeza que los include.

// Saludos

rafita 14-04-2004 16:10:54

La idea de definirlo por código en el evento OnCreate del formulario me parece genial, de esta forma sí puedo utilizar un Include, y podría realizar cambios en toda la aplicación con solo modificar el archivo del include y recompilarla.

Hoy no lo voy a probar porque tengo dentista en 10 minutos, pero agradezco tu idea.

Muchas gracias...

rafita 14-04-2004 16:13:19

Cita:

Empezado por roman
y comenzaría a investigar acerca de la herencia visual de formularios que si bien puede ser un tema nuevo para tí al final te dará menos dolores de cabeza que los include.

Me gustaría aprender algo sobre el tema, pero las prisas no son buenas. Gracias por el consejo, pero me quedo con la idea de crearlos dinámicamente.

Saludos.

__cadetill 14-04-2004 16:46:00

Y la utilización de Frames no te ayudaría? Aunque sigo pensando que la herencia visual puede ser una buena solución y no es demasiado complicada ;)


La franja horaria es GMT +2. Ahora son las 01:13:53.

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