Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.07.09;
Скачать: [xml.tar.bz2];

Вниз

Окно в потоке 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.008 c
2-1150492533
FiJer
2006-06-17 01:15
2006.07.09
Помогите разобраться с компонентом


2-1151045283
gost
2006-06-23 10:48
2006.07.09
Sql запросы


1-1149017519
redlord
2006-05-30 23:31
2006.07.09
как узнать родителя окна по указателю


11-1129885598
tico-tico
2005-10-21 13:06
2006.07.09
Tabstop у Combobox


2-1151051290
zdm
2006-06-23 12:28
2006.07.09
Ограничение символов в "Edit"





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский