PDA

Ver la Versión Completa : Problema de Sintaxis "R *.res}"


martini002
26-08-2012, 21:19:47
Saludos Amigos, donde quiera que se encuentren

Estaba escribiendo un par de lineas
enlazando el Query con la Conexion y con el DataSource,
haciendo cosas normales, y de repente cuando pruebo
me aparece este error:

Declaration expected but identifier 'R' found

Esto es en el archivo *.DPR
no lo he tocado y pues me ha dado este error muy inesperado
no se como buscarlo en Google no tengo ni la menor idea
de como pueda llamar a esto :(
agradeceria mucho su ayuda como siempre
Saludos

program ProyectoBase;

uses
Forms,
Principal in 'Principal.pas' {Form3},
Venta in 'Venta.pas' {Form1},
IngresoInventario in 'IngresoInventario.pas' {Form2},
PruebaImagen in 'PruebaImagen.pas' {Form4};

R *.res}//Aqui esta el error

begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
ApApplication.CreateForm(TForm3, Form3);
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.CreateForm(TForm4, Form4);
ication.Run;
end.

martini002
26-08-2012, 21:36:15
Yo cada vez mas ciego :/
no me moleste en revisar todo el codigo
ya vi que al parecer se movieron unas letras
listo Arreglado!

Saludos


program ProyectoBase;

uses
Forms,
Principal in 'Principal.pas' {Form3},
Venta in 'Venta.pas' {Form1},
IngresoInventario in 'IngresoInventario.pas' {Form2},
PruebaImagen in 'PruebaImagen.pas' {Form4};

{$R *.res}

begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TForm3, Form3);
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.CreateForm(TForm4, Form4);
Application.Run;
end.

dec
26-08-2012, 21:50:15
Yo cada vez mas ciego :/
no me moleste en revisar todo el codigo
ya vi que al parecer se movieron unas letras
listo Arreglado!


¡De ahí que se diga que las lenguas están vivas! ;)

Caral
26-08-2012, 22:23:37
Hola
Los forms se crean directamente, asi lo hace delphi, pero no es una buena opción ya que hace lento el arranque del programa.
Te aconsejo que crees los forms cuando los necesites, no al principio, como lo tienes ahora.
Saludos

martini002
26-08-2012, 22:31:13
Hola Caral,
se lee interesante eso, pero no te entiendo bien cuando dices "Crearlos cuando los necesites"
Saludos

Caral
26-08-2012, 22:59:32
Hola
Cuando haces un nuevo form delphi lo crea al inicio del programa, exactamente donde lo tienes ahora:

begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TForm3, Form3);
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.CreateForm(TForm4, Form4);
Application.Run;
end.
Eso quiere decir que cuando arranca el programa se crearan los forms de una vez, asi con solo hacer un;
form2.show;

se mostrara el form 2 ya que se creo desde el inicio.
Esto tiene algunas ventajas, pero en la mayoria de los casos no.
Imaginate un programa con 100 forms que se creen desde el inicio, el arranque de ese programa sera muy lento, de ahi que algunos usan programitas que dicen ''se esta cargando''.
La ventaja con delphi es que te permite crear los forms cuando los necesites y liberarlos cuando no, esto se hace en:
Porject
Options (te saldra una pantalla)
En la paleta Forms estan todos los que hiciste, al lado izquierdo estan los que se autocrearan y al lado derecho los que crearas por tu cuenta.
Simplemente pasa los que quieras crear a la derecha.
Ahora para llamarlos no se podra usar un simple show ya que no se han creado, tendras que crearlos asi:

Form2:=TForm2.Create(self);
try
Form2.ShowModal;
finally
Form2.Free;
end;

Como ves, se crea, se llama y se libera.
Pensaras que es mas trabajo pero cuando hagas muchos forms, reportes etc y el programa crezca veras la diferencia.
Yo me he acostumbrado a hacerlo asi y te aseguro que veras otras ventajas adicionales.
Pruebalo, no pasa nada.
Saludos

martini002
26-08-2012, 23:10:39
Perfecto y entendido,
mira como los llamo desde los botones.


procedure TForm3.Button1Click(Sender: TObject);
begin
Form1.Show;
end;

procedure TForm3.Button2Click(Sender: TObject);
begin
Form2.Show;
end;

procedure TForm3.Button3Click(Sender: TObject);
begin
Form4.Show;
end;


y por ejemplo para el boton 3
quedo asi, y funciona bien
Gracias Infinitas siempre.


procedure TForm3.Button3Click(Sender: TObject);
begin
Form4:=TForm4.Create(self);
try
Form4.ShowModal;
finally
Form4.Free;
end;
end;

Caral
26-08-2012, 23:13:59
Hola
Ahora imaginate que tienes un label en el form4 y quieres cambiarlo al inicio:

procedure TForm3.Button3Click(Sender: TObject);
begin
Form4:=TForm4.Create(self);
try
Form4.label1.caption:= 'Hola';
Form4.ShowModal;
finally
Form4.Free;
end;
end;
Ya que el form que esta llamando al form4 esta usando el unit4 no se tendra que hacer nada.
Esas cositas he ido aprendiendo de los Maestros de aqui.^\||/
Saludos

dec
26-08-2012, 23:18:06
Hola,

Sólo apuntar que no es lo mismo mostrar un form con su método "Show" que con su método "ShowModal". En todo caso, si se necesitase usar el método "Show" (pues con "ShowModal" lo dicho por Caral es suficiente) también puedes hacerte cargo de la construcción y destrucción de los formularios por tu cuenta, teniendo en cuenta que no podrás liberarlos a continuación de usar el método "Show" (o sea lo que se hace arriba usando "ShowModal") pues el formulario ni llegaría a mostrarse acaso. Dicho esto, en algún caso, merece la pena dejar la construcción de un formulario o módulo de datos en el archivo DPR, puesto que a veces lo necesitaremos (en el caso del módulo de datos) incluso antes que el formulario principal (el primero que se crea). He dicho. :D

Caral
26-08-2012, 23:21:52
Hola
Siempre es un gusto verte amigo.
Gracias por la explicación.^\||/
Saludos

dec
26-08-2012, 23:30:57
Hola
Siempre es un gusto verte amigo.
Gracias por la explicación.^\||/
Saludos

Gracias, hombre. Un gusto también saberte por aquí. ;)