Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.09.17;
Скачать: [xml.tar.bz2];

Вниз

Где ошибка? Подскажите....   Найти похожие ветки 

 
-=Germe$=- ©   (2006-08-09 10:47) [0]

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

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;


 
clickmaker ©   (2006-08-09 10:53) [1]

во-первых
SetLength(Pic, Image1.Width);
For Y:=0 to Image1.Height do
длину массива ставишь равной ширине, а потом идешь по высоте. Ну если картинка квадратная, сработает

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


 
Сергей М. ©   (2006-08-09 10:54) [2]

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


 
-=Germe$=- ©   (2006-08-09 10:55) [3]


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

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


 
-=Germe$=- ©   (2006-08-09 10:56) [4]


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

Access Violation at address...


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

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


 
clickmaker ©   (2006-08-09 10:59) [6]


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

TBitmap.SaveToStream


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


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

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


 
-=Germe$=- ©   (2006-08-09 11:01) [8]


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

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


 
clickmaker ©   (2006-08-09 11:01) [9]

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


 
-=Germe$=- ©   (2006-08-09 11:02) [10]


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

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

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


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


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

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


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


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


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


 
Romkin ©   (2006-08-09 11:05) [13]

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


 
clickmaker ©   (2006-08-09 11:05) [14]

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


 
-=Germe$=- ©   (2006-08-09 11:07) [15]


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

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


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


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


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


 
clickmaker ©   (2006-08-09 11:09) [17]

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

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


 
Slym ©   (2006-08-09 11:12) [18]

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


 
Slym ©   (2006-08-09 11:14) [19]

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


 
Slym ©   (2006-08-09 11:18) [20]

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

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


 
-=Germe$=- ©   (2006-08-09 11:19) [21]

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


 
ORMADA ©   (2006-08-09 12:14) [22]

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



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

Форум: "Основная";
Текущий архив: 2006.09.17;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.099 c
15-1156707585
Loginov Dmitry
2006-08-27 23:39
2006.09.17
Вопреки ругани форумчан


2-1156805812
7D7
2006-08-29 02:56
2006.09.17
Кодировка текста


15-1155750385
TUser
2006-08-16 21:46
2006.09.17
Гипотеза Пуанкаре


15-1156716586
Petr V. Abramov
2006-08-28 02:09
2006.09.17
33-й год жизни


2-1156777707
иван8511
2006-08-28 19:08
2006.09.17
Фукция асемблера?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский