Технологии программирования миди

 Навигация:

 Поиск:

 Новости:

17.02.2007
Полностью переработан дизайн сайта.

6.01.2007
Добавлен раздел Наработки Полезные и интересные программы и их исходники от автора.

19.11.2006
Функции WriteVarLen и ReadVarLen портированы с СИ на Delphi читать

14.11.2006
Появилась cтатья Midi-протокол глазами программиста

24.10.2006
Написана вторая часть MMSystem Функции midiOutGetVolume midiOutSetVolume midiOutMessage midiOutShortMsg и midiOutLongMsg

12.10.2006
Добавлен раздел Multimedia , который содержит большое количество информации по мультимедийным технологиям.

1.09.2006
Добавлен раздел MMSystem в котором находятся
подробные опсания функций winmm.dll, определенных в модуле mmSystem.pas,
с примерами их использования в Delphi.

13.08.2006
Опубликован исходник приложения, записывающего игру на клавиатуре
в стандартный midi-файл SMF - 0

4.07.2006
Добавлен раздел Структура формата миди-файла

 Счетчики:
Rambler's Top100 Яндекс цитирования Rambler's Top100
 Контент:

Наработки

У каждого программиста со временем накапливаентся довольно большое количество пректов, написанных для себя, или с целью попробовать какую-нибудь новою технологию, поэкспериментировать и т.п. Некоторые из таких наработок могут представлять интерес для публики, как в плане самой идеи, так и ее реализации. Исходя из всего вышесказанного я решил публиковать часть своего опыта в этом направлении. Надеюсь что это будет интересно. Если кто-то желает поделиться опытом - присылайте свои творения на мое мыло. Ссылку на сайт автора гарантирую.

Раскрашиваем флешку

Вставляя CD/DVD все видели как изменяяется при этом значок в папке "Мой компьютер". А как добиться такого эффекта с флешкой?

Самая Российская Флешка

Во-первых :
Создаем в корне файл autorun.inf такого примерно содержания:

[Autorun]
Icon=1.ico

Во-вторых :
Помещаем собственно сам файл 1.ico в корень Вашего съемного диска.

Извлекаем диск вставляем его обратно и наслаждаемся плодами собсвенных трудов!
Примечание: иногда картинки кэшируються Windows и результат моно увидеть только удалив временные файлы.

Чтобы атоматизировать этот процесс я написал небольшую прогу.
Скачать прогу
Скачать исходники

А если закинуть на флешку иконку как у CD или локального диска и дать ее другу/коллеге... Короче пространства для фантазии предостаточно!

P.S: Все это работает только под Windowx XP и выше

Покорение плагинов тотала

Я думаю, всем известен файловый менеджер "Total Commander" (в девичестве Windows Commander). Свою популярность он приобрел в том числе и благодаря большому количеству всевозможных плагинов. А что если попробовать прикрутить их(плагины) к своей программе? Сегодня я расскажу как это можно сделать.

Будем тренироваться на реальной задаче.
Дано:
MS Windows + Delphi7.
Найти:
способ просмотра документов в формате MS WORD (*.doc) если MSOffice не установлен.

Сначала скачиваем плагин listdoc.wlx

Плагин предназначен для просмотра doc файлов в TC.
Основные возможности:

  • Форматирование и обьекты не поддерживается (макросы тоже не поддерживаются).
  • Поддерживаютмя файлы формата Word97 и выше.
  • Файлы формата Word 95 поддерживаются, но в конце текста выводится лишняя информация.
  • Если файл, с расширением doc, содержит обычный текст, то плагин его просто проигнорирует.
  • Наличие оффиса на компьюторе не нужно.
  • Есть небольшое ограничение. Если файл содержит текст на разных языках, то будет отображатся только тот тот язык, который идет первым (это не касается небольших вставок на другом языке).
Для наших целей он вполне подойдет.

WLX-плагины это простые DLL только с расширенем .wlx.
Скачав пример создания плагина на Delphi для просмотра rtf мы увидим:

library ListSimple;
{$R *.res} //DLL version info

uses
SysUtils,
Windows,
unMain in 'unMain.pas' {fmMain},
unAbout in 'unAbout.pas' {fmAbout};

{$E wlx}

const
PARSE_FUNCTION = 'FORCE | EXT="RTF"';
SUPPORT_EXT = '.RTF';

procedure ListGetDetectString(DetectString: PChar; MaxLen: integer); stdcall;
begin
StrLCopy(DetectString, PChar(PARSE_FUNCTION), MaxLen);
end;

function ListLoad(ListerWin: HWND; FileToLoad: PChar; ShowFlags: integer): HWND; stdcall;
begin
Result := 0;
if UpperCase(ExtractFileExt(FileToLoad)) <> SUPPORT_EXT then
exit
else
Result := ShowRTF(ListerWin, FileToLoad);
end;

procedure ListCloseWindow(PluginWin: HWND); stdcall;
begin
HideRTF(PluginWin);
end;

exports
ListGetDetectString,
ListLoad,
ListCloseWindow;

end.

Функция ListLoad загружает в просмотрщик указанный файл.

Создаем на Delphi новую форму, на нее кидаем Panel1, OpenDialog1 и Button1
Пишем обработчик нажатия кнопки:
Dll будем подключать статически (так проще): function ListLoad(ListerWin: HWND; FileToLoad: PChar; ShowFlags: integer): HWND; stdcall; external 'listdoc.wlx';
procedure ListCloseWindow(PluginWin: HWND); stdcall; external 'listdoc.wlx';
// Не забудьте файл listdoc.wlx положить в папку с исполняемым файлом проекта (Project1.exe) ! ! ! ! !
procedure TForm2.Button1Click(Sender: TObject);
begin
if openDialog1.Execute then
begin
ListLoad(Panel1.Handle,PChar(OpenDialog1.FileName),0);
end;
end;

Жмем F9, давим на единственную кнопку на нашей форме, выбираем файл *.doc и наслаждаемся результатом.
Если все получилось вместо Panel1 видим текст. Плагин покорен!

Чтобы корректно закрыть окно просмотрщика необходимо использовать ListCloseWindow
Как это сделать смотри в демонстрационном проекте.


 Bash.org.ru:

 Реклама:

 ©Copyright:
http://www.last.h16.ru - программирование миди. Идея, разработка и поддержка : Mo-skin © 2006-2007
X