Отправляет email-рассылки с помощью сервиса Sendsay

Web-Мастеринг - с нуля до профи

  Все выпуски  

нет.


Информационный Канал Subscribe.Ru

Познавательное программирование

(comp.soft.prog.urisprog)

Выпуск 18


Здравствуйте, Уважаемые подписчики!

Генерация случайных чисел - слишком важный вопрос, чтобы оставлять его на волю случая.
- Роберт Ковзю.


Рассылка "Неисследованные уголки Интернета"
Обзоры интересных, но малоизвестных ресурсов Сети. Каждая ссылка уникальна своей тематикой. За меньшее время вы получите больше информации. Подписаться одним кликом

Предисловие

У моего сайта появился новый короткий адрес(только форвард на newff.narod.ru) - URIS.TK.
Если кто из вас хочет обзавестись аналогичным совершенно бесплатно - пишите.

Судя по последним нескольким unsubscribe'ам, стало ясно, что тема БД немного приелась.
Поэтому я решил сделать небольшой перерыв и опубликовать статью CJ о "заимствовании" иконок из других приложений.



Привет!

Я расскажу как средствами Delphi создать простой "грабер" пиктограмм(иконок) с возможность сохранения их на ЖД.

Для этого понадобиться 5 компонентов:

  1. StringGrid (находиться на вкладке Addional).
  2. MainMenu (Standart).
  3. OpenDialog (Dialogs).
  4. SaveDialog (Dialogs).
  5. PoupMenu (Standart, его мы используем только для удобства).

Перед тем как начать работу, в опциях проекта необходимо изменить один пункт. [Project] > [Options:] > [Compiler],

Теперь ищем надпись Assignable typed constants и ставим около неё галочку.

Иконки мы(точнее программа) будем выдирать из файлов exe,dll ну и для общности ico. Итак, по порядку.

  1. Сначала поместим на форму компонент StringGrid и изменим следующие свойства:
  2. Свойство

    Значение

    Align

    alClient

    ColCount

    4

    DefaultColWidth

    144

    DefaultRowHeight

    64

    FixedRows

    0

    FixedCols

    0

    Name

    Icons

    Options.goRangeSelect

    Flase


  3. Теперь настроим OpenDialog и SaveDialog:

Свойство

Значение

OpenDialog1

DefaultExt

ICO

Options.ofHideReadOnly

True

Options.ofFileMustExist

True

Title

Открыть файл с иконками

SaveDialog1

DefaultExt

ICO

Options.ofOverwritePrompt

True

Options.ofHideReadOnly

True

Options.ofFileMustExist

True

Title

Сохранить иконку

Теперь настроим свойства Filter компонентов OpenDialog1 и SaveDialog1:

FilerName

Filter

OpenDialog1

Файлы с иконками

*.exe;*.dll;*.ico

Все файлы

*.*

SaveDialog1

Иконка

*.ico

Добавим три пункта меню Открыть, Сохранить, Выход. И дадим им имена Open, Save, Exit

Далее после модуля Grids, добавьте модуль ShellApi.

Введите следующий код в пунт меню Открыть:

procedure TForm1.Open1Click(Sender: TObject);

const curitem:longint=0;

Var

pname:array [0..255] of char;

fname: string[13];

N:word;

IcoH:hicon;

begin

If opendialog1.Execute then begin

fname:=ExtractFileName(opendialog1.FileName);

StrPCopy(pname, opendialog1.FileName);

N:=0;

With Icons do

Repeat

Icoh:=ExtractIcon(hInstance, pname, n);

If Icoh>1 then

Begin

Col:=CurItem mod ColCount;

If (Curitem div colCount) >=RowCount then RowCount:=RowCount+1;

Row:=CurItem div ColCount;

Cells[col,row]:=Format('#%d (%s) ',[curitem+1,fname]);

Objects[col,row]:=TIcon.Create;

With Objects[col,row] as Ticon do

Handle:=IcoH;

CurItem:=CurItem+1;

Inc(N);

end;

Until IcoH <=1;

end;

end;

Теперь обработчик OnDrawCell компонента StringGrid, следующий код:

procedure TForm1.IconsDrawCell(Sender: TObject; ACol, ARow: Integer;

Rect: TRect; State: TGridDrawState);

begin

If Icons.Objects[Acol,Arow] is TIcon then

Icons.Canvas.Draw(rect.Left+56, rect.Top+24,Ticon(Icons.Objects[ACol,Arow]));

end;

И самый заключительный этап, это код сохранения иконок:

procedure TForm1.Save1Click(Sender: TObject);

begin

If savedialog1.Execute then

With Icons do

With Objects[col,row] as Ticon do SaveToFile(savedialog1.FileName);

end;

И последняя строка это строчка Close; в пункте меню Выход.

Скачать исходники программы.

Flash-Player 1.0 - Программа предназначена для просмотра swf-файлов.

Полоса прокрутки в виде синей полоски(Win 9x), поддержка WinXP-тем, асоциация swf-файлов с программой, stop/play по нажатии на выбранную кнопку в настройках, удобный интерфейс.

Скачать: http://freesoft.ru/res/inf.php?id=10708


Каратецкий Кирилл aka CJ
Web-Site: http://karatetski.narod.ru
E-Mail: karatetski@tut.by
ICQ: 221468417



Все вопросы, пожелания и предложения ссылкообмена ведущему рассылки, прошу слать на e-mail: urisff@inbox.ru
Все статьи публикуются здесь только с разрешения (или рекомендации) автора.
Если вы хотите опубликовать здесь свою статью, то сделайте это, переслав её мне. В случае, если вы будете использовать приведённые в этой рассылке материалы, не забудьте сделать ссылку на эту рассылку.

Ведущий рассылки:
Набатников Иван
urisff@inbox.ru
http://WWW.URiS.TK





http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное