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

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

опшипка


Страницы:   1 2

опшипка ©   (2012-05-15 21:05:00) 


var
 vBlob: TStream;
 BmpDest: Tbitmap;
begin
 BmpDest := Tbitmap.Create;
 BmpDest.PixelFormat := pf24bit;

 vBlob := ClientDataSet1.CreateBlobStream(ClientDataSet1.FieldByName('Image'), bmRead);
 try
   vBlob.Seek(0, soFromBeginning); // sереход в начало потока BLOB
   // Image1.Picture.Bitmap.LoadFromStream(vBlob);
   BmpDest.LoadFromStream(vBlob);
 finally
   vBlob.Free;
 end;

 result := BmpDest;


First chance exception at $760ED36F. Exception class EOSError with message
'System Error.  Code: 87.
Параметр задан неверно'.

vBlob.Free; //вот тут ошибка. как так?


sniknik   (2012-05-16 08:16:00) [1]

> а вы все не угомонитесь )
написано в правилах, не менять ники, не офтопить в чужих темах, не... а вы все не угомонитесь.


Ega23   (2012-05-16 08:04:00) [2]


> разве это корректно?


Ну как бы есть такой приём. только в случае чего надо nil возвращать, а там где используешь - проверять на <> nil.


> а зачем вообще BmpDest при наличии result: TBitmap?


Ну тут много чего таких вопросов вызывает.


> хех, я еще в 7 посте написал, что bmpDest уже освобождаю
> я, а вы все не угомонитесь )


Стиль Йоды написанья языком доступен мало мне


KilkennyCat   (2012-05-16 03:23:00) [3]

не знаю, но смущает. а зачем вообще BmpDest при наличии result: TBitmap?


Германн   (2012-05-16 02:59:00) [4]


> KilkennyCat ©   (16.05.12 02:57) [19]
>
>
> >  result := BmpDest;
>
> разве это корректно?

А почему бы и нет?


KilkennyCat   (2012-05-16 02:57:00) [5]


>  result := BmpDest;

разве это корректно?


KilkennyCat   (2012-05-16 02:51:00) [6]

BmpDest := Tbitmap.Create;
try
....


Германн   (2012-05-16 02:34:00) [7]


> Нуилаги   (16.05.12 02:02) [15]
>
> хех, я еще в 7 посте написал, что bmpDest уже освобождаю
> я, а вы все не угомонитесь )

Сначала покажи код, в котором ты сию функцию из [0] вызываешь и тот код, в котором ты "освобождаешь" bmpDest.


Нуилаги   (2012-05-16 02:05:00) [8]

хотя конечно есть вопрос относительно того, как это правильно делать...


Нуилаги   (2012-05-16 02:02:00) [9]

хех, я еще в 7 посте написал, что bmpDest уже освобождаю я, а вы все не угомонитесь )


Германн   (2012-05-16 01:28:00) [10]


> А вот  BmpDest - скорее всего нет
>

И я даже догадываюсь почему.


Ega23   (2012-05-16 00:34:00) [11]


> vBlob Пушкин будет память освобождать?


vBlob он освобждает. А вот  BmpDest - скорее всего нет


Anatoly Podgoretsky   (2012-05-16 00:20:00) [12]

> опшипка  (15.05.2012 21:05:00)  [0]

vBlob Пушкин будет память освобождать?


Ega23   (2012-05-16 00:03:00) [13]


> ну память кончается, это факт. т.к. не все утечки отловлены.


Ну так отлови


Нуилаги   (2012-05-16 00:00:00) [14]

ну память кончается, это факт. т.к. не все утечки отловлены. Но в моем случае он ведь о каком то параметре пишет (


Ega23   (2012-05-15 23:19:00) [15]

System Error.  Code: 87.  Out of system resources.
Ни о чём не говорит?


Inovet   (2012-05-15 23:16:00) [16]

> [7] Нуилаги   (15.05.12 23:06)
> но в один и сотен прекрасных моментов вылетает по этой ошибке

Ошибка в другом месте.


Нуилаги   (2012-05-15 23:06:00) [17]

не как бы код работает, но в один и сотен прекрасных моментов вылетает по этой ошибке. Засунул vBlob := ClientDataSet1.CreateBlobStream(ClientDataSet1.FieldByName('Image'), bmRead);

под try и исправил баг у освобождением картинки которую эта процедура возвращает и че то не ругается...


Ega23   (2012-05-15 22:59:00) [18]

var
 bs: TBlobStream;
begin
 bs := TBlobStream.Create(CDS.fields[0] as TBlobField, bmRead);
 try
   bs.Position := 0;
   bmp.LoadFromStream(bs);
 finally
   bs.Free;
 end;
end;


antonn   (2012-05-15 22:35:00) [19]

vBlob.position:=0;
BmpDest.LoadFromStream(vBlob);

?


Inovet   (2012-05-15 22:28:00) [20]

> [3] Нуилаги   (15.05.12 22:22)

Попробуй русский


Страницы:   1 2

Наверх

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