Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.07.09;
Скачать: CL | DM;

Вниз

Окно в потоке delphi   Найти похожие ветки 

 
shake-c   (2006-05-29 05:16) [0]

Всем привет !!!
Помогите плиз кто знает.
Нужно создать на делфи поток в котором помимо всего прочьего была бы форма и stringgrid. Создаю юнит с потоком:

-----------------------------------------------------------------
unit modul1;

interface

uses
 Classes, Windows, Messages, SysUtils, Graphics, Controls, Forms, Dialogs,
 StdCtrls, ComCtrls, Math, ExtCtrls, Grids;

type
 th_class = class(TThread)
 private
   { Private declarations }
 protected
   procedure Execute; override;
 end;

type
 mf1 = class(TForm)
   //matrix1: TStringGrid;
 private
   { Private declarations }
 public
   { Public declarations }
 end;

procedure th_class.Execute;
var
matrix1: TStringGrid;
modul1f: mf1;

begin

modul1f.Create(application);
matrix1.Create(modul1f);
matrix1.colcount := 1;
matrix1.rowcount := 1;
.......

end;
-----------------------------------------------------------------

делаю в главном юните
----------------------------------------------------
var
modul1 : th_class;
begin
modul1 := th_class.Create(false);
end;
----------------------------------------------------

получаю "eror ..... acces violation at address ...."

В чём дело ? как быть ?


 
Сергей М. ©   (2006-05-29 08:17) [1]

Форма д.б. в основном потоке.


 
MBo ©   (2006-05-29 08:17) [2]

Для чего это нужно?


 
Юрий Зотов ©   (2006-05-29 08:46) [3]

> shake-c   (29.05.06 05:16)

Сделайте наоборот - форма создает поток, а тот выполняет нужную работу.


 
shake-c   (2006-05-29 11:28) [4]

что такое "д.б." и
как сделать её не в основном потоке ?


 
Сергей М. ©   (2006-05-29 11:40) [5]


> что такое "д.б."


д.б. = должна быть


> как сделать её не в основном потоке ?


Никак.


 
Сергей М. ©   (2006-05-29 11:42) [6]

Лучше опиши задачу/ситуацию, которая привела тебя к мысли использовать доп.поток для создания/уничтожения формы и работы с ее методами/свойствами


 
Ihor Osov'yak ©   (2006-05-29 12:27) [7]

> > как сделать её не в основном потоке ?

не использовать vcl. Но это уже будет не форма (как это понимается в делфи).

ps. А собственно почему такое странное желание? Намного проще и стройнее в главном потоке делать необходимую физуализацию и интерфейс, а весь функционал, выполняющийся более-менее заметное время - в рабочие потоки.. Конечно, тогда возникает вопрос синхронизации, но это значительно менее трудоемка, чем делать интерфейс и визуализацию в отдельных потоках (во всяком случае - на делфи).


 
shake-c   (2006-05-30 14:45) [8]

На счёт того зачем - долгая и не интересная история.
Действительно, наверно я плохо продумал архитектуру программы. Тем не менее, спасибо всем за ответы ; )



Страницы: 1 вся ветка

Текущий архив: 2006.07.09;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.05 c
10-1121666630
Mefodiy
2005-07-18 10:03
2006.07.09
NumberFormat не срабатывает


15-1149849883
Сергей М.
2006-06-09 14:44
2006.07.09
Проблема с UDATE.COM


15-1150093514
alex-drob
2006-06-12 10:25
2006.07.09
SQL LEFT JOIN


2-1151061195
.ruslan
2006-06-23 15:13
2006.07.09
простое увеличение времени TDateTime


2-1150841634
!_SM_!
2006-06-21 02:13
2006.07.09
TChart