Fórum Problemas com Threads #347981
26/10/2007
0
Não to entendendo o que tá acontecendo.
Uso Delphi 2007 com todas as atualizações.
procedure Thread_Restore.Criar_Ponto;
begin
frm_CreateRestore.lbl.Caption := ´Teste..´;
end;
procedure Thread_Restore.Execute;
begin
Synchronize(Criar_Ponto);
end;
procedure Tfrm_CreateRestore.FormShow(Sender: TObject);
var
ThrRestore: Thread_Restore;
begin
ThrRestore := Thread_Restore.Create(False)
end;
Ele cria a thread mas na hora de mudar o texto do caption, a Thread fecha.
O que pode ser?
Bernardop
Curtir tópico
+ 0Posts
26/10/2007
Massuda
Gostei + 0
26/10/2007
Bernardop
Gostei + 0
26/10/2007
Massuda
frm_CreateRestore tem um valor válido? Ou seja, esse form é criado automaticamente pelo Delphi ou quando você cria manualmente o form usa essa variável para receber o form?
Gostei + 0
26/10/2007
Bernardop
Gostei + 0
26/10/2007
Bernardop
Gostei + 0
26/10/2007
Massuda
Gostei + 0
26/10/2007
Bernardop
procedure Create_Form(Tfrm:TFormClass; frm:TForm);
begin
frm := Tfrm.Create(Application);
try
frm.Position := poScreenCenter;
frm.BorderStyle := bsNone;
frm.ShowModal;
finally
FreeAndNil(frm);
end;
end;
Muito estranho não estar sincronizando. O código do form é exatamente o que postei anteriormente.
Alguma sugestão?
Gostei + 0
26/10/2007
Massuda
Experimente por um breakpoint depois do .Create e veja qual o valor de frm_CreateRestore; provavelmente será nil. Sem entrar no mérito do código em si, faltou por um [b:96ccf1c26e]var[/b:96ccf1c26e]...
procedure Create_Form(Tfrm:TFormClass; var frm:TForm);
Gostei + 0
26/10/2007
Bernardop
como vou chamar o procedimento?
Já que chamar dessa maneira
Create_Form(Tfrm_CreateRestore, frm_CreateRestore);
não funcionaria mais.
Gostei + 0
26/10/2007
Massuda
Gostei + 0
26/10/2007
Bernardop
[DCC Error] E2033 Types of actual and formal var parameters must be identical
Gostei + 0
26/10/2007
Massuda
procedure Create_Form(Tfrm:TFormClass; var frm); var F: TForm; begin F := Tfrm.Create(Application); Tfrm(frm) := F; try F.Position := poScreenCenter; F.BorderStyle := bsNone; F.ShowModal; finally FreeAndNil(F); Tfrm(frm) := nil; end; end;
Gostei + 0
26/10/2007
Bernardop
Ambos derão
[DCC Error] E2066 Missing operator or semicolon
Gostei + 0
26/10/2007
Massuda
procedure Create_Form(Tfrm:TFormClass; var frm); var F: TForm; begin F := Tfrm.Create(Application); TForm(frm) := F; try F.Position := poScreenCenter; F.BorderStyle := bsNone; F.ShowModal; finally FreeAndNil(F); TForm(frm) := nil; end; end;
Gostei + 0
26/10/2007
Bernardop
Muito obrigado!
Abração!
Bernardo.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)