|
Тема |
Форма в разклонение |
|
Автор | Aджaмия (Нерегистриран) | |
Публикувано | 11.08.01 11:24 |
|
|
То си е ясно, че по подразбиране проблема е в програмиста само, че в случая съвсем нищо не мога да разбера:
в модула на главната форма:
uses ...ThreadForm;
Procedure TForm1.Button1Click(Sender: TObject); // Form1 - главната
begin
FormThread := TFormThread.Create(FALSE);
end;
----------
unit ThreadForm;
interface
type TForm2 = class(TForm)
public
FDESTROY: boolean;
constructor CreateNew(AOwner: TComponent); reintroduce;
end;
TFormThread = class(TThread)
private
Form2: TForm2;
protected
procedure Execute; override;
end;
var FormThread: TFormThread;
implementation
constructor TForm2.CreateNew(AOwner: TComponent);
begin
inherited CreateNew(AOwner);
FDESTROY := FALSE;
.................
end;
procedure TFormThread.Execute;
begin
Form2 := TForm2.CreateNew(Application);
try
Form2.Show;
repeat
Application.ProcessMessages;
until Terminated or Form2.FDESTROY;
finally
Form2.Free;
end;
end;
------------
Видимо аз поне в тоя код не виждам проблем. Обаче като го пусна става много весело - тръгват едни Ацес виолатиони, от време на време някоя страна грешка като "Липсващ Канвас" или нещо такова, "Canot change Visible in SHow"??, а при повече късмет Win казва, че няма и памет. В единия случай се оказа че няма памет да отвори "Start" менюто. Още по странно ми се вижда постъпковото изпълнение, през реда:
until Terminated or Form2.FDESTROY;
си минава без проблеми макар че и двете са FALSE.
Някой мойе ли да ми го обясни това?
|
| |
|
|
|