Технічна документація
Q-40: Як отримати короткий шлях файлу, якщо є довгий?
Q-41: Як написати сервіс для Windows NT?
Q-42: Як працювати з registry?
Q-43: Як висунути дверцята CD-ROM'а ?
-------------------------------------------------- ---------- процес EjectCDROM(aLetter : char); const AliasName = 'MyCoolCdrom'; var s: string; begin s := 'open ' + aLetter + ': type cdaudio alias ' + AliasName + aLetter + ' shareable wait'; if mciSendString(PChar(s), nil, 0, 0) <> 0 then exit; // fails to open try s := 'set' + AliasName + aLetter + 'door open wait'; mciSendString(PChar(s), nil, 0, 0); finally s := 'close' + AliasName + aLetter + 'wait'; mciSendString(PChar(s), nil, 0, 0); end; end;
Q-44: Як перехоплювати клавіші, натиснуті у вікні іншої програми? І взагалі, будь-які події
Q-45: Як викликати з 32-бітної програми 16-бітові DLL?
-------------------------------------------------- ---------- Hадо застосовувати так звані "thunks". Дивись статтю на http://www.itecuk.com/delmag/thunk95.htm.
Q-46: Чому у мене record a:word; b: longint end; має розмір вісім байт замість шести?
Q-47: Де взяти докладну документацію щодо роботи з RTF, TRichEdit?
У rxLib 2.60 з'явився компонент TrxRichEdit, що повністю підтримує MS RichEdit 2.0 і його DB-aware версія. Рекомендується.
Q-48: Як можна перетягувати форму не лише за заголовок?
Q-49: Як відстежити "догляд" курсора миші з компонета?
Q-50: Як додати пункти до системного меню вікна?
-------------------------------------------------- ---------- Отримати хендл системного меню вікна можна за допомогою функціїGetSystemMenu().
Q-51: Чи можна зробити так, щоб у виконуваному файлі програми знаходився якийсь звук у форматі .wav
-------------------------------------------------- ---------- Чи можна зробити так, щоб у виконуваному файлі програми знаходився який-небудь звук у форматі .wav, і можна було б програти цей звук?
У файл MyWave.rc пишеш:
MyWave RCDATA LOADONCALL MyWave.wav
brcc32.exe MyWave.rc, отримуєш MyWave.res.
У своїй програмі пишеш:
Попереджаючи наступне твоє питання "а як прочитати wave-файл з виконуваного файлу?"
procedure RetrieveMyWave; var hResource : THandle; pData: Pointer; begin hResource := LoadResource ( hInstance , FindResource ( hInstance , 'MyWave ', RT _ RCDA TA )); try pData := LockResource ( hResource ); if pData = nil then raise Exception. Create ('Cannot read MyWave'); // Тут pData вказує на MyWave // Тепер можна, наприклад, програти його (Win 32): PlaySound (pData, 0, SND _ MEMORY); finally FreeResource (hResource); end; end;
PlaySound ('RESNAME', 0, SND_MEMORY або SND_RESOURCE);
Q-52: Як дізнатися та змінити роздільну здатність екрана?
procedure ChangeDisplayResolution(x, y: word); var dm: TDEVMODE; begin ZeroMemory(@dm, sizeof(TDEVMODE)); dm.dmSize := sizeof(TDEVMODE); dm.dmPelsW > dm.dmPelsHeight := y; dm.dmFields := DM_PELSWIDTH or DM_PELSHEIGHT; ChangeDisplaySettings(dm, 0); end;
Дізнатися також можна за допомогою об'єкта Screen