Вниз
Скачать: CL | DM;

Ошибка во время выполнения потока   Найти похожие ветки 

← →
bober   (2006-05-21 13:23) [0]

Привет

Хочу сделать выезжающее из трея popup-окно.
Во время выполнения потока возникает ошибка
Access violation и отладчик останавливается в юните Variants

procedure _VarToLStr(var S: string; const V: TVarData);
begin
 case V.VType of // вот на этой строке


подскажите где может быть ошибка, а то чтото не врубаюсь

Функцию которая двигает формой создаю в отдельном потоке вот так:

procedure TfrmInputPopup.AnimateShow;
begin
 Show;
 CreateThread(nil, 0, @AnimatePopup, Self, 0, FAnimateThreadHandle);
end;


Сама функция вот:

function AnimatePopup(FormHandle: Pointer): integer; stdcall;
var
 i, StepsNumber, OffsetRate, PrevCounterVal: integer;
begin
 StepsNumber := 30;
 with TfrmInputPopup(FormHandle) do
 begin
   OffsetRate := Height div StepsNumber;
   PrevCounterVal := ClientForm.Counter;
   i := 0;
   while i < StepsNumber do
   begin
     while PrevCounterVal = ClientForm.Counter do ;
     PrevCounterVal := ClientForm.Counter;
     EnterCriticalSection(CritSection);
     Top := Top - OffsetRate;
     Refresh;
     LeaveCriticalSection(CritSection);
     inc(i);
   end
 end
end;

Надеюсь этого достаточно

Заранее спасибо


← →
Leonid Troyanovsky ©   (2006-05-21 18:01) [1]


> bober   (21.05.06 13:23)  

> Функцию которая двигает формой создаю в отдельном потоке


Манипулировать формой во отдельном потоке в дельфи заказано.

--
Regards, LVT.


← →
bober   (2006-05-21 19:10) [2]

Leonid Troyanovsky

>
> Манипулировать формой во отдельном потоке в дельфи заказано.
>

В каком смысле запрещено? Не рекомендуется, нарушает какие-то правила, соглашения? Можно поподробнее пожалуйста?

Функция эта делает то что я хочу(т.е. форма выезжает), только где-то в 1 случае из 3-х возникает ошибка.


← →
Leonid Troyanovsky ©   (2006-05-21 20:01) [3]


> bober   (21.05.06 19:10) [2]

> > Манипулировать формой во отдельном потоке в дельфи заказано.

> В каком смысле запрещено? Не рекомендуется, нарушает какие-
> то правила, соглашения?


Соглашение одно - манипулирует формами только первичный поток.

--
Regards, LVT.



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.048 c
1-1155134251
Чапаев
2006-08-09 18:37
2006.09.24
Pos() RTL


2-1157398753
TimScorp
2006-09-04 23:39
2006.09.24
FreeReport


2-1157617630
newbie2
2006-09-07 12:27
2006.09.24
Как объект передать через интовую переменную?


2-1157392733
serko
2006-09-04 21:58
2006.09.24
Мигание формы!


3-1153354723
VitalikS
2006-07-20 04:18
2006.09.24
Из FireBird в PostgreSQL




   Наверх