Показать сообщение отдельно
  #9  
Старый 20.10.2012, 23:45
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от YVitaliy
Так любая канва его может печатать на себе без доработок
Можно печатать таким способом:
Код:
procedure TForm1.ButtonClick(Sender: TObject);
var bmp:TBitMap;
begin
  bmp:=TBitMap.Create;
   try
    bmp.Width:=BarCode1.Width;
    bmp.Height:=BarCode1.Height;
    bmp.Canvas.CopyRect(rect(0,0,bmp.Width,bmp.Height),BarCode1.Canvas ,
                        rect(0,0,BarCode1.Width,BarCode1.Height));
    //printer.PrinterIndex:=1;
    printer.BeginDoc;
    printer.Canvas.Draw(0,0,bmp);
    printer.EndDoc;
   finally
     bmp.Free;
   end;
end;
Но версия с TPanel, возможно, более "компактна" в плане кода.
Версия с TPanel лучше не потому что компактнее, а потому что будет работать даже если эта панель перекрыта (полностью или частично) другим окном и даже если будет находиться на скрытой форме. А вот с обычным копированием одной канвы на другую в таких случаях фокус не пройдёт.

Но вообще лучше доработать компонент, чтобы он мог выводить штрих-код на произвольную канву, тогда можно будет вывести например в метафайл, а уже с этим метафайлом можно творить что угодно без потери качества (в отличие от TBitmap).
Ответить с цитированием