Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Где ошибка? Подскажите.... [D7]


Страницы:   1 2

-=Germe$=- ©   (2006-08-09 10:47:00) 

При закрытии окна вылетает ошибка. Вот код

var Pic, Pic1: array of array of TColor;
   X, Y: Integer;
   f: File;
begin
 SetLength(Pic, Image1.Width);
 For Y:=0 to Image1.Height do
   SetLength(Pic[Y], Image1.Width);
 For X:=0 to Image1.Width-1 do
   For Y:=0 to Image1.Height-1 do
     Pic[Y, X]:=Image1.Picture.Bitmap.Canvas.Pixels[X, Y];
 SetLength(Pic1, Image1.Width);
 For Y:=0 to Image1.Height do
   SetLength(Pic1[Y], Image1.Width);
 AssignFile(F, 'd:\Temp.temp');
 ReWrite(F);
 BlockWrite(F,Pic, SizeOf(Pic));
 CloseFIle(F);
 AssignFile(F, 'd:\Temp.temp');
 Reset(F, 1);
 BLockRead(F, Pic1, SizeOf(Pic));
 CloseFile(F);
 For X:=0 to Image1.Width do
   For Y:=0 to Image1.Height do
     Image2.Canvas.Pixels[X, Y]:=Pic1[Y, X];
end;


ORMADA   (2006-08-09 12:14:00) [1]

блин 100 пудова в 13 строке!:)


-=Germe$=-   (2006-08-09 11:19:00) [2]

Всем спасибо... Особенно Slym(Главный флудер...), остальным ПАСИБО... Все работает


Slym   (2006-08-09 11:18:00) [3]

Slym ©   (09.08.06 11:14) [19]
загрузки

Туплю это она и есть, только без контроля цветности


Slym   (2006-08-09 11:14:00) [4]

clickmaker ©   (09.08.06 11:09) [17]
Ты забыл привести код загрузки :)


Slym   (2006-08-09 11:12:00) [5]

Тормоза нереальные плодишЪ... Скока по времени код выполняется? помнож на твои -=Germe$=- ©   (09.08.06 10:55) [3] много битмапов будети будет 100% CPUtime долго-долго


clickmaker   (2006-08-09 11:09:00) [6]

Bmp := TBitmap.Create;
Bmp.Width := Width1;
Bmp.Height := Height1;
BlockRead(F, Bmp.ScanLine, Width1 * Height1);

если уж так хочется с сырым форматом работать


Сергей М.   (2006-08-09 11:09:00) [7]


> Я ее точно не юзаю


Юзаешь. Но неявно.
Хотя тебе уже сказали - код твой никуда не годится, потому что в нем гора ошибок и несуразностей.
К тому же см. [6]


-=Germe$=-   (2006-08-09 11:07:00) [8]


> Собираешь проект с опциями отладки, запускаешь из-под среды,
>  выбираешь меню Search -> Find Error .., вводишь там 00401C3A
> и получаешь инф-цию о строчке, выполнение которой привело
> к ошибке.

Некто assembler - финкция DeleteFree... Я ее точно не юзаю...


clickmaker   (2006-08-09 11:05:00) [9]

у тебя каша полная... Мало того что попиксельно читаешь, так еще и криво.
Размерности путаешь, границы массивов переходишь, BlockRead одно, а Sizeof другого...


Romkin   (2006-08-09 11:05:00) [10]

Да что там думать, млин. Включи контроль границ! Вылезет где надо, а не когда уже поздно. За границу массива ты вылезаешь, уже сказали.
Установи Range checking & Owerflow checking ($R+ & $Q+)


Сергей М.   (2006-08-09 11:04:00) [11]


> -=Germe$=- ©   (09.08.06 11:01) [8]


Собираешь проект с опциями отладки, запускаешь из-под среды, выбираешь меню Search -> Find Error .., вводишь там 00401C3A и получаешь инф-цию о строчке, выполнение которой привело к ошибке.


-=Germe$=-   (2006-08-09 11:04:00) [12]


> кстати,
> For Y:=0 to Image1.Height-1 do
> если уж на то пошло

Щас это мне саавсем не важно.... Это просто эксперименты... Дальше будет нормальный проект...


-=Germe$=-   (2006-08-09 11:02:00) [13]


> Как думаешь, отладчик в делфи для кого встроили?

Явно не для меня.... Ну не помагает он....

Если убрать AssignFile(F, 'd:\Temp.temp');
Reset(F, 1);
BLockRead(F, Pic1, SizeOf(Pic));
CloseFile(F);
то все работает


clickmaker   (2006-08-09 11:01:00) [14]

кстати,
For Y:=0 to Image1.Height -1do
если уж на то пошло


-=Germe$=-   (2006-08-09 11:01:00) [15]


> Ну и по какому адресу ? Что, слово за словом из тебя вытягивать
> информацию ?)
> Или для тебя все ошибки на одно лицо ?)

00401C3A in module 'project1'  Write of address 0094BFFF


Плохиш   (2006-08-09 10:59:00) [16]


> -=Germe$=- ©   (09.08.06 10:47)

Как думаешь, отладчик в делфи для кого встроили?


clickmaker   (2006-08-09 10:59:00) [17]


> Как их в один файл запихнуть?

TBitmap.SaveToStream


Сергей М.   (2006-08-09 10:58:00) [18]

Ну и по какому адресу ? Что, слово за словом из тебя вытягивать информацию ?)
Или для тебя все ошибки на одно лицо ?)


-=Germe$=-   (2006-08-09 10:56:00) [19]


> Какая ошибка-то ?)

Access Violation at address...


-=Germe$=-   (2006-08-09 10:55:00) [20]


> и потом: зачем читать и писать в файл попиксельно? Есть
> же TPicture.Load/SaveFromFile

Так надо... Потом будет тип в котором много битмапов будет... Как их в один файл запихнуть?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо