неділя, грудня 21, 2008

Отменить реакцию ComboBox на F4 в Delphi

procedure TForm1.ComboBox1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
if key=vk_F4 then
    key:=0;
end;

четвер, грудня 04, 2008

Распаковка файлов формата MSI

Для начала необходимо открыть командный интерпретатор Windows, причем с администраторскими правами пользователя. Для этого нужно всего ничего: отыскать в меню "Пуск -> Программы -> Стандартные" пункт "Командная строка" и нажатием правой кнопки мыши через контекстное меню запустить консоль от имени администратора. Если используется Windows Vista с активированной функцией контроля учетных записей пользователей (User Accounts Control), то все всплывающие окна следует игнорировать и нажимать клавишу "Продолжить".

Когда появится командная строка, останется только воспользоваться входящим в состав майкрософтовских операционных систем средством Msiexec и выполнить следующую инструкцию:

msiexec /a путь_к_файлу_c_расширением_msi /qb TARGETDIR=путь_к_директории_для_извлечения_данных

Например, команда вида msiexec /a c:\testfile.msi /qb TARGETDIR=c:\temp\test извлечет из установочного пакета testfile.msi все вложенные файлы в директорию C:\Temp\Test.

Если вдруг понадобится более подробная справочная информация по работе со средством Msiexec, её всегда можно получить, введя в консоли команду msiexec /?.

неділя, листопада 16, 2008

Как заставить стартовать Дельфи без заставки?

Командная строка:

Delphi32.EXE -ns 

неділя, листопада 09, 2008

OpenDialog, SaveDialog

API функции для визова диалогов открытия и сохранения файлов соответственно:
GetOpenFileName и ::GetSaveFileName

Иконка в ATL диалоге

Для добавления иконки в ATL диалоге, или другого ресерса, нужно в OnInitDialog вызвать следующий код:

HICON hIcon=::LoadIcon(_pModule->GetModuleInstance(),MAKEINTRESOURCE(IDI_ICON2));
this->SetIcon(hIcon,TRUE);
this->SetIcon(hIcon,FALSE);


Надеюсь эта инфа вам пригодиться.

середа, листопада 05, 2008

Manifest в ShellExtension

Сегодня я раскажу вам как добавить темы Windows XP (manifest) в ShellExtension. 

Создать файл манифеста вот такого вида:

середа, жовтня 29, 2008

Как имитировать нажатие левой кнопки мыши?

В Delphi:

mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
Application.ProcessMessages;
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);

пʼятниця, жовтня 24, 2008

Подпись мидлета

Сегодня мы поговорим как подписать J2Me приложение с помощью Wireless Toolkit. Я не буду расказывать про установку J2ME и Wireless Toolkit, это тема для другого поста. И так: В установках продукта сертификат должен генерироваться специально уполномоченным центром. В нашем случае, можно генерировать сертификат для эмуляции создания подписанного мидлета. 

Шаг 1. Упакуйте мидлет, создав JAR и JAD файлы. Для этого откройте проект, выберите пункт Project в меню и нажмите на Create Package.

Шаг 2. Выберите пункт меню File. Щелкните по Utilities. В открывшемся диалоге выберите Sign MIDlet. Обратите внимание на диапазон дат, когда сертификат считается действительным.
Valid from Sun Feb 05 04:26:34 CST 2007 to Tue Feb 05 05:26:34 CDT 2012.

Шаг 3. Нажмите кнопку Sign MIDlet Suite на верхней панели и выберете jad-файл.

На этом подписание закончено.

четвер, жовтня 23, 2008

Преобразование числа в двоичную запись. Delphi

Для преобразования числа в двоичную запись удобно использовать функции shl и and.

Эта функция преобразует число в строку из единиц и нулей. Количество цифр определяется параметром Digits.

function IntToBin(Value: integer; Digits: integer): string;
var
  i: integer;
begin
  result := '';
  for i := 0 to Digits - 1 do
  begin
    if Value and (1 shl i) > 0 then
      result := '1' + result
    else
      result := '0' + result;
  end;
end;


Вот пример использования этой функции:

procedure TForm1.Edit1Change(Sender: TObject);
begin
  Form1.Caption := IntToBin(StrToIntDef(Edit1.Text, 0), 128);
end;

понеділок, жовтня 20, 2008

Предопределённые константы условной компиляции в Delphi

Версии компилятора

Ver80 - Дельфи 1 
Ver90 - Дельфи 2 
Ver93 - С Buider 1 
Ver100 - Дельфи 3 
Ver110 - С Buider 3 
Ver120 - Дельфи 4 
Ver125 - С Buider 4 
Ver130 - Дельфи 5 
Ver140 - Дельфи 6 
Ver150 - Дельфи 7
Ver160 - Дельфи 8
Ver170 - Дельфи 9
KYLIX - Kylix 1
KYLIX2 - Kylix 2
KYLIX3 - Kylix 3
KYLIX4 - Kylix 4

пʼятниця, жовтня 17, 2008

Переменные среды Windows

В современных ОС компании Microsoft построенных на платформе NT для получения информации о системе используются переменные: Values.docx

неділя, жовтня 12, 2008

Выключить монитор

Из Delphi выключить монитор:

SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, 0);

Из Visual C++:

SendMessage(this->m_Hwnd, WM_SYSCOMMAND, SC_MONITORPOWER, 0);

Естественно этот код под Windows

пʼятниця, жовтня 10, 2008

Проиграть wav файл

Для проигрывания wav файла в Delphi нужно добавить uses mmsystem и выполнить:

sndPlaySound('wav\S.wav', SND_ASYNC);

Для воспроизведения с повторением (вечно) выполнить:

sndPlaySound('wav\S.wav', SND_ASYNC + SND_LOOP);

Для остановки воспроизведения:

sndPlaySound(nil, SND_ASYNC);

понеділок, жовтня 06, 2008

Start Page в Visual Studio

Настройка Start Page английской версии Visual Studio 2008 на получение новостей руского MSDN.

Откройте меню Tools->Options и выберите Startup в списке слева. Затем в поле "Start Page news channel" найдите параметр clcid=409, и измените его на clcid=419. Нажмите "ОК" и перегрузите Студию.

 

пʼятниця, жовтня 03, 2008

Виртуальный диск

Создать виртуальный диск в Delphi:


if DefineDosDevice(DDD_RAW_TARGET_PATH, 'P:', 'F:\Backup\Music\Modules') then
   ShowMessage('Drive was created successfully')
else
   ShowMessage('Error creating drive');

Шифрование файлов

Шифрование файлов при помощи NTFS функций в Delphi.


function EncryptFile(lpFilename: PChar): BOOL; stdcall; external advapi32 name 'EncryptFileA';
function DecryptFile(lpFilename: PChar; dwReserved: DWORD): BOOL; stdcall;
            external advapi32 name 'DecryptFileA';
{....}

procedure TForm1.Button1Click(Sender: TObject);
begin
   if not EncryptFile('c:\temp') then
      ShowMessage('Cant encrypt directory.');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
   if not DecryptFile('c:\temp', 0) then
      ShowMessage('Cant decrypt directory.');
end;

понеділок, вересня 08, 2008

Что нового в Delphi 2009

- полная поддержка Unicode. Приложения могут выполняться на любой языковой версии Windows. Применение Unicode гарантирует, что приложения будут одинаково выглядеть и функционировать во всех языковых версиях Windows и безукоризненно поддерживать как Unicode-строки, так и ANSI-строки. Новые усовершенствованные средства локализации помогают переводить приложения на различные языки;

- новые элементы языков программирования, в том числе Generics и анонимные методы для Delphi, позволяют создавать более гибкий и качественный код и предоставляют новые возможности для рефакторинга;

- новая библиотека VCL включает в себя массу усовершенствований и новых компонентов для создания развитого графического интерфейса;

- веб-библиотека VCL позволяет создавать веб-приложения с развитым интерфейсом с поддержкой AJAX и Microsoft Silverlight;

- проектирование и разработка баз данных благодаря входящему в состав редакции Delphi Architect профессионального средства моделирования Embarcadero - ER/Studio.

субота, серпня 30, 2008

Яндекс перенастраивает тИЦ

В ночь на 29 августа вступили в силу технические изменения, внесенные беспокойными разработчиками «Яндекса» в алгоритм расчета тИЦ — тематического индекса цитирования, традиционно рассматриваемого в качестве показателя авторитетности сайта среди ресурсов схожей тематики. Изменения направлены на повышение корректности учета SEO-ссылок.

Сегодня мы уже наблюдаем его работу. Сразу замечу, что для большинства знакомых мне манимейкеров результаты не утешительные – индекс цитирования снизился. При этом, снижение было тем сильнее, чем выше был тиц у сайта. Лично у меня последний апдейт съел 10 пунктов из 30.

четвер, серпня 28, 2008

Новые возможности Visual Studio Team System 2008 Team Suite

Microsoft Visual Studio Team System 2008 Team Suite - комплексная среда разработки - предоставляет разработчикам, выполняющим в команде различные функции, самый полный набор инструментов для проектирования, разработки архитектуры и баз данных, а также для тестирования приложений.

Новые возможности

Разработка баз данных: выпуск Microsoft Visual Studio Team System 2008 Database Edition и связанное с ним руководство MSF по процессам теперь полностью интегрированы в Visual Studio Team System 2008 Team Suite. 

неділя, серпня 24, 2008

Delphi 2009

Компания Embarcadero Technologies 25 августа представит новые версии продуктов Delphi 2009 и C++ Builder 2009. Напомним, что эти продукты очень хорошо известны в Украине и странах СНГ, первоначально выпускались в составе продуктовой линейки компании Borland, однако позже Borland продала их компании CodeGear. В свою очередь CodeGear в январе этого года была куплена компанией Embarcadero. 

Представители Embarcadero говорят, что новые версии популярных сред разработчиков будут предназначены для индивидуальных и корпоративных разработчиков, создающих автономные и клиент/серверные приложения. 

По словам Майкла Суинделла, вице-президента Embarcadero, новые версии будут самыми масштабными релизами Delphi и C++ c 2002 года, когда была выпущена версия Delphi 7. Новые версии будут различаться несколькими вариантами поставок, которые предназначены для независимых вендоров, рабочих групп разработчиков и софтверных компаний. 

Одной из новинок, которая появится в 2009-й версии, - это глобальная поддержка Юникода во всех версиях. Таким образом, разработчики снимут массу проблем с созданием локализованных версий своего программного обеспечения. Суинделл отметил, что Юникод и раньше поддерживался, однако теперь его поддержка стала универсальной вне зависимости от продукта Delphi или C++ Builder.

Блогун

Заработок на размещении платных записей — это именно тот способ монетизации блогов, который позволяет вам заработать много и быстро. Более того, это единственный вариант заработать, если ваш блог размещен не на собственном сайте, а на сторонней платформе (например, Живой Журнал, liveinternet.ru, blogspot).

Вы можете заработать на написании статей в выбранной вами сфере.

Регистрируйтесь.

Удачи в хорошем заработке. 


вівторок, серпня 19, 2008

Замена Total Commander

Неплохая бесплатная замена популярного файл-менеджера Total Commander на Unreal Commander. Хотя я пока еще не нашел в Unreal как вывести колонку Атрибутов.

четвер, серпня 14, 2008

Visual C++ анализатор кода

Code Analysis (анализатор кода) - это инструмент в Visual Studio 2008 Team Edition. Ранее он назывался PREfast и использовался в корпорации Майкрософт. Позже он был выпущен для всеобщего пользования в составе Microsoft Device Driver Kit (DDK). Анализатор кода Code Analysis просматривает исходный код на C и C++, перебирает все возможные способы исполнения каждой функции и моделирует процесс исполнения кода, чтобы выявить возможные источники проблем. Анализатор не выполняет программный код и не может найти все возможные ошибки, но он может найти ошибки, которые игнорируются компилятором. Code Analysis обнаруживает проблемы, которые связаны с приведением типов данных, производительностью и безопасностью кода, выражениями, циклами, распределением памяти, форматированием строк, возвращаемыми значениями функций и обработкой исключений. Если анализатор кода Code Analysis включен во время работы в среде Visual Studio 2008 Enterprise Edition, то выявленные ошибки выводятся в окне Error List. Включить его можно, используя параметр /analyze, или установив в диалоговом окне Property Pages (ветвь Code Analysis->General) значение Yes(/analyze) для параметра Enable code analysis for C/C++.

пʼятниця, серпня 08, 2008

META теги

Рассмотрим типичные примеры использования МЕТА - тегов (представлено только то, что известно мне. Вероятно, есть и другие NAME): 

<META HTTP-EQUIV="Content-Type"Content="text/html;
Charset=Windows-1251">
- используется браузерами для определения кодировки, с помощью которой была написана данная страница.
"charset=koi8-r" - альтернативная кодировка. Существуют также кодировки ISO, LAT, DOS.
Внимание: не рекомендую вставлять на Вашу страничку данный код, потому что большинство серверов хранят данные в одной кодировке (например, koi8-r) и преобразуют их по запросу пользователя в нужную кодировку. Если сервер исправит Вашу первую кодировку во вторую, а пользователю выдаст третью, как смесь первой и второй, то никакие перекодировщики не смогут восстановить первоначальный текст на странице. 
<meta name="author" content="Ваши Ф.И.О., E-Mail">

вівторок, серпня 05, 2008

Grub error 17

Как я решил проблему с загрузкой системы у себя на Ubuntu. Косяк вылез после неудачного расширения одного из дискаов на XP. Да кстати у меня стоит XP и Ubuntu. И так начнем.

1. Загрузится с диска LiveCD.

2. Зайти в терминал (меню Application->Accesories->terminal) и выполнить команду "sudo su".

3. Смонтировать диск там где установлен линукс (посмотреть разделы можно командой "fdisk -lu"у меня линукс находится на hda7) "gnome-mount -d /dev/hda7".

4. Поменять root на этот раздел "chroot /media/disk" у вас может быть другой путь на раздел.

5. "gnome-umount /dev/hda7"

6. Теперь перейдем к конфигурации, запустите команду "grub" 

    grub->device (hd0) /dev/hda     - hd0 - первый винчестер

    grub->root(hd0,6) 

    grub->quit

7. Перезагрузка.

Надеюсь эта статья вам будет полезной.

пʼятниця, серпня 01, 2008

Vista и украинский язык

Для правильного отображения украинского языка в Vista надо установить патч - Windows6.0-KB936060-x86.msu или установить SP1. Скачать патч можна на http://thehotfixshare.net.

четвер, липня 24, 2008

Настройка SVN в Eclipse

В этой заметке речь пойдет о настройке svn в Eclipse.

Адаптация Eclipse для работы с svn весьма проста. Для этого нужно выбрать пункт Help -> Software Updates -> Find and Install -> Search for new features to install. Далее создаем новый источник для плагина (New Remote Site) и в качестве URL указываем:
http://subclipse.tigris.org/update_1.2.x

Выбираем этот источник для обновления. В результате плагин для поддержки svn в Eclipse скачается и установится.

Собственно, все. Теперь на любом проекте можно кликнуть правой кнопкой мыши, выбрать Team -> Share Project, указать URL репозитория и использовать всю мощь системы контроля версий. Естественно, никто не мешает использовать любые другие средства для доступа к Subversion, благо соответствующих средств разработано предостаточно. Главное одно - все исходники теперь лежат в едином месте и нет хаоса в их версиях.

неділя, липня 20, 2008

Создание Гаджетов в Vista

Гаджеты размещаются в панели Windows Sidebar - это область экрана, зарезервированная для небольших программ – гаджетов. Также как панель Quick Launch специально зарезервирована для размещения ярлыков программ. Гаджеты - это программы с очень маленьким кодом.

Создание первого гаджета

Для того чтобы создать свой гаджет вам нужно только две вещи:

субота, липня 12, 2008

Языковый редирект

Как правильно перенаправлять пользователя на новую страницу я уже писал. Сегодня в этой статье я раскажу как перенаправить юзера на ту страницу, которая будет ему понятнее с языковой точки зрения. То есть, необходимо на JavaScript'е определить наиболее предпочтительный язык и отослать пользователя либо на русскую версию сайта, либо на английскую.

В JavaScript есть стандартный объект navigator для определения пользовательского/системного языка (или же, на худой конец, языка браузера). Необходимая инфа берётся из свойств navigator.userLanguage, navigator.systemLanguage (Internet Explorer 4+), navigator.browserLanguage (Internet Explorer 4+, Opera 5+) и navigator.language (Netscape Navigator 4.x, Netscape Navigator 6+).

Вот сам объект:
function LanguageInfo(){
var n = navigator;
this.UALanguage = n.language ? n.language : n.browserLanguage ? n.browserLanguage : null;
this.userLanguage = n.userLanguage ? n.userLanguage : n.systemLanguage ? systemLanguage : null;
}

вівторок, липня 08, 2008

Ссылки (Часть 2)

Продолжение статьи "Ссылки"

печать страницы
<a href="#nul" onClick="print(document)">печать страницы</a>

ссылка, как кнопка формы
<a onclick=document.subscribe.submit();href="http://cya-st.com/">отправить</a>

метки (якоря)метки (потребуются, когда надо перейти по ссылке не в начало файла, а на конкретное место в документе)
сначала ставим метки в документе:
<a name="начало третьего раздела" > </a>
ссылка на эту метку :
<a href="# начало третьего раздела">раздел 3</a> - метка находится в этом же файле
<a href="name. html# начало третьего раздела">раздел 3</a> - метка расположена в другом файле
параметры name и href не протеворечат друг другу и могут жить в одном теге
<a href="name.html"name="3"> </a> - ссылка на файл name.html, а заoдно и метка 3, на которую можно ссылаться
<a href="#2" name="3"> </a> - ссылка на метку 2 в данном тексте и метка 3


вперёд, назад, обновить
<a href="javascript:history.go(-1);">назад</a>
<a href="javascript:location.reload();">обновить</a>
<a href="javascript:history.go(1);">вперёд</a>


новое окно
<a href="#nul" onClick="window.open('img/clock.jpg','add','scrollbars=no, width=220, height=169')">новое окно</a>
 

субота, липня 05, 2008

Ссылки (Часть 1)

С развитием интернета появилось много протоколов, программ для связи и т.д. Так что речь сегодня будет о ссылках в HTML.

Ссылка на e-mail (при клике загружается почтовая программа с заполненными полями):
<a href="mailto:admin@gmail.com?subject=тема сообщения&Body=Здравствуйте! &cc=copy@gmail.com &bcc=hidden@gmail.com" title=" пример почтовой гиперссылки">Post E-Mail</a>

четвер, липня 03, 2008

Redirect

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

Средствами ASP.NET:
Response.Redirect("http://google.com");

Средствами HTML:
<meta http-equiv="refresh" content="15;url=http://yandex.ru/">
content - время, в секундах, через которое произойдёт переход
url - адрес, на который произойдёт переход


Средствами PHP:
<?php
header("Request-URI: index.php");
header("Content-Location: index.php");
header("Location: index.php");
?>


Средствами JavaScript:
<script>
document.location.href ="index.php";
</script>

 

понеділок, червня 30, 2008

Отображение статуса ICQ

Отображение статуса сети ICQ на вашем сайте.

Собственно код:


<center>
<noindex>
<a href="http://www.icq.com/whitepages/cmd.php?uin=НОМЕР_ICQ&action=message" target="_blank" style="border-width: 0px; vertical-align:middle;" ><img src="http://status.icq.com/online.gif?icq=НОМЕР_ICQ&img=5" style="vertical-align:middle;" border="0" /> 
<b>НОМЕР_ICQ</b></a>
</noindex>
</center>

неділя, червня 29, 2008

Отправка сообщения ICQ в PHP

В этой статье я опишу как отправить сообщение ICQ посредством PHP.


Перейду сразу к коду. Этот код при желании можно переделать для отправки SMS и т.д. 

четвер, червня 26, 2008

Исходный код ОС Symbian будет открыт.

Стало известно о серьезных переменах в лагере лидирующей на рынке мобильных устройств операционной системы: во-первых, исходный код Symbian будет открыт, а во-вторых, создана организация Symbian Foundation, которая будет заниматься ее поддержкой.

Может после этого мобилы подешевеют и разработка под Symbian будет попроще, (я имею ввиду подписывание программ).

середа, червня 25, 2008

Добро пожаловать!!!

Вы читаете блог о программировании. Здесь я буду выкладывать свои мысли, новости, хитрости в программировании. Сделаем блог интересным!