не создается форма в потоке, может я чтото не так делаю или так вобще нельзя делать? читал что форму в потоке можно только средствами winapi сделать , но для меня это пока что туман.
вот кусок кода моей длл с созданием формы, в обычном режиме форма создается нормально, а пытаюсь засунуть в поток - и форма не появляется.
из основного приложения по кнопке вызывается функция Start(она экспортирована)
Код:
unit DLL;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons,
ExtCtrls,ShareMem;
type
TMyThread = class(TThread)
private
{ Private declarations }
protected
procedure FormShow;
procedure FreeForm;
procedure Execute; override;
end;
TForm1 = class(TForm)
ButtonB: TButton;
ButtonS: TButton;
ComboBox1: TComboBox;
ButtonCS: TButton;
ButtonCB: TButton;
RadioGroup1: TRadioGroup;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure RadioGroup1Click(Sender: TObject);
procedure ButtonCBClick(Sender: TObject);
procedure ButtonBClick(Sender: TObject);
procedure ButtonSClick(Sender: TObject);
procedure ButtonCSClick(Sender: TObject);
private
{ Private declarations }
CallForm: THandle;
public
{ Public declarations }
end;
procedure Start;
var
Form1: TForm1;
T1: TMyThread;
implementation
procedure TMyThread.Execute;
begin
// while not Terminated do
Synchronize(FormShow);
end;
procedure Start;
begin
T1:=TMyThread.Create(false);
//TMyThread.FormShow;
end;
procedure TMyThread.FormShow;
begin
// with TForm1.Create(Application) do ShowModal;
Form1:=TForm1.Create(nil);
Form1.ShowModal;
end;