santiago14,
Cita:
|
Empezado por santiago14
...estoy intentando pasar datos entre formularios...
|
Revisa este código:
Código Delphi
[-]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, Menus;
type
TForm1 = class(TForm)
Button1: TButton;
RichEdit1: TRichEdit;
MainMenu1: TMainMenu;
Form21: TMenuItem;
Exit1: TMenuItem;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Form21Click(Sender: TObject);
procedure Exit1Click(Sender: TObject);
private
public
end;
const
FileComponent = 'FileComponent.cmp';
var
Form1: TForm1;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
i : Integer;
begin
if FileExists(FileComponent) then
DeleteFile(FileComponent);
for i := 1 to 10 do
RichEdit1.Lines.Add('Texto de Prueba-' + IntToStr(i));
end;
procedure TForm1.Form21Click(Sender: TObject);
begin
Form2.Show;
end;
procedure TForm1.Exit1Click(Sender: TObject);
begin
Application.Terminate;
end;
procedure SaveComponent(Component : TComponent; FileName: TFileName);
begin
if not Assigned(Component) then
raise Exception.Create('El Objeto No Existe');
with TFileStream.Create(FileName, fmCreate) do
try
WriteComponent(Component);
finally
Free
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
SaveComponent(RichEdit1,FileComponent);
end;
end.
El código anterior
salva la información del Componente RichEdit1 de Form1 en el archivo FileComponent.cmp
Revisa este código:
Código Delphi
[-]
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls;
type
TForm2 = class(TForm)
Button2: TButton;
RichEdit1: TRichEdit;
procedure Button2Click(Sender: TObject);
private
public
end;
const
FileComponent = 'FileComponent.cmp';
var
Form2: TForm2;
implementation
{$R *.dfm}
procedure LoadComponent(Component : TComponent; FileName: TFileName);
begin
if not Assigned(Component) then
raise Exception.Create('El Objeto No Existe');
if not FileExists(FileName) then
raise Exception.Create('Archivo de Componente No Existe');
with TFileStream.Create(FileName, fmOpenRead) do
try
ReadComponent(Component);
finally
Free
end;
end;
procedure TForm2.Button2Click(Sender: TObject);
begin
LoadComponent(RichEdit1,FileComponent);
end;
end.
El código anterior
recupera y muestra la información salvada anteriormente en el Componente RichEdit1 de Form2.
Espero sea útil
Nelson.