Jun 18

Вобщем ситуация такова, есть приложение писанное на delphi, исползует COM объект (в данном случае для работы с Excel), после завершения выполнения последней строчки кода, т.е. по закрытии приложения выпадает ошибка Access Violation .......... in oleaut32.dll

Рецепт:

Нужно, как вариант, подчищать COM объекты вручную после чего вызывать CoUninitialize. Поскольку я использую компонент классаTExceApplication, размещенный на форме, то вышесказанные действия я выполняю в обработчике FormDestroy этой формы, т.е. выглядит это так:

DELPHI:
  1. procedure TPrintForm.FormDestroy(Sender: TObject);
  2. begin
  3. XL:=nil;
  4. CoUninitialize;
  5. end;

где XL - экземпляр класса TExcelApplication (наш COM объект)

мая 26

Периодически сталкиваюсь с задачей воспроизведения звука в windows приложениях исключительно через системный динамик.
В старые добрые времена ОС DOS в прародителе делфи - компиляторе языка Pascal, была функция Beep у которой параметром передавалась частота и кажись длительность воспроизведения. Так вот в API современных версий Windows основанных на NT (а это и win2000 и XP и последующие) описана аналогичная функция
BOOL Beep
(DWORD dwFreq, // частота, Гц
DWORD dwDuration // продолжительность, мс
);
которая по сути тем же и занимается :smile:
однако для не NT - основанных систем эта функция не работает, точнее ее параметры игнорируются.
Читать дальше »

Apr 21

Задача: максимально упростить использование JavaScript-библиотеки jQuery при верстке сайтов в Dreamweaver.
Решение: для этого удобно установить специальное расширение для Dreamweaver, которое значительно упрощает и ускоряет процесс разработки скриптов на базе библиотеки jQuery

Скачать расширение

Nov 18

Проблема:

Как заставить Zend Debugger реагировать на AJAX запросы. Читать дальше »

Nov 16

Речь о том как корректно обойти элементы потомки DOM для данного элемента, простите за тафтологию :)

В общем конструкция следующая:

JAVA:
  1. var object = document.getElementById('el');
  2. for (var childItem in object.childNodes) {
  3. if (object.childNodes[childItem].nodeType == 1)
  4. object.childNodes[childItem].style.color = '#FF0000';
  5. }

Читать дальше »