Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 26153
Рейтинг: 2127
#181: 2010-10-29 14:38:48 ЛС | профиль | цитата
Assasin, а какой пример юзать-то, где эта ошибка проявляется
карма: 22

0
Разработчик
Ответов: 4698
Рейтинг: 426
#182: 2010-10-29 14:40:02 ЛС | профиль | цитата
Второй пример от Poputchick-а (который открывающийся тег), см. выше его пост
карма: 10
0
Разработчик
Ответов: 26153
Рейтинг: 2127
#183: 2010-10-29 14:40:32 ЛС | профиль | цитата
А где найти файл Compil.picp
карма: 22

0
Разработчик
Ответов: 4698
Рейтинг: 426
#184: 2010-10-29 14:44:22 ЛС | профиль | цитата
Poputchik писал(а):
2. При написании этого вопроса хотел сделать наглядный пример, но он не работает.

Ты вот с этого качал? Если да, то, поставив дебаг на линке onCreate, и запустив в режиме трассировки, ты увидишь, что к doSaveToStream линк даже не доходит, так что искать никакого файла не надо
карма: 10
0
Разработчик
Ответов: 26153
Рейтинг: 2127
#185: 2010-10-29 14:51:41 ЛС | профиль | цитата
Assasin, вот это вызывает у тебя ошибку -- Type2Stream(typ,st)
карма: 22

1
Голосовали:Assasin
Разработчик
Ответов: 4698
Рейтинг: 426
#186: 2010-10-29 15:01:53 ЛС | профиль | цитата
nesco писал(а):
Assasin, вот это вызывает у тебя ошибку -- Type2Stream(typ,st)

Точно... Теперь я понял, почему при отладке проги (в режиме схемы) не подсвечивается линк Type.onCreate -> Type_Save.doSaveToStream : в потоке то передается Flags, вот я и попался на это.
карма: 10
0
Разработчик
Ответов: 26153
Рейтинг: 2127
#187: 2010-10-29 15:12:46 ЛС | профиль | цитата
А точнее, вот здесь, внутри, ошибка -- WVar(lst,@dt)
------------ Дoбавленo в 15.12:
А еще точнее, вот здесь --

     data_bitmap:
begin
bd := ToBitmap(dat^);
bd.saveToStream(sst);
end;

А вот почему она там возникает, разбирайся сам
Что-то мне кажется, что dat^ у тебя ссылается не на битмап
карма: 22

0
Разработчик
Ответов: 4698
Рейтинг: 426
#188: 2010-10-29 15:14:08 ЛС | профиль | цитата
nesco писал(а):
А вот почему она там возникает, разбирайся сам

Да, я уже понял, что там, спасибо тебе, я уже разобрался, в чем ошибка Как я мог забыть тогда про проверку на nil? Вот я балбес...
карма: 10
0
Разработчик
Ответов: 26153
Рейтинг: 2127
#189: 2010-10-29 15:17:18 ЛС | профиль | цитата
[flood]
Assasin писал(а):
Вот я балбес...

Гы, гы, гы. Все мы бываем такими, не ты один[/flood]
карма: 22

0
Разработчик
Ответов: 4698
Рейтинг: 426
#190: 2010-10-29 15:27:49 ЛС | профиль | цитата
nesco писал(а):
Гы, гы, гы

Ура, я вспомнил, почему я так сделал! Я ж все тогда делал по шаблону, в роли шаблона взял стандартный компонент... А теперь буду смеяться я... Угадай, что тут не так
code_21302.txt
карма: 10
0
файлы: 1code_21302.txt [1.7KB] [309]
Разработчик
Ответов: 26153
Рейтинг: 2127
#191: 2010-10-29 15:34:39 ЛС | профиль | цитата
Assasin писал(а):
Угадай, что тут не так

А я тут причем, тут пусть угадывает Автор компонента
карма: 22

0
Разработчик
Ответов: 4698
Рейтинг: 426
#192: 2010-10-29 15:36:32 ЛС | профиль | цитата
nesco писал(а):
А я тут причем, тут пусть угадывает Автор компонента

А я на тебя и не намекал, я знаю, что автор никто иной, как
nesco писал(а):
начальник транспортного цеха

[flood]Охх... я знаю, что сейчас скажет nesco (Эхх... не угадал )[/flood]
карма: 10
0
Разработчик
Ответов: 26153
Рейтинг: 2127
#193: 2010-10-29 15:37:29 ЛС | профиль | цитата
А вообще-то, в таком режиме работы PNG на нижней точке у него нет рисунка, а в компоненте нет провери на nil

del
карма: 22

0
Разработчик
Ответов: 4698
Рейтинг: 426
#194: 2010-10-29 15:43:13 ЛС | профиль | цитата
Для Poputchik: если данный баг тебя тормозит, то пока можешь на свой страх и риск применить данную заплатку: замени строки 78-86 в файле Type_Save.pas (Ctrl+F на компоненте) на эти:
#pas
data_bitmap:
begin
bd := ToBitmap(dat^);
if bd = nil then begin
bd := NewBitmap(0,0);
bd.saveToStream(sst);
bd.Free;
end else bd.saveToStream(sst);
end;
А я пока поищу другие заковырки в коде (правда не сегодня, сегодня уже времени нет, надеюсь к завтру залью фикс)
карма: 10
0
Разработчик
Ответов: 26153
Рейтинг: 2127
#195: 2010-10-29 15:51:49 ЛС | профиль | цитата
Assasin, а зафиг ты делаешь пустой битмап Хотя, может это и правильно
------------ Дoбавленo в 15.51:
А вообще-то, не очень правильно. Я посмотрел, что saveToStream не записывает пустой битмап, так что, телодвижения с созданием пустого битмапа не имеют никого толку и достаточно было сделать так


           data_bitmap:
begin
bd := ToBitmap(dt);
if bd <> nil then
bd.saveToStream(st);
end;
на выходе получим одно и то же
карма: 22

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)