![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Окно в потоке 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]Для чего это нужно?