TActiveMovie - VCL компонент для управления Microsoft ActiveMovie.
Источник: www.delphipages.com
Автор: Michel Fornengohttp://www.delphicity.com/ -= · VCL · =-
импортированные компоненты Microsoft Speech SDK 5.1savvasavva@nm.ru (09.09.01 13:44)
В форуме была ссылка про "говоряший спикер" - попробовал, понравилось. Не у каждого есть возможность скачать 80 Мб, поэтому выкладываю package с компонентами. А как использовать (хотя бы начать:)) - смотрите http://www.infocity.kiev.ua/prog/delphi/content/delphi048.shtml.
Анимированная кнопка "Пуск".
Итак, если Вам надоело привычное статическое изображение кнопки "Пуск", то предлагаю немного оживить её :) Надеюсь, что это доставит Вам удовольствие. Совместимость: Все версии Delphi
// Создаём буфер для спрайтов 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.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/
Разработка CGI приложений на Дельфи
Разработка приложений, которые бы могли работать непосредственно в www среде. Т.е. такие, которые бы полностью бы интегрировались в уже привычные нам веб-странички. Программисту пишушему CGI-приложения придется столкнуться с двумя основными задачами - это разработка веб-интерфейса и разработка непосредственно математической части приложения...
Хокку дня
Рыбалка в разгаре! Уже и наживку С трудом отличу от закуски...
Афоризмы
Подростки: существа, которые еще не догадываются, что в один прекрасный день они будут знать о жизни так же мало, как их родители (Ричард Уолдер)
Фраза дня
Тепло ли тебе, девица? Тепло ли тебе, синяя?
И на закуску коротенький анекдот
Разговор соседок на скамейке: - Я не знаю никого, кто сильней бы любил животных, Клава - она топит своих котят только в теплой воде.