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 22-11-2012
cdac901 cdac901 is offline
Miembro
 
Registrado: feb 2008
Posts: 12
Poder: 0
cdac901 Va por buen camino
Como acceder a un dfm paralelo en tiempo de diseño

Buenas Noches, espero ser los mas descriptivo posible en el titulo.

Delphi XE3, Windows 7

Tengo 2 dfm

El primero se llama Unit1.dfm:

Código Delphi [-]
object Form1: TForm1
  Left = 0
  Top = 0
  Caption = 'Form1'
  ClientHeight = 237
  ClientWidth = 425
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
  object Label1: TLabel
    Left = 128
    Top = 40
    Width = 59
    Height = 13
    Caption = 'Hola Mundo '
  end
end

y este otro se llama Unit1_Paralelo.dfm:

Código Delphi [-]
object Form1: TForm1
  Left = 0
  Top = 0
  Caption = 'Form1'
  ClientHeight = 237
  ClientWidth = 425
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
  object Label1: TLabel
    Left = 128
    Top = 40
    Width = 59
    Height = 13
    Caption = 'Hola Mundo Paralelo'
  end
end

El .pas esta de la siguiente forma

Código Delphi [-]
unit Unit1;

{$define DFM_PARALELO} //Con esta directiva se compila en tiempo de ejecucion Unit1.dfm o Unit1_Paralelo.dfm

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$ifdef DFM_PARALELO}
   {$R Unit1_Paralelo.dfm}
{$else DFM_PARALELO}
   {$R *.dfm}
{$endif DFM_PARALELO}

end.

Hasta ahora las pruebas que hecho han funcionado sin novedad, pero el detalle que tengo ahorita habra una forma en la que pueda acceder a Unit1_Paralelo.dfm en tiempo de diseño para hacerle cambios?.

De antemano gracias por las sugerencias que me puedan dar, y si hay otra forma de poder trabajar 2 .dfm con 1 .pas teniendo hacer cambios en los .dfm en tiempo de diseño se los agradeceria doblemente.

Última edición por cdac901 fecha: 22-11-2012 a las 00:32:30. Razón: Por alguna razon se coloco en una sola linea el fuente de delphi
Responder Con Cita
  #2  
Antiguo 22-11-2012
cdac901 cdac901 is offline
Miembro
 
Registrado: feb 2008
Posts: 12
Poder: 0
cdac901 Va por buen camino
Por alguna razón el codigo quedo en una sola linea, al moderador si tiene la oportunidad de borrar el mensaje anterior o modificarlo se lo agradeceria, ya que no veo como modificarlo por los medios que tengo (Listo alineado como debe se gracias)
Responder Con Cita
  #3  
Antiguo 22-11-2012
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Las que usas son directivas de compilación condicionales. Sólo al compilar para generar el código ejecutable es que son consideradas por Delphi.

Lo más parecido a «trabajar 2 .dfm con 1 .pas» es emplear herencia visual. Busca el término en Google y en estos mismos foros, encontrarás mucho material con ejemplos.

De todas formas conviene que detalles un poco más el origen de esa necesidad.

Saludos.
Responder Con Cita
  #4  
Antiguo 22-11-2012
cdac901 cdac901 is offline
Miembro
 
Registrado: feb 2008
Posts: 12
Poder: 0
cdac901 Va por buen camino
Hola Gracias por tu respuesta, la opción de herencia visual la propusimos para este caso, pero el problema que se nos presento con esta propuesta es que, en el formulario Padre tengo un Button1 (por ejemplo) en cada uno de los formularios hijos aparecera tambien aparecera Button1 sin la posibilidad de poder borrarlo en tiempo de diseño.

La idea de esto es tener 2 presentaciones del mismo producto. Me explico mejor

Ejemplo:

Venezuela: Pide el Numero de Control en una Factura de Compras.
Panama: No Pide el Numero de Control en una Factura de Compras.

Lo que se desea es quitar el Edit y el Label que pide el dato "Numero de Control" para Panama, sin la necesidad de ocultar dichos objetos con Visible := False en el .pas, internamente el codigo fuente funciona exactamente igual lo unico que no va a pedir el dato a nivel visual.

De antemano gracias por la ayuda prestada.
Responder Con Cita
  #5  
Antiguo 22-11-2012
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
Cita:
Empezado por cdac901 Ver Mensaje
Ejemplo:

Venezuela: Pide el Numero de Control en una Factura de Compras.
Panama: No Pide el Numero de Control en una Factura de Compras.

Lo que se desea es quitar el Edit y el Label que pide el dato "Numero de Control" para Panama, sin la necesidad de ocultar dichos objetos con Visible := False en el .pas, internamente el codigo fuente funciona exactamente igual lo unico que no va a pedir el dato a nivel visual.

De antemano gracias por la ayuda prestada.
Bueno, pues la herencia visual que menciona Al, sigue siendo la mejor opción, en mi opinión. Lo que pasa es que la clase base sólo debería contar con los elementos comunes a todas las ventanas y de ahí derivar, añadiendo un descendiente que aumente el o los controles necesarios.

// Saludos
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Agregar y Arrastrar como en Tiempo de Diseño? jam888 Varios 16 30-03-2007 19:09:03
Acceder a propiedades de (TChartSeriesList) en tiempo de diseño papulo Gráficos 1 22-05-2006 21:06:55
Como mostrar el cuadro de dialogo de diseño de Tchart en tiempo de ejecución? JuanErasmo Gráficos 0 21-12-2005 20:33:22
Como hacer una nueva pagina en tiempo de diseño con QuickReport? JuanErasmo C++ Builder 0 14-12-2005 18:01:14
Acceder a un router desde el puerto paralelo droguerman Redes 3 31-10-2005 19:54:18


La franja horaria es GMT +2. Ahora son las 17:22:42.


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