Ver Mensaje Individual
  #5  
Antiguo 16-06-2013
joseprad joseprad is offline
Miembro
 
Registrado: oct 2006
Posts: 36
Reputación: 0
joseprad Va por buen camino
Hola Nelson.

Te adjunto el código completo del Form8

Código Delphi [-]
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, JfLabel, JfButtons, ExtCtrls;

type
  TForm8 = class(TForm)
    btoIniciar: TJfBitBtn;
    btoParar: TJfBitBtn;
    lbl1: TLabel;
    procedure btoIniciarClick(Sender: TObject);
    procedure btoPararClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  TReloj = class(TThread)
  private
    Hora: Integer;
    Salir: Boolean;
    procedure ActualizaTexto;
  protected
    procedure Execute; override;
    procedure Terminar;
  end;

var
  Form8: TForm8;
  Reloj: TReloj;
  Corriendo: Boolean;

implementation

{$R *.dfm}
{ TReloj }

procedure TReloj.ActualizaTexto;
begin
  Form8.lbl1.Caption:=IntToStr(Hora);
end;

procedure TReloj.Execute;
begin
  Salir := False;
  Hora := 0;
  while not Salir do begin
    Synchronize(ActualizaTexto);
    sleep(1000);
    inc(Hora);
  end;
end;

procedure TReloj.Terminar;
begin
  Salir := true;
end;

procedure TForm8.btoIniciarClick(Sender: TObject);
begin
  if not Corriendo then begin
    Reloj := TReloj.Create(False);
    Corriendo := true;
  end;

end;

procedure TForm8.btoPararClick(Sender: TObject);
begin
  if Corriendo then begin
    Reloj.Terminar;
    Reloj.Free;
    Corriendo := False;
  end;
end;

procedure TForm8.FormCreate(Sender: TObject);
begin
  Corriendo := False;
end;

end.

Este programa que no es mas que un contador, funciona perfectamente.

Pero si lo arranco desde otro programa con:

Código Delphi [-]
with TForm8.Create(self) do begin
   ShowModal;
   Free;
end;

entonces me da el error.

Saludos
Responder Con Cita