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

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

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

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

четверг, 30 сентября 2010 г.

Получение очередного значения генератора Firebird

select
    gen_id(generator_name, 1 ) as field_id
from rdb$database

одна запись в поле  field_id со значением очередного значения генератора generator_name

воскресенье, 26 сентября 2010 г.

Диалоговое окно WebBrowser ошибка сценария

Избавляемся от окна путем установки значения свойства Silent:=True

WebBrowser1.Silent:=True;

Свойство Silent запрет демонстрации ошибок сценария на сайте

Этот документ был изменен. Сохранить изменения?

Это диалоговое окно возникает только когда  WebBrowser находиться в режиме редактора и происходит загрузка другого документа, а в документ который был первоначально загружен были произведены изменения.
Чтобы избавиться от этого диалогового окна следует отключить режим редактора в WebBrowser и загрузить документ после чего снова включить режим редактора.
Включения редактора в WebBrowser я повесил на событие возникающие по окончанию загрузки документа в WebBrowser NavigateComplite.
.....
WebBrowser1.OnNavigateComplete2: = NavigateComplite;
(WebBrowser1.Document as IHTMLDocument2).designMode := 'off';
WebBrowser1.Navigate('Документ');
 .....
procedure NavigateComplite (ASender: TObject; const pDisp: IDispatch; var URL: OleVariant);
begin
  (WebBrowser1.Document as IHTMLDocument2).designMode := 'On';

end;

суббота, 11 сентября 2010 г.

FIBPlus + Ehlib локальная сортировка

Для того, чтобы в гриде Ehlib'а работала сортировка и фильтрация необходимо добавить в uses модуль находящийся в папке EhLib 5.2.84\DataService\Others естественно если вы работаете с
Ado необходимо выбрать EhlibADO в нашем случае необходимо выбрать EhlibFib
после чего в свойствах грида выставить значения так
 .SortLocal := True;
 .STFilter.InstantApply := True;
 .STFilter.Local := True;
 .STFilter.Visible := True;
после чего фильтрация должна работать в гриде нормально без написания дополнительного кода

И необходимо в Uses прописать EhlibFIB (для фибов)

Загрузка изображения из интернета в поток (Delphi)

uses wininet;

function LoadImage(url:string): TMemoryStream;
var
  hInternet, hConnect: pointer;
  dwBytesRead, i, L: cardinal;
  sTemp: AnsiString;
begin
  Result:=TMemoryStream.Create;
  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;
  Result.Write(sTemp[1], Length(sTemp));
  Result.Position := 0;
end;

Данную функцию использовал для загрузки изображений с различными форматами:
bmp, gif, png, jpeg, tiff, ico и др. Проблем не возникало. Главное, что необходимо сделать это сохранять картинки с теми же расширениями которые у них были, чтобы потом не возникало путаницы. Я сохранял с именами файлов которые брал из прямых ссылок на картинки.

Для получения имени файла из Url использую функцию

function ExtractUrlFileName(const AUrl: string): string;
var
  i: Integer;
begin
  i := LastDelimiter('/', AUrl);
  Result := Copy(AUrl, i + 1, Length(AUrl) - (i));
end;

воскресенье, 29 августа 2010 г.

Компонент Clipper версия 2.35 (Delphi)

Компонент Clipper выполняет логические операции отсечения (пересечение, объединение, разность и XOR) на 2D полигонах. Он с легкостью справляется со сложными (само пересекающимися ) полигонами, полигонами с отверстиями и полигонами с перекрытием совместного линейного края. Данный компонент быстрее остальных выполняет эти сложные операции.

Компонент TDirwatch (Delphi)

Не визуальных компонент, который уведомляет, когда файлы (или подкаталоги) в выбранном каталоге изменились.Этот компонент инкапсулирует функцию FindFirstChangeNotification WinAPI в просмотре потока.

Версия Delphi: 3-7
Freeware с полным исходным кодом, а также Demo.

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

Компонент TDiff версии 4.1 (Delphi)

Не визуальных компонент используется в основном для сравнения изменения в файле.
Freeware с исходными кодами и включает в себя две простые demo программы.



Версия Delphi: 7, 2009


Компонент TDiff версии 4.1 можно скачать отсюда download

Компонент TZipFix - Версия 1.1 (Delphi)

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


Версия Delphi: 3-7
Freeware с полным исходным кодом, файл справки и примеры.
Последнее обновление: 6 апреля 2003 


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

суббота, 28 августа 2010 г.

Компонент GLibWMI 1.8beta All (Delphi)

Данная библиотека позволяется получить полную информацию о
  • Bios
  • Аудио карта
  • Жесткий диск
  • Принтер
  • Дисплей
  • Клавиатура
  • Процессор
  • CD-Rom
  • Батарея (если есть)
  • ОС
  • "Мышь"
  • Оперативная память
  • Процессы ПК
  • Службы ОС
  • Рабочий стол
  • Автозапуск
  • Сетевое оборудование
  • Аккаунты в ОС
  • Расшаренные папки
  • Задания на принтере
  • USB
  • Разделы жесткого диска
  • Переменные среды ОС
и все это вы можете использовать в вашем приложении.