Schumi |
Отправлено: 22.09.2004, 21:23 |
|
Машинист паровоза
Группа: Участник
Сообщений: 206
|
Допустим есть ресурс (jpg),и мне его нужно выводить на экран.
Сейчас я делаю так:
CODE |
TJPEGImage *MyJPEG;
MyJPEG = new TJPEGImage();
TResourceStream *JPEGRes;
JPEGRes=new
TResourceStream((int)HInstance,AnsiString("MyJPEG"),RT_RCDATA);
MyJPEG->LoadFromStream(JPEGRes);
JPEGRes->Free();
((TPaintBox*)Sender)->Canvas->Draw(0, 0, MyJPEG);
|
И у меня возникают такие вопросы:
1) а нельзя обойтись без stream,а сразу как-то грузить в image
2) допустим,я объявил JPEGRes,а потом в цикле делаю new и в конце free. У меня не получается утечки памяти:методом free освобождается вся память
|
|
Shura |
Отправлено: 23.09.2004, 11:01 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 45
|
2. Ни в коем случае нельзя освобождать память функцией free() если она была выделена new |
|
Konstantine |
Отправлено: 23.09.2004, 11:39 |
|
Мастер участка
Группа: Модератор
Сообщений: 545
|
QUOTE (Shura @ 23/09/2004, 12:03) | Ни в коем случае нельзя освобождать память функцией free() если она была выделена new |
не знаю как насчёт JPEG, но Thread-ы токо так и работают!!!
|
|
Shura |
Отправлено: 23.09.2004, 16:17 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 45
|
упс, перепутал JPEGRes->Free() и free() |
|
Хлор |
Отправлено: 27.09.2004, 02:42 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 78
|
|
|
Gedeon |
Отправлено: 27.09.2004, 09:31 |
|
Ветеран
Группа: Модератор
Сообщений: 1742
|
Вот попалось на глаза
CODE |
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "TstBitmap.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
Graphics::TBitmap* tbm;
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
tbm = new Graphics::TBitmap;
tbm->LoadFromResourceName((int)HInstance,"MYBITMAP");
//Image1 — это TImage на форме
Image1->Canvas->Draw(0, 0, tbm);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormDestroy(TObject *Sender)
{
delete tbm;
}
//--------------------------------------------------------------------------- |
|
|
Schumi |
Отправлено: 27.09.2004, 17:22 |
|
Машинист паровоза
Группа: Участник
Сообщений: 206
|
LoadFromResourceName работает только с bmp
|
|