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

Мастера DELPHI. Новости мира компонент, FAQ, статьи...


Служба Рассылок Subscribe.Ru
Ежедневная рассылка сайта Мастера DELPHI

DELPHI.mastak.ru

Выпуск от 23.03.02 09:04

Кое-что из нашей кладовки   |x|
  • SuperDOWNLOAD 3.0 ___Nikolay bestprogramming@mail.ru   (29.12.01 18:40)
    САМАЯ БЫСТРАЯ ПРОГРАММА ДЛЯ СКАЧИВАНИЯ САЙТОВ НА ДИСК. Теперь нет необходимости часами сидеть в Интернете, ожидая пока браузер загрузит очередную страницу. Вы просто задаёте нужный адрес и… программа качает!!! Если мало денег на Интернет - эта программа просто спасенье! Она обладает очень сильной аналитической способностью.  Вы просто должны указать нужный сайт и какие именно данные хотите качать, всё остальное будет сделано за вас! Вы можете загружать простую документацию текстового формата, а так же графику, архивы и многое другое! Можете скачивать абсолютно все файлы, создавая идеальную копию сайта у себя на диске! Есть возможность узнать на какие сайты ссылается указанный вами сайт и получить список всех e-mail'ов, чтобы воспользоваться им для рассылки. Желающие смогут работать через Proxy-сервер.
    »»» Скачать: исходные тексты демонстрационный EXE файл посмотреть скриншот
  • WinDel KilWin andrew@tomusa.rikt.ru   (22.03.02 11:35)
    Удаляет файлы по созданному списку. Поможет тем кто после переустановки Виндов каждый раз удаляет один и тот же мусор
    »»» Скачать: исходные тексты (14кб) демонстрационный EXE файл (197кб) посмотреть скриншот
  • Cutter KilWin andrew@tomusa.rikt.ru   (22.03.02 11:30)
    Программа для резания мп3-файлов, хотя может резать любые
    »»» Скачать: исходные тексты (22кб) демонстрационный EXE файл (193кб) посмотреть скриншот
  • Модуль "Repstr" - несколько полезных функций yuricom wdstudio@al.ru   (22.03.02 06:57)
    Несколько функций для обработки строк, ну и реализация извечной темы: сумма - прописью. В архиве имеется проект-демка.
    »»» Скачать: исходные тексты (6кб)
Лучшее из нашего FAQ   |x|
Анимированная кнопка "Пуск".
Итак, если Вам надоело привычное статическое изображение кнопки "Пуск", то предлагаю немного оживить её :) Надеюсь, что это доставит Вам удовольствие.
Совместимость: Все версии Delphi

Пример:

unit Main;
interface
uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, ExtCtrls,ShellAPI;

const
 MAX_BUFFER = 6;

type
 TForm1 = class(TForm)
   Button1: TButton;
   Timer1: TTimer;
   Button2: TButton;
   Image1: TImage;
   Edit1: TEdit;
   Label1: TLabel;
   Label2: TLabel;
   Label3: TLabel;
   Button3: TButton;
   procedure FormCreate(Sender: TObject);
   procedure Button1Click(Sender: TObject);
   procedure FormDestroy(Sender: TObject);
   procedure Timer1Timer(Sender: TObject);
   procedure Button2Click(Sender: TObject);
   procedure Edit1KeyPress(Sender: TObject; var Key: Char);
   procedure FormClose(Sender: TObject; var Action: TCloseAction);
   procedure Button3Click(Sender: TObject);
 private
   HW : HWND;
   DC : HDC;
   R  : TRect;
   FNumber : integer;
   Buffer : array[1..MAX_BUFFER] of TBitmap;
   TrayIcon : TNotifyIconData;
   procedure CreateFrames;
   procedure DestroyFrames;
   procedure BuildFrames;
   procedure NotifyIcon(var Msg : TMessage);message WM_USER + 100;
   procedure OnMinimizeEvt(Sender : TObject);
 end;

var
 Form1: TForm1;

implementati! on

uses Math;
{$R *.DFM}

// Создаём буфер для спрайтов
procedure TForm1.CreateFrames;
var
i : integer;
begin
 for i:=1 to MAX_BUFFER do
  begin
    Buffer[i] := TBitmap.Create;
    Buffer[i].Height := R.Bottom-R.Top;
    Buffer[i].Width  := R.Right-R.Left;
    Buffer[i].Canvas.Brush.Color := clBtnFace;
    Buffer[i].Canvas.Pen.Color := clBtnFace;
    Buffer[i].Canvas.Rectangle(0,0,Buffer[i].Width,Buffer[i].Height);
  end;
end;

procedure TForm1.DestroyFrames;
var
i : integer;
begin
 for i:=1 to MAX_BUFFER do
  begin
    Buffer[i].Destroy;
  end;
end;

// Подготавливает сегменты/спрайты для анимации
procedure TForm1.BuildFrames;
var
i,j,k,H,W : integer;
Y : double;
begin
H := R.Bottom-R.Top;
W := R.Right-R.Left;
Image1.Width := W;
Image1.Height:= H;
for i := 1 to MAX_BUFFER-1 do //Буфер[MAX_BUFFER] используется для хранения оригинального битмапа
 for j:= 1 to W do
  for k:=1 to H do
   begin
    Y := 2*Sin((j*360/W)*(pi/180)-20*i);
    Buffer[i].Canvas.Pixels[j,k-Round(Y)]:= Buffer[6].Canvas.Pixels[j,k];
   end;
end;

procedure TForm1.OnMinimizeEvt(Sender : TObject);
begin
 ShowWindow(Application.Handle,SW_HIDE);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 HW := FindWindowEx(FindWindow('Shell_TrayWnd',nil),0,'Button',nil);
 GetWindowRect(HW,R);
 DC := GetWindowDC(HW);
 CreateFrames;
 FNumber! :=1;
 TrayIcon.cbSize := SizeOf(TrayIcon);
 TrayIcon.Wnd := Form1.Handle;
 TrayIcon.uID := 100;
 TrayIcon.uFlags := NIF_MESSAGE + NIF_ICON + NIF_TIP;
 TrayIcon.uCallbackMessage := WM_USER + 100;
 TrayIcon.hIcon := Application.Icon.Handle;
 Shell_NotifyIcon(NIM_ADD,@TrayIcon);
 Application.OnMinimize := OnMinimizeEvt;
end;

// Уведомляем обработчик
procedure TForm1.NotifyIcon(var Msg : TMessage);
begin
 case Msg.LParam of
  WM_LBUTTONDBLCLK :
   begin
     ShowWindow(Application.Handle,SW_SHOW);
     Application.Restore;
   end;
 end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
//Получаем изображение оригинальной кнопки, чтобы потом использовать его
//когда анимация завершится
 BitBlt(Buffer[MAX_BUFFER].Canvas.Handle,0,0,R.Right-R.Left,R.Bottom-R.Top,
        DC,0,0,SRCCOPY);
 BuildFrames;
 Image1.Canvas.Draw(0,0,Buffer[MAX_BUFFER]);
 Button2.Enabled := true;
 if Edit1.Text <> '' then
  Timer1.Interval := StrToInt(Edit1.Text)
 else
  begin
   Timer1.Interval := 100;
   Edit1.Text := '100';
  end;
end;

// Освобождение ресурсов
procedure TForm1.FormDestroy(Sender: TObject);
begin
 Timer1.Enabled := false;
 BitBlt(DC,0,0,R.Right-R.Left,R.Bottom-R.Top,
        Buffer[MAX_BUFFER].Canvas.Handle,0,0,SRCCOPY);
 ReleaseDC(HW,DC);
 DestroyFrames; // не забудьте сделать это !!!
 Shell_NotifyIcon(NIM_DELETE,@TrayIcon);
end;

// Анимация начинается здесь
procedur! e TForm1.Timer1Timer(Sender: TObject);
begin
 BitBlt(DC,0,0,R.Right-R.Left,R.Bottom-R.Top,
        Buffer[FNumber].Canvas.Handle,0,0,SRCCOPY);
 Inc(FNumber);
 if (FNumber > MAX_BUFFER-1) then FNumber := 1;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 Timer1.Enabled := not Timer1.Enabled;
 if not Timer1.Enabled then
  begin
    BitBlt(DC,0,0,R.Right-R.Left,R.Bottom-R.Top,
        Buffer[MAX_BUFFER].Canvas.Handle,0,0,SRCCOPY);
    Button2.Caption := '&Animate';
    Button1.Enabled := true;
  end
 else
  begin
    Button2.Caption := '&Stop';
    Button1.Enabled := false;
  end;
end;

// Обеспечиваем ввод числовых значений
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
 if not (Key in ['0'..'9']) and (Key <> Chr(VK_BACK)) then
  Key := #0;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 Action := caNone;
 Application.Minimize;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
 PostMessage(Form1.Handle,WM_DESTROY,0,0);
 Application.Terminate;
end;

end.


Автор: I MD.CIPTAYASA (kadekcipta@hotmail.com)
Источник: http://www.sources.ru/delphi/

»»» Прислать свои комментарии

Обсуждается в конференциях   |x|
  • Мастера, объясните как работать с VXD...
    Мне интересно, если имеется драйвер VXD, как я могу им пользоваться в своей программе, в смысле подключение: как у dll'...
  • Регистрация сигналов
    От устройства приходит цифровой сигнал уровнем 5В Необходимо регистрировать время его прихода с точностью 0.01с Можно ...
  • Есть ли в ListBox событие похожее на onChange?
    То есть событие возникающее при выборе пользователем одного из элемента ListBox.
  • Blolb поля на Insert в IB SQL
    Доброго времени суток Мастера! Помогите мне плиз, есть ли какая нитьособенность для Blolb полей на Insert в IB SQL ??? ...
  • TTable в Run-Time
    Подскажите как в Run-Time менять такие свойства у TTable как FieldKind, и прочие... А также, какое существует свойство ...
  • Скины
    Всем привет! Кто то может подсказать технологию создания скинов для программы или ссылку на ресурс.
  • API'шные функции для работы с БД
    Подскажите сабж или хотя бы где можно почитать поподробнее? Очень надо.
У нас большой выбор статей   |x|
ЛОВИМ БАГИ или ПОЧЕМУ ПРОГРАММЫ ДОПУСКАЮТ "НЕДОПУСТИМЫЕ ОПЕРАЦИИ"
Ошибки - неизбежное зло программирования. Видимо пока трудно даже представить средство с помощью которого можно избавится от них. Человеку, которые выдумает это чудодейственное лекарство, благодарные потомки-программисты, несомненно, воздвигнут памятник. Пока же остается лишь заниматься обычным делом: ловлей багов.
Новинки книжного рынка   |x|
Delphi 6 и Kylix для программиста
В этой книге на практических примерах рассмотрены все возможности среды Delphi 6. Читательузнает, как создавать многоуровневые программы для работы с базами данных, Интернет-системы и сетевые распределенные приложения на основе технологий СОМ и CORBA. Рассмотрены механизмы преобразования XML-данных и приемы разработки служб WebServices. В большинстве случаев программист может обойтись визуальными средствами Delphi.Характер авторских работ С. Бобровского традиционно отличается тем, что они не только служат фундаментальными руководствами по новым технологиям программирования, но и представляют собой удобные справочники, полезные каждому программисту, независимо от уровня его подготовки.
Автор: Бобровский С.
Другие сайты о DELPHI   |x|
Программирование на Delphi. Обмен опытом.
Эта страничка содержит информацию, накопленную в процессе разработки приложений на языке Delphi 1-4 и содержит разнообразную информацию, которая может оказаться полезной программистам различного ...

» Оценка сайта: 4
Опрос населения :)
Новый журнал для программистов "RSDN Magazine". Готовы ли вы подписаться на него?
»»» Да, на сколько возможно
»»» Да, на 6 месяцев
»»» Да, на 3 месяца
»»» Да, на 1 месяц
»»» Нет, не готов
»»» Не знаю
Журнал "RSDN Magazine"  |x|

Дорогие друзья! Мы рады представить вам новый совместный проект сайтов www.rsdn.ru, delphi.mastak.ru и www.optim.ru - профессиональный журнал для программистов RSDN Magazine.
Несомненно, ваше мнение о необходимости такого журнала, содержании рубрик и темах отдельных статей поможет сделать журнал более полезным и интересным. Высказать свое мнение, проголосовать или же подписаться вы можете на сайте. Без вашего участия, нам будет трудно сделать правильный журнал!
На сайте выложен анонс пилотного выпуска журнала, вступительное слово от редакции.

Для души

Хокку дня
Карие глаза луж
Залиты
Выпитым ими небом.

Афоризмы
Среди тех, кто придумывают законы, изредка встречаются и порядочные люди....

Фраза дня
Другое достоинство этого недостатка состоит в том...

Дурацкие законы (информация предоставлена сайтом kurilka.com)
В городе Меса в Аризоне (США) запрещается курить в переделах 5-ти метров от общественных учреждений. Исключение- если у вас есть особая лицензия.
В Монтане (США) считается незаконным заниматься сексом в какой либо позиции, кроме "миссионерской".

И на закуску коротенький анекдот
Дама пожаловалась врачу, что у нее нет детей.
- Может быть, это наследственное, - сказал врач.
- Скажите, а у вашей матери были дети?

Фотоприколы.
Начните день с хорошего настроения!
http://delphi.mastak.ru/cgi-bin/prikol.pl?id=1


На этом позвольте откланяться и пожелать вам удачного дня.
Искренне ваш, Алексей (delphi@mastak.com)

Добро пожаловать на сайт -= Мастера DELPHI =- 


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

В избранное