Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.13;
Скачать: CL | DM;

Вниз

Мастера, научите как создать ресурс.   Найти похожие ветки 

 
Sentinel ©   (2003-01-27 16:36) [0]

Имеется ввиду например, меню, шаблон диалогового окна, и т.д. А то вроде чиешь хелп, примеры использования есть, однако как создать, не въеду никак.

Заранее спасибо.


 
Sentinel ©   (2003-01-27 16:41) [1]

Или где почитать.


 
DiamondShark ©   (2003-01-27 17:26) [2]

В нотепаде набиваешь текст, сохраняешь в *.rc, и директивой $R прицепляешь.


 
Ketmar ©   (2003-01-27 17:56) [3]

>DiamondShark © (27.01.03 17:26)
фиг там. а компилять?

Satanas Nobiscum! 27-Jan-XXXVIII A.S.


 
copyr25 ©   (2003-01-27 18:06) [4]

Создаете текстовый файл, имя.rc, потом
brcc32 имя.rc в командной строке набираете, Enter, разумеется.
Будет создан файл имя.res.
Его после implementation

{$R *.DFM}
{$имя.res}
упоминаете.

Как создавать .rc можно найти в любых FAQ, хоть здесь, хоть в Королевстве Delphi.
Что Вам в ресурс запихнуть нужно? Голос, иконки, картинки?
Как вытянуть ресурс тоже есть почти всюду.
Читайте FAQ.


 
copyr25 ©   (2003-01-27 18:12) [5]

{$R имя.res}
разумеется. Очепятка.


 
paranoid   (2003-01-27 18:12) [6]

Ух, ответили. Спасибо. А я смотрю в API - пусто.
По поводу. Есть такая процедурка - DialogBoxParam. Чтоб её поюзать, надо шаблон диалога иметь. Иконки, картинки - не по теме.
А вот например:

HMENU LoadMenuIndirect(

CONST MENUTEMPLATE *lpMenuTemplate // address of menu template );

или:

int DialogBoxParam(

HINSTANCE hInstance, // handle to application instance
LPCTSTR lpTemplateName, // identifies dialog box template HWND hWndParent, // handle to owner window
DLGPROC lpDialogFunc, // pointer to dialog box procedure
LPARAM dwInitParam // initialization value
);

На Сях же пользуются люди.


 
Sentinel ©   (2003-01-27 18:13) [7]

Из других программ что-ли дергать? Ну...


 
copyr25 ©   (2003-01-27 18:36) [8]

Если jpg-картинки:
Это содержимое файла имя.res, например:

M1 JPEG 1.JPG
M2 JPEG 2.JPG
M3 JPEG 3.JPG

Это процедура вызова картинки на Image:
procedure LoadJPEGFromRes(TheJPEG : string; ThePicture : TPicture);
var
ResHandle : THandle;
MemHandle : THandle;
MemStream : TMemoryStream;
ResPtr : PByte;
ResSize : Longint;
JPEGImage : TJPEGImage;
begin
ResHandle := FindResource(hInstance, PChar(TheJPEG), "JPEG");
MemHandle := LoadResource(hInstance, ResHandle);
ResPtr := LockResource(MemHandle);
MemStream := TMemoryStream.Create;
JPEGImage := TJPEGImage.Create;
ResSize := SizeOfResource(hInstance, ResHandle);
MemStream.SetSize(ResSize);
MemStream.Write(ResPtr^, ResSize);
FreeResource(MemHandle);
MemStream.Seek(0, 0);
JPEGImage.LoadFromStream(MemStream);
ThePicture.Assign(JPEGImage);
JPEGImage.Free;
MemStream.Free;
end;

LoadJPEGFromRes("M1",(Ima as TImage).Picture);

Это имя.rc для звуков:
S1 WAV 1.WAV
S2 WAV 2.WAV
S3 WAV 3.WAV
S4 WAV 4.WAV

Это процедура проигрывания звуков:
uses mmsystem

procedure play(name : pchar);
var
h: THandle;
p: pointer;
begin
h := FindResource(hInstance,name,"WAV");
h := LoadResource(hInstance, h);
p := LockResource(h);
sndPlaySound(p,SND_MEMORY or SND_SYNC);
UnLockResource(h);
FreeResource(h);
end;

Play("S3");

Это имя.rc для иконок:

I0 ICON 0.ico
I1 ICON 1.ico
I2 ICON 2.ico
I3 ICON 3.ico

Это процедура вызова иконки:
var ic: Array[0..3] of TIcon;

ic[0]:=TIcon.Create;
ic[0].Handle := LoadIcon(HInstance,"I0");

etc...


 
copyr25 ©   (2003-01-27 18:47) [9]

PS: Вместо (Ima as TImage) в первом примере
поставьте Image1 - это я по дурости привел
строку с использованием многих компонентов:))


 
Sentinel ©   (2003-01-27 20:49) [10]


> copyr25 © (27.01.03 18:47)

Спасибо, ето мы умем.


 
Sentinel ©   (2003-01-27 21:08) [11]

Однако, если взять да и открыть программкой типа:

$(DELPHI)\Demos\ResXplor\resxplor.dpr

Любой (ну, почти) exe, dll, то можно увидеть много всего, не только имиджи, вавы и ави. Слышал я откуда - то из-за океана, что, можно тот же диалог, меню, кнопочки и все такоэ получить загрузкой из ресурса, создав и присвоив всему этому хэндлер. Пример, как создать ресурс (т.ж.с. кнопочки) в памяти есть (см. Ф-1 , Creating a Template in Memory), таким образом, можно засунуть этот ресурс и в исполняемый модуль, но межет есть способ попроще, типа какой-никакой эдитор, вроде борландовской (IEd)? Но для кнопочек. Или ещё что-нибудь. Или самому писать. Или самому.


 
Ketmar ©   (2003-01-27 21:14) [12]

Resource Workshop

Satanas Nobiscum! 27-Jan-XXXVIII A.S.


 
Sentinel ©   (2003-01-27 21:52) [13]


> Ketmar © (27.01.03 21:14)

Два вопроса, если не трудно.

Resource Workshop - кто такой? Где ходит?

> Nobiscum! - что значит, давно хотел спросить.



 
DiamondShark ©   (2003-01-27 22:03) [14]


> Ketmar © (27.01.03 17:56)
> >DiamondShark © (27.01.03 17:26)
> фиг там. а компилять?


{$R "mycoolres.res" "mycoolres.rc"}

и никаких иксс32 (хотя тоже можно)


 
Sentinel ©   (2003-01-27 22:23) [15]

Ketmar!
Thanx.

Let the light dwell in your heart!



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

Текущий архив: 2003.02.13;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.015 c
14-38439
France
2003-01-30 09:55
2003.02.13
DXF


14-38437
maxim2
2003-01-30 11:11
2003.02.13
Как вызвать процедуру из чужой Dll


1-38387
CPPBuilderDev
2003-02-04 10:40
2003.02.13
Коллеги! Как программно


1-38382
Vitus
2003-02-03 18:46
2003.02.13
Как программно сделать элемент в TreeView выбранным?


14-38473
SSK
2003-01-30 21:22
2003.02.13
Какие действующие лица принимают участие