Hace un par de meses que empecé con este bello lenguaje, y me estuve quemando las pestañas de diversas formas pero sin poder solucionar este problema. Por lo que entendí lo que estoy haciendo está bien, pero no lo convenzo al programa, que sigue sin hacer lo que yo quiero

Este es el código que tengo escrito
Código Delphi
[-]
unit PruebaExport;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, PruebaExport2;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormActivate(Sender: TObject);
private
public
end;
var
Form1: TForm1;
F:Finanzas;
S : TFileStream;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
f:=finanzas.Create(self);
F.Integrantes := 10;
F.Banda := 20;
F.Coordinador :=30;
F.Agente := 40;
F.Porcentaje := true;
S := tfilestream.Create('C:\archivo',fmCreate);
s.Write(F,100);
showmessage(f.todo);
f.Free;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
S : TFileStream;
begin
s := TFileStream.Create('C:\archivo',fmOpenRead);
f := finanzas.Create(self);
s.Read(F,100);
s.Free;
end;
procedure TForm1.FormActivate(Sender: TObject);
begin
showmessage(F.Todo);
end;
end.
Código Delphi
[-]
unit PruebaExport2;
interface
uses
SysUtils, Classes;
type
TIO = class(TDataModule)
private
public
end;
Finanzas = class(Tcomponent)
function Todo:string;
public
Integrantes,Banda,Coordinador,Agente : Single;
Porcentaje : boolean;
end;
var
IO: TIO;
implementation
{$R *.dfm}
function Finanzas.Todo: string; begin
if porcentaje = true then
result := floattostr(integrantes) + ' ' + floattostr(coordinador)
+ ' ' + floattostr(banda) + ' ' + floattostr(agente) + ' Sí'
else
result := floattostr(integrantes) + ' ' + floattostr(coordinador)
+ ' ' + floattostr(banda) + ' ' + floattostr(agente) + ' No';
end;
end.
Para probarlo: - Comento la parte que lee el archivo
- Compilo
- Clickeo el botón (se guarda la información, sale el messagebox)
- Cierro el programa
- Descomento lo que comenté
- Compilo
- Me sale el msgbox con todos valores '0'. Si saco 'F := finanzas.create;' en la parte de lectura, el message box inicial me da unos números rarísimos...
¿Qué estoy haciendo o escribiendo mal?
Muchas gracias