Технічна документація

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