Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.04.19;
Скачать: CL | DM;

Вниз

Ошибка : "Неверный дескриптор" и "Параметр задан не верно"   Найти похожие ветки 

 
worldmen   (2009-03-02 09:56) [0]

Есть процедуры:

procedure TForm1.tmTrueFromDockTimer(Sender: TObject);              
Var
 bmpDoc : TBitmap;
 R,G,B : Word;
 x,y: integer;
Begin      
 x := StrToInT(Edit37.Text);
 y := StrToInT(Edit38.Text);

 repeat
   PrintScreen(x, y, 1, 1, bmpDoc);
   R := GetRValue(bmpDoc.Canvas.Pixels[0,0]);
   G := GetGValue(bmpDoc.Canvas.Pixels[0,0]);
   B := GetBValue(bmpDoc.Canvas.Pixels[0,0]);
 until (R<100)and(G>100)and(B>100);
 ...
end

и

procedure TForm1.tmFlyTimer(Sender: TObject);                      
Var
 bmpStop : TBitmap;
 R,G,B : Word;
 x,y: integer;
Begin
 tmFly.Enabled:=false;
 x := StrToInT(Edit37.Text);
 y := StrToInT(Edit38.Text);

 repeat
   PrintScreen(x, y, 1, 1, bmpStop);
   R := GetRValue(bmpStop.Canvas.Pixels[0,0]);
   G := GetGValue(bmpStop.Canvas.Pixels[0,0]);
   B := GetBValue(bmpStop.Canvas.Pixels[0,0]);
 until (R>100)and(G>100)and(B>100);
 ...
End

procedure TForm1.PrintScreen(x,y,w,h: integer; var bmp : TBitmap);
Begin    
 bmp := TBitmap.Create;
 Bmp.PixelFormat := pf16Bit;
 bmp.Width := w;
 bmp.Height:= h;
 StretchBlt(bmp.Canvas.Handle,0,0, w,h, GetDC(0),x,y, w,h, SRCCOPY);
End;


Выполняются эти процедуры по таймерам (последовательно через промежуток времени). Програмы работала нормально, я дописывал другие процедуры не связанные с этими. Позже при выполнении появилась ошибка "Направильный дескриптор" в первой процедуре на строке
R := GetRValue(bmpDoc.Canvas.Pixels[0,0]);
Я сделал точку останова на предыдущей строке и выполнил пошагово - выполнилось без ошибок.
Я запустил на выполнение программу с начала - первая проедура выполнилась, а такая же ошибка возникла на второй процедуре
procedure TForm1.tmFlyTimer(Sender: TObject); в такойже строке:
R := GetRValue(bmpStop.Canvas.Pixels[0,0]);
Исправить ошибку не получилось. Принес прогу на др. ком, запустил - опять ругается на строку из первой процедуры.


 
Rouse_ ©   (2009-03-02 10:36) [1]

Удали DCU и сделай ребилд


 
Anatoly Podgoretsky ©   (2009-03-02 11:03) [2]

Зачем два практически одинаковых обработчика, к тому же между ними и между собой будут гонки и как результат разрушение стека.


 
worldmen   (2009-03-02 11:04) [3]

Удалил dcu
И сделал: Project->Build All Projecs - не помогло.


 
Ega23 ©   (2009-03-02 11:06) [4]

Прикольно. А через сколько времени программа тебе говорила о "недостаточно оперативной памяти для работы"?


 
worldmen   (2009-03-02 11:19) [5]

Похоже нашел ошибку - связано и с таймером тоже.


 
worldmen   (2009-03-02 11:20) [6]


> Прикольно. А через сколько времени программа тебе говорила
> о "недостаточно оперативной памяти для работы"?

Говорил при заходе второй раз в repeat


 
Ega23 ©   (2009-03-02 11:31) [7]


> Говорил при заходе второй раз в repeat


Сам косяк найдёшь, или подсказать?


 
clickmaker ©   (2009-03-02 12:11) [8]

тут не один косяк. К тому же, неоптимально


 
Ega23 ©   (2009-03-02 12:16) [9]


> тут не один косяк. К тому же, неоптимально


глобальный пока вижу один. Остальные - надо весь код смотреть.


 
Rouse_ ©   (2009-03-02 12:18) [10]


> глобальный пока вижу один.

У него там троеточие стоит, так что не факт что деструктора нет :)


 
Ega23 ©   (2009-03-02 12:21) [11]


> У него там троеточие стоит


Глаз-ватерпас. Не заметил.  :)


 
clickmaker ©   (2009-03-02 12:27) [12]

> Говорил при заходе второй раз в repeat

судя по этому, деструктора все-таки нет )


 
worldmen   (2009-03-02 12:33) [13]

Я уже написал выше - нашел ошибку. Всем спасибо.



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

Текущий архив: 2009.04.19;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.016 c
2-1236229299
Abcdef123
2009-03-05 08:01
2009.04.19
На что заменить TStringGrid?


3-1219848625
tipman
2008-08-27 18:50
2009.04.19
созданный DBF файл не открывается в excel


1-1210074441
9899100
2008-05-06 15:47
2009.04.19
richedit


2-1235826463
Nazarius
2009-02-28 16:07
2009.04.19
как в memo написать в определенную строчку


15-1234857516
БарЛог
2009-02-17 10:58
2009.04.19
Write in C