Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2003.02.13;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.011 c
1-38206
Yrtimd
2003-02-05 07:33
2003.02.13
снимок экрана полноэкранного


14-38529
race1
2003-01-26 14:49
2003.02.13
com


14-38562
GebbelZ
2003-01-27 00:53
2003.02.13
Очистка десктопа


4-38635
Wassily
2003-01-02 18:14
2003.02.13
Работа с мышью


3-38079
BJValentine
2003-01-27 13:37
2003.02.13
Refresh





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский