Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-04-2004
rafita rafita is offline
Miembro
 
Registrado: ago 2003
Ubicación: Cuenca- España.
Posts: 309
Poder: 21
rafita Va por buen camino
"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.
__________________
Rafita.
Responder Con Cita
  #2  
Antiguo 14-04-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
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?
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 14-04-2004
rafita rafita is offline
Miembro
 
Registrado: ago 2003
Ubicación: Cuenca- España.
Posts: 309
Poder: 21
rafita Va por buen camino
¡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.
__________________
Rafita.
Responder Con Cita
  #4  
Antiguo 14-04-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
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!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #5  
Antiguo 14-04-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
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
Responder Con Cita
  #6  
Antiguo 14-04-2004
rafita rafita is offline
Miembro
 
Registrado: ago 2003
Ubicación: Cuenca- España.
Posts: 309
Poder: 21
rafita Va por buen camino
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.
Responder Con Cita
  #7  
Antiguo 14-04-2004
rafita rafita is offline
Miembro
 
Registrado: ago 2003
Ubicación: Cuenca- España.
Posts: 309
Poder: 21
rafita Va por buen camino
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.
__________________
Rafita.
Responder Con Cita
  #8  
Antiguo 14-04-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
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
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 23:26:25.


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
Copyright 1996-2007 Club Delphi