JS+
Усиленный язык сценариев для Windows
с возможностью встраивания
в ваши приложения
О языке JS+ Справочник Скачать JS+ DLL
Контакты
СПРАВОЧНИК ПО ЯЗЫКУ JS+ Содержание

TCanvas & BitBlt

- примеры
Примеры на языке JS+
Совместная работа базового компонента TCanvas и функции Windows API BitBlt.
Пример (JS+)
var crc_dx=15,crc_dy=15;

// Главная форма
frm=new TForm();
frm.Caption="JS+ - функция WinAPI BitBlt";

// Строка состояния
stb=new TStatusBar(frm);
stb.SimpleText=" Нажмите кнопку Фото";

// Панель
pnl=new TPanel(frm);
pnl.BorderStyle=bsSingle;
pnl.ClientWidth =crc_dx*35+2;
pnl.ClientHeight=crc_dy*22+2;
pnl.Color=clWhite;

// Подогнать размер формы под размер панели
frm.ClientWidth =pnl.Width;
frm.ClientHeight=pnl.Height+stb.Height;

// Изображение
img=new TImage(pnl);
img.SetBounds(1,1,pnl.ClientWidth-2,pnl.ClientHeight-2);
img_cnv=img.Canvas;
img_cnv.Brush.Color=pnl.Color;
img_cnv.FillRect(img_cnv.ClipRect);

// Кнопка
btn=new TButton(frm);
btn.Caption="Фото";
btn.Left=frm.ClientWidth-btn.Width-crc_dx;
btn.Top =frm.ClientHeight-stb.Height-btn.Height-crc_dy;
btn.Hint="Сделать фото";
btn.ShowHint=true;
btn.OnClick=btn_Click;

// Таймер
tmr=new TTimer(frm);
tmr.Interval=20;
tmr.Enabled=true;
tmr.OnTimer=tmr_Timer;

frm.ShowModal();

// Обработчик события OnClick
function btn_Click(btn)
{
  var dx,dy;

  // Форма для фото
  pht_frm=new TForm();
  pht_frm.Caption="Фото";
  pht_frm.Position=poDesigned;
  pht_frm.Left=frm.Left+50;
  pht_frm.Top =frm.Top +80;
  pht_frm.ClientWidth =dx=img.Width;
  pht_frm.ClientHeight=dy=img.Height;

  pht_img=new TImage(pht_frm);
  pht_img.Align=alClient;
  pht_cnv=pht_img.Canvas;

  BitBlt(pht_cnv.Handle,0,0,dx,dy,img_cnv.Handle,0,0,SRCCOPY);

  pht_frm.ShowModal();
}

// Обработчик события OnTimer
function tmr_Timer(tmr)
{
  var clr,rct=img_cnv.ClipRect;
  var x=Math.round((rct.Width() *Math.random())/crc_dx);
  var y=Math.round((rct.Height()*Math.random())/crc_dy);

  switch (Math.round(5.5*Math.random())) {
    case 3 : clr=clRed; break;
    case 4 : clr=clGreen; break;
    case 5 : clr=clBlue; break;
    default: clr=pnl.Color;
  }

  x*=crc_dx;
  y*=crc_dy;
  img_cnv.Pen.Color=img_cnv.Brush.Color=clr;
  img_cnv.Ellipse(x,y,x+crc_dx,y+crc_dy);
}
JS+Руководство пользователя
Адрес этой страницы: https://jsplus.ru/MANUAL/JSPlus/Example/TCnv_BitBlt.htm
© 2024-2025,