Главная страница
    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.049 c
2-1156751603
novill
2006-08-28 11:53
2006.09.17
Как устанавливать новые компоменты и не терять старых?


15-1156505558
АК
2006-08-25 15:32
2006.09.17
глючный сканер


15-1155678234
Караед
2006-08-16 01:43
2006.09.17
Домофон!


15-1156740957
Rouse_
2006-08-28 08:55
2006.09.17
Петруха с ДР Тебя !!!


15-1156633166
demikasy
2006-08-27 02:59
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский