Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Окно в потоке delphi [D7, WinXP]


shake-c ©   (2006-05-29 05:16:00) 

Всем привет !!!
Помогите плиз кто знает.
Нужно создать на делфи поток в котором помимо всего прочьего была бы форма и 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 ...."

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


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

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


Ihor Osov'yak   (2006-05-29 12:27:00) [2]

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

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

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


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

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


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


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


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


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


Никак.


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

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


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

> shake-c   (29.05.06 05:16)

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


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

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


MBo   (2006-05-29 08:17:00) [8]

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо