PDA

Ver la Versión Completa : componentes no aparecen en el formulario


oscarac
03-06-2012, 06:15:34
Buenas noches

hace tiempo que hice un programita en delphi utilizando Jedi, recientemente lo abri y no me aparecen los componentes Jedi en el formulario

adjunto el formulario principal.. alguien tiene alguna idea de como hacer para que aparezcan?
o que pudo suceder ?

unit frmMain_f;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, JvPanel, JvSplitter,
JvComponentBase, JvNavigationPane, JvExControls, JvPageList, JvXPBar,
JvXPCore, JvXPContainer, JvAnimTitle, JvaScrollText, JvScrollText,
JvComponent, iniFiles, ImgList, StdCtrls, jpeg;

type
TfrmMain = class(TForm)
JvPanel1: TJvPanel;
JvXPContainer1: TJvXPContainer;
Consumo: TJvXPBar;
Tablas: TJvXPBar;
JvPanel3: TJvPanel;
Panel1: TPanel;
procedure JvXPBar3Items0Click(Sender: TObject);
procedure JvXPBar1Items0Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure JvXPBar1Items2Click(Sender: TObject);
procedure JvXPBar3Items2Click(Sender: TObject);
procedure JvXPBar3Items1Click(Sender: TObject);
procedure JvXPBar2Items1Click(Sender: TObject);
procedure JvXPBar3Items3Click(Sender: TObject);
procedure JvXPBar4Items1Click(Sender: TObject);
procedure JvXPBar2Items0Click(Sender: TObject);
procedure JvXPBar3Items4Click(Sender: TObject);
procedure ProcesoItems0Click(Sender: TObject);
private
{ Private declarations }
public
_Serie, _Origen, _Igv : string;
{ Public declarations }
end;

var
frmMain: TfrmMain;
const
STR_EMPTY = '';
CONFIG_SECTION = 'Serie';

implementation

uses frmCatalogoTrabajador_f, frmValesdeConsumo_f, frmPassword_f,
dmComedor_d, frmCatalogoHorario_f, frmCatalogoArticulo_f,
frmConsumoTrabajador_f, frmNumeracion_f, frmCambioFecha_f,
frmFacturacion_f, frmcCosto_f, frmActualizacion_f;

{$R *.dfm}

procedure TfrmMain.JvXPBar3Items0Click(Sender: TObject);
begin
frmCatalogoTrabajador := TfrmCatalogoTrabajador.Create(Self);
frmCatalogoTrabajador.Show;
end;

procedure TfrmMain.JvXPBar1Items0Click(Sender: TObject);
begin
frmValesdeConsumo := TfrmValesdeConsumo.Create(nil);
frmValesdeConsumo.Show;
end;

procedure TfrmMain.FormCreate(Sender: TObject);
Var ini:TIniFile; fName : String;
begin
self.Caption := dmComedor.g_NombreUsuario + ' Consumos del Dia : ' + DateToStr(dmComedor.g_FECHA);
fName := ChangeFileExt(Application.ExeName,'.ini');
ini := TIniFile.Create(fName);
_Origen := ini.ReadString(CONFIG_SECTION, 'Origen', STR_EMPTY);
_Serie := ini.ReadString(CONFIG_SECTION, 'Serie', STR_EMPTY);
_Igv := ini.ReadString(CONFIG_SECTION, 'Igv', STR_EMPTY);
end;

procedure TfrmMain.JvXPBar1Items2Click(Sender: TObject);
begin
Application.Terminate;
end;

procedure TfrmMain.JvXPBar3Items2Click(Sender: TObject);
begin
frmCatalogoHorario := TfrmCatalogoHorario.Create(nil);
frmCatalogoHorario.Show;
end;

procedure TfrmMain.JvXPBar3Items1Click(Sender: TObject);
begin
frmCatalogoArticulo := TfrmCatalogoArticulo.Create(nil);
frmCatalogoArticulo.Show;
end;

procedure TfrmMain.JvXPBar2Items1Click(Sender: TObject);
begin
frmConsumoTrabajador := TfrmConsumoTrabajador.Create(nil);
frmConsumoTrabajador.Show;
end;

procedure TfrmMain.JvXPBar3Items3Click(Sender: TObject);
begin
frmNumeracion := TfrmNumeracion.Create(nil);
frmNumeracion.Show;
end;

procedure TfrmMain.JvXPBar4Items1Click(Sender: TObject);
begin
frmCambioFecha := TfrmCambioFecha.Create(nil);
frmCambioFecha.Show;
end;

procedure TfrmMain.JvXPBar2Items0Click(Sender: TObject);
begin
frmfacturacion := Tfrmfacturacion.Create(nil);
frmfacturacion.Show;
end;

procedure TfrmMain.JvXPBar3Items4Click(Sender: TObject);
begin
frmCCosto := TfrmCCosto.create(nil);
frmCCosto.Show;
end;

procedure TfrmMain.ProcesoItems0Click(Sender: TObject);
begin
frmActualizacion := TfrmActualizacion.Create(nil);
frmActualizacion.Show;
end;

end.

Al González
03-06-2012, 18:52:34
[...] alguien tiene alguna idea de como hacer para que aparezcan?
o que pudo suceder ?
Muestra el formulario y presiona Alt+F12 para ver el contenido del archivo DFM. ¿Están ahí dentro las declaraciones "object" de tales componentes? ¿Qué valor tienen en Left y Top?

En caso de no estar, lo que pudo haber sucedido es que a la hora de abrir el formulario no se cargaran los componentes que hicieran uso de propiedades que ya no están disponibles en la actual versión de Delphi / Jedi. Cuando eso pasa, Delphi te solicita qué hacer; lo usual es decirle que ignore esas propiedades obsoletas, pues de lo contrario no te cargará el componente.

Casimiro Notevi
03-06-2012, 19:41:33
También puede ser que si no da ningún error es porque los componentes están ahí, en el formulario, pero en una posición que no se ven.
Puedes seleccionarlos en el inspector de objetos y cambiar la posición 'left' y 'top' para reposicionarlos en un lugar visible.

oscarac
05-06-2012, 06:45:54
Solo esto me aparece cuando presiono alt+f12
object frmMain: TfrmMain
Left = 74
Top = 52
BorderIcons = [biMinimize, biMaximize]
BorderStyle = bsSingle
Caption = 'Principal'
ClientHeight = 615
ClientWidth = 956
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
FormStyle = fsMDIForm
OldCreateOrder = False
Position = poScreenCenter
Scaled = False
WindowState = wsMaximized
OnCreate = FormCreate
PixelsPerInch = 96
TextHeight = 13
object Panel1: TPanel
Left = 0
Top = 0
Width = 956
Height = 615
Align = alClient
Enabled = False
FullRepaint = False
TabOrder = 0
Visible = False
end
end

lo curioso es que cuando quiero agregar el mismo componente me dice que ya existe....

Casimiro Notevi
05-06-2012, 08:55:10
Me temo que en ese formulario tienes un panel y... nada más.
Seguramente tienes el código bien y el panel mal.
En el .pas tendrás todo, pero el .frm está vacio.
¿No tendrás un backup del mismo?

oscarac
05-06-2012, 16:22:22
existe algun decompilador de Delphi?
alguna vez oi hablar de un programa llamado Delphi Decompiler... (DeDe)

oscarac
06-06-2012, 06:59:40
afortunadamente si tenia un backup del programa, pero me quedo la siguiente duda:

si me equivoco me corrigen el archivo DFM "guarda" la lista de componentes que se incluyen en el formulario y que tambien podria ser manipulados desde ahi (corregir ancho, largo, etc)

si uno tiene la habilidad de "incluir" mas componentes en el DFM se reflejan en el Form????,

comento esto porque cuando quise agregar los mismos componentes que "no estaban", me decia que ya estaban en el form (sin embargo no se veian), no se si sera un problema de delphi o quiza hice algo que no debia (que no creo)

Casimiro Notevi
06-06-2012, 09:14:32
Claro, el dfm es el Form, lo puedes ver en modo texto o en modo gráfico, con los botones, paneles, etc.
También, claro, puedes modificar directamente sobre el texto, es que realmente es lo único que existe, el form en modo texto, lo que se ve en delphi es la "interpretación" de ese fichero de texto dfm.
Sí, puedes añadir componentes en ese form tecleando, tan sólo debes saber dónde y cómo.
Evidentemente, debe coincidir todo con el .pas ya que si en el .dfm hay un label1 y en el .pas se llama label2, está claro que delphi va a avisarte que hay algo mal.
Prueba a crear un formulario vacio y miras el texto del dfm, luego añade al formulario un componente y miras el texto del dfm, así puedes ir viendo cómo trabaja, realmente es simple.

Por cierto, menos mal que tenías un backup :)