Блог по программированию в среде Delphi

Поиск по блогу

Есть идея по созданию интересной программы?

Опиши тут и я по возможности постараюсь это реализовать специально для тебя! Без $ ))

пятница, 30 июля 2010 г.

Описание DemoGoogleLogin

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

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

GoogleLogin Delphi часть 2

И так в предыдущей статье посвященной GoogleLogin я описал практически все, что было необходимо, но не описал методов нашего компонента. На сегодняшний день компонент претерпел некоторые изменения и я не стал удалять старую статью, а решил оставить ее для того, чтобы четко было видно отличия компонента от версии к версии.

Свойства компонента GoogleLogin
Свойства компонента остались практически без изменений, появилось лишь дополнительное поле Captha


вторник, 27 июля 2010 г.

Функция по загрузке jpg в Timage (Delphi)

Не скажу, что прям моя разработка, но к ней я свою корявую руку приложил))

//непосредственно сама функция по загрузке картинки формата jpg из сети интернет
//для работы функции необходимо добавить в uses ... wininet, Jpeg;


function GetImage(url:string): TPicture;
var
  hInternet, hConnect: pointer;
  dwBytesRead, i, L: cardinal;
  sTemp,aUrl: AnsiString; // текст страницы
  memStream: TMemoryStream;
  jpegimg: TJPEGImage;
begin
  hInternet := InternetOpen('MyApp', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
  try
    if Assigned(hInternet) then
    begin
      hConnect := InternetOpenUrl(hInternet, PChar(url), nil, 0, 0, 0);
      if Assigned(hConnect) then
        try
          i := 1;
          repeat
            SetLength(sTemp, L + i);
            if not InternetReadFile(hConnect, @sTemp[i], sizeof(L),dwBytesRead) then
              break; // Получаем данные с сервера
            inc(i, dwBytesRead);
            until dwBytesRead = 0;
        finally
          InternetCloseHandle(hConnect);
        end;
    end;
  finally
    InternetCloseHandle(hInternet);
  end;
  memStream := TMemoryStream.Create;
  jpegimg := TJPEGImage.Create;
  try
    memStream.Write(sTemp[1], Length(sTemp));
    memStream.Position := 0;
    //загрузка изображения из потока
    jpegimg.LoadFromStream(memStream);
    Result:=TPicture.Create;
    Result.Assign(jpegimg);
  finally
    //очистка
    memStream.Free;
    jpegimg.Free;
  end;
end;

среда, 21 июля 2010 г.

GoogleLogin Delphi

Доброго времени суток)))

Сегодня мы обсудим компонент googleLogin написанный Владиславом Баженовым aka Vlad (его сайт), ну и я его немного доработал (хотя для кого-то может, сделал его хуже)
Короче как бы то ни было, но я решил рассказать о нем подробнее, чтобы любой программист смог его применить по назначению и получить  максимум из того, что в нем реализовано

Установка компонента в Delphi 2010

Для установки компонента необходимо зайти в папку  googleapi\packages\googleLogin_pack
в ней найти файл GoogleLogin.dpk открыть его в среде Delphi 2010 (он был написан в ней)
в настройках среды прописать переменные окружения, в общем указать путь  (где то на диске)\googleapi\packages\googleLogin_pack\ после чего в менеджере проекта нажать на надписи GoogleLogin.bpl правой клавишей мыши и выбрать пункт меню Install после чего если вы все сделали правильно должно появиться окно с информацией о том, что компонент успешно установлен в систему



Установка компонентов в среду Delphi 7

Для того чтобы установить компонент в среду Delphi, который идет с файлом [nameComponent].dpk необходимо выполнить следующие действия.

Выполнить двойной клик на файле [nameComponent].dpk после чего откроется среда разработки с окном Package - [nameComponent].dpk

Пример окна
В нем мы видим кнопки Compile, Add, Remove, Install, Options
Кнопка Compile компилирует как это понятно из названия компонент (иногда это требуется перед установкой специфических компонентов)
Кнопка Add добавляет файлы к пакету компонента, а кнопка Remove в свою очеред удаляет файлы из пакета в основном они нужны только для разработчиков компонентов.
Кнопка Install необходима для установки компонента в среду разработки.
Кнопка Options вызывает окно настройки пакета компонента

вторник, 20 июля 2010 г.

Сollapsepanel (Delphi)

Отличный компонент. Каждый знаком с панельками, которые сворачиваются и разворачиваются. В отличие от подобных "групп" в Windows XP, CollapsePanel имеют сравнительно простой внешний вид, но здорово украсят любую программу.


Скачать Сollapsepanel можно отсюда  download

NewSpeedButton (Delphi)

TNewSpeedButton (LSSpeedButton) - Кнопка, подобная той, что используется в программе QIP Infium. Классные кнопочки для delphi. Неприхотливые в установке меня очень порадовали
Можно использовать для создания оригинального интерфейса с минимальным количеством кнопок на главной форме сочетающих в себе выпадающие списки, при грамотном использовании которых интерфейс станет интуитивно понятен и прост в обращении.



Скачать NewSpeedButton  можно отсюда  download

ImageButton (Delphi)

Графическая кнопка (поддерживаемый формат файлов - *.bmp). Выглядит подобно кнопке выбора статуса в Skype.


При нажати на кнопку появляется красивое меню с дополнительными кнопками

Скачать ImageButton можно отсюда  download

Pngcp (Delphi)

Кнопка с возможностью вставки изображения. изображение можно позиционировать. так же имеются дополнительные стили отображения кнопки на форме. На скрине все прекрасно видно.


Скачать Pngcp можно отсюда  download

Freebutton (Delphi)

Компонент Freebutton-это фигурная цветная кнопка с тенью, у которой можно изменить цвет. Также на кнопку можно поместить изображение. Очень красивые кнопочки, ну сами видите


Скачать Freebutton можно отсюда  download

Btncomps (Delphi)

5 нестандартных красивых кнопочек в палитру Delphi))


Скачать Btncomps можно отсюда  download

Userslistbox_28 (Delphi)

Компонент реализующий нестандартный ListBox с возможностью вставки графики, нестандартной подсветкой и многое другое


Скачать Userslistbox_28 можно отсюда  download

Mxcalendar 1.21 (Delphi)

Красивый календарик для delphi


Скачать Mxcalendar 1.21 можно отсюда   download

SYSinfo (Delphi)

Компонент для получения информации о системе
Сам его не проверял

Скачать SYSinfo можно отсюда  download

CX_cpu (delphi)

Компонент для получения исчерпывающей информации о процессоре ПК


Скачать CX_cpu можно отсюда  download

HotKeyManager (Delphi)

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

Скачать HotKeyManager  Delphi можно отсюда  download

Coolhints2k Delphi

Компонент для Delphi с помощью которого можно реализовать интересные всплывающие подсказки с поиском  выводом определенного раздела справки и тд.


Скачать Coolhints2k можно отсюда  download

Сbasyncdirscan (Delphi)

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

Компонент Cbasyncdirscan  можно скачать отсюда  download

PNG Delphi

Delphi7 не работает с PNG, но с этой библиотекой будет. Этот модуль облегчил жизнь многим программистам у которых появилась необходимость использовать PNG изображения в своих проектах, который позволяет в обычный Image грузить PNG изображения. В общем очень удобная вещь с pngButton который идет в качестве примера использования их модуля в VCL

Скачать PNGDelphi7 можно отсюда  download

Delphi Gif

Компонент не визуальный, позволяющий отображать на форме GIF-изображения без всяких таймеров.
Для того чтобы ваше приложение научилось работать с  GIF-изображениями необходимо просто прописать gifimage в uses  и в процессе работы приложения в обычный Timage загрузить GIF-изображение.

Компонент Gifimage можно скачать осюда

Видео урок по этому компоненту здесь

Drawobjects (delphi)

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


Компонент Drawobjects можно скачать отсюда download

Atimagebox (Delphi)

Компонент Atimagebox для Delphi/C++Builder, показывающий изображение в прокручиваемой области. Компонент имеет такие полезные свойства как ImageFitToWindow, ImageCenter, ImageScale и т.д., поэтому с помощью него очень удобно отображать изображения.
Практически часть просмоторщика картинок реализована за вас. (при проверке работал компонент шустро. по край не мере в демке )


Компонент Atimagebox можно скачать отсюда download

Shapedform

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


Скачать компонент Shapedform можно отсюда download

TKMAlert (Delphi)

Компонент реализующий всплывающее окошко, как у программы Qip
Можно использовать для оповещения пользователя о наступлении какого либо события, которое не будет ему мешать заниматься делами и для того, чтобы закрыть окошко ему просто будет достаточно щелкнуть левой кнопкой мыши в его области и оно скроется с глаз долой и будет ждать своей участи.


Компонент тестировался на Delphi 7 все прекрасно работало.
Скачать можно отсюда DOWNLOAD

понедельник, 19 июля 2010 г.

Synchronize

Используется для синхронизации потоков. Важно помнить, что параметром Synchronize (параметр)
может быть метод без параметров.
Запись типа  Synchronize(myProcedure(fdsf)); будет расценена как ошибка, а Synchronize(myProcedure) будет работать, как надо.

понедельник, 12 июля 2010 г.

Удивительное рядом

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

while PeekMessage(msg,0,0,0,PM_REMOVE) do
begin
  TranslateMessage(msg);
  DispatchMessage(msg);
end;

решил разобраться, что же делает этот код, оказалось, что ни чего сверх естественного в нем нет
Проще говоря это даже всем известный код, который мы ни раз использовали в местах где могут происходит зависания формы. Ладно не буду томить это код   Application.ProcessMessages;