![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
вопрос связи поток и DataModule [D7, XP]
vegarulez © (2009-02-24 08:09:00)добрый день всем мастерам!
Вопрос такой - почему при обращении из потока(Tthread) к компоненту из DataModule происходит ошибка. С DataModule из потока нельзя работать?
...
Synchronize(UpdateCaption);
...
procedure TSt.UpdateCaption;
begin
try
if DModule.DM.ZConnection1.Connected=false then
DModule.DM.ZConnection1.Connected:=true;
DModule.DM.ZQuery1.Close;
DM.ZQuery1.Sql.Text:=sql_str;
DM.ZQuery1.ExecSQL;
except
on E: Exception do
begin
DM.ZQuery1.Close;
File_Save(''+#10+'Error:St.UpdateCaption:'+ E.Message +'_'+ inttostr(E.HelpContext));
end;
end;
end;
vegarulez (2009-02-24 14:53:00) [1]Anatoly Podgoretsky © (24.02.09 14:13) [10]
под бутиратом? :)
Anatoly Podgoretsky (2009-02-24 14:13:00) [2]
> просто я делаю DM.Free после Application.Run в project2.
> pas;
Нифига себе.
Anatoly Podgoretsky (2009-02-24 14:13:00) [3]
> Application.CreateForm(TDM, DM);
Нифига себе.
vegarulez (2009-02-24 10:43:00) [4]Медвежонок Пятачок © (24.02.09 10:21) [7]
Сергей М. © (24.02.09 09:50) [4]
аха спасибо.
Помогло.
Application.CreateForm(TDM, DM);
Медвежонок Пятачок (2009-02-24 10:21:00) [5]она инициализирована )
"она" неинициализирована.
vegarulez (2009-02-24 10:13:00) [6]хм... что-то не помогло вылетает на проверке
if DM.ZConnection1.Connected=false then
vegarulez (2009-02-24 10:10:00) [7]всё кажется понял в чём трабла...
она инициализирована )
просто я делаю DM.Free после Application.Run в project2.pas;
Поэтому конешно он не может к нему обратится ))
Сечас уберу эту досадную оплошность.
Сергей М. (2009-02-24 09:50:00) [8]
> vegarulez © (24.02.09 09:14) [2]
Скорее всего DM не инициализирована
девушка (2009-02-24 09:16:00) [9]DModule.DM - что за переменная??? какой тип?
Вы уверены что все используемые переменные успевают инициализироваться до запуска потока?
vegarulez (2009-02-24 09:14:00) [10]
try
...
Synchronize(UpdateCaption);
...
except
on E: Exception do
File_Save(''+#10+'Error:SE.Execute_2:'+ E.Message +'_'+ inttostr(E.HelpContext));
end;
....
procedure TSt.UpdateCaption;
begin
try
if DModule.DM.ZConnection1.Connected=false then
DModule.DM.ZConnection1.Connected:=true;
DModule.DM.ZQuery1.Close;
DM.ZQuery1.Sql.Text:=sql_str;
DM.ZQuery1.ExecSQL;
except
on E: Exception do
begin
DM.ZQuery1.Close;
File_Save(''+#10+'Error:St.UpdateCaption:'+ E.Message +'_'+ inttostr(E.HelpContext));
end;
end;
end;
ошибка -
Error:SE.Execute_2:Access violation at address 005A0C9B in module 'Project2.exe'. Read of address 00000058_0_metka:2
Сергей М. (2009-02-24 08:56:00) [11]
> С DataModule из потока нельзя работать?
Можно.
> почему ..происходит ошибка
Тебе видней почему.
Отсюда не видно что за ошибка.