Форум: "Начинающим";
Текущий архив: 2009.04.19;
Скачать: [xml.tar.bz2];
ВнизОшибка : "Неверный дескриптор" и "Параметр задан не верно" Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.049 c