Читаем Советы по Delphi. Версия 1.4.3 от 1.1.2001 полностью

Кстати, когда мы работаем с Bmp, то для просмотра используем следующий хинт – записываем битовый образ через такую процедуру:

w:=MulDiv(Bmp.Width, GetDeviceCaps(Printer.Handle,LOGPIXELSX), Screen.PixelsPerInch);

h:=MulDiv(Bmp.Height, GetDeviceCaps(Printer.Handle,LOGPIXELSY), Screen.PixelsPerInch);

PrevBmp.Width:=w;

PrevBmp.Height:=h;

PrevBmp.Canvas.StretchDraw(Rect(0, 0, w, h),Bmp);

aPicture.Assign(PrevBmp);

Пpи этом масштабируется битовый образ с минимальными искажениями, а вот при печати – приходится bmp печатать именно так, как описано выше. Итог – наша bmp при печати чуть меньше, чем печатать ее через WinWord, но при этом – внешне – без каких-либо искажений и пр.

Imho, я для себя пpоблему печати pешил. Hа основе вышесказанного, сделал PreView для myStringGrid, где вывожу сложные многостpочные заголовки и пр. на несколько листов, осталось кое-что допилить, но с принтером у меня проблем не будет уже точно :)

PS. Кстати, Андрей Аристов на основе своей наработки сделал сложные геокарты, которые по качеству не хуже, а может, и лучше, чем выдает Surfer (специалисты поймут). Hа ватмат.

PPS. Прошу прощения за возможные стилистические неточности – время вышло, охрана уже ругается. Но код – выдран из работающих исходников.

<p>Разное </p><p>Как в ATX корпусе программно выключить питание под DOS</p>

Serj Kolesnikov рекомендует:

=== Cut ===

 mov ax,5301h

 sub bx,bx

 int 15h

 jc @@finish

 mov ax,530Eh

 sub bx,bx

 mov cx,102h

 int 15h

 jc @@finish

 mov ax,5307h

 mov bx,1

 mov cx,3

 int 15h

@@finish:

 int 20h

=== Cut ===

<p>Операционная система </p><p>Буфер обмена </p><p>Как удобнее работать с буфером обмена как с последовательностью байт?</p>

Из советов Nomadic'a:

Используя потоки —

unit ClipStrm;

{

 This unit is Copyright (c) Alexey Mahotkin 1997-1998

 and may be used freely for any purpose. Please mail

 your comments to

 E-Mail: [email protected]

 FidoNet: Alexey Mahotkin, 2:5020/433

 This unit was developed during incorporating of TP Lex/Yacc

 into my project. Please visit ftp://ftp.nf.ru/pub/alexm

 or FREQ FILES from 2:5020/433 or mail me to get hacked

 version of TP Lex/Yacc which works under Delphi 2.0+.

}

interface uses Classes, Windows;

type TClipboardStream = class(TStream)

private

 FMemory : pointer;

 FSize : longint;

 FPosition : longint;

 FFormat : word;

public

 constructor Create(fmt : word);

 destructor Destroy; override;

 function Read(var Buffer; Count : Longint) : Longint; override;

 function Write(const Buffer; Count : Longint) : Longint; override;

 function Seek(Offset : Longint; Origin : Word) : Longint; override;

end;

implementation uses SysUtils;

constructor TClipboardStream.Create(fmt : word);

var

 tmp : pointer;

 FHandle : THandle;

begin

 FFormat := fmt;

 OpenClipboard(0);

 FHandle := GetClipboardData(FFormat);

 FSize := GlobalSize(FHandle);

 FMemory := AllocMem(FSize);

 tmp := GlobalLock(FHandle);

 MoveMemory(FMemory, tmp, FSize);

 GlobalUnlock(FHandle);

 FPosition := 0;

 CloseClipboard;

end;

destructor TClipboardStream.Destroy;

begin

 FreeMem(FMemory);

end;

function TClipboardStream.Read(var Buffer; Count : longint) : longint;

begin

 if FPosition + Count > FSize then Result := FSize - FPosition

 else Result := Count;

Перейти на страницу:

Похожие книги

Основы программирования в Linux
Основы программирования в Linux

В четвертом издании популярного руководства даны основы программирования в операционной системе Linux. Рассмотрены: использование библиотек C/C++ и стан­дартных средств разработки, организация системных вызовов, файловый ввод/вывод, взаимодействие процессов, программирование средствами командной оболочки, создание графических пользовательских интерфейсов с помощью инструментальных средств GTK+ или Qt, применение сокетов и др. Описана компиляция программ, их компоновка c библиотеками и работа с терминальным вводом/выводом. Даны приемы написания приложений в средах GNOME® и KDE®, хранения данных с использованием СУБД MySQL® и отладки программ. Книга хорошо структурирована, что делает обучение легким и быстрым. Для начинающих Linux-программистов

Нейл Мэтью , Ричард Стоунс , Татьяна Коротяева

ОС и Сети / Программирование / Книги по IT
97 этюдов для архитекторов программных систем
97 этюдов для архитекторов программных систем

Успешная карьера архитектора программного обеспечения требует хорошего владения как технической, так и деловой сторонами вопросов, связанных с проектированием архитектуры. В этой необычной книге ведущие архитекторы ПО со всего света обсуждают важные принципы разработки, выходящие далеко за пределы чисто технических вопросов.?Архитектор ПО выполняет роль посредника между командой разработчиков и бизнес-руководством компании, поэтому чтобы добиться успеха в этой профессии, необходимо не только овладеть различными технологиями, но и обеспечить работу над проектом в соответствии с бизнес-целями. В книге более 50 архитекторов рассказывают о том, что считают самым важным в своей работе, дают советы, как организовать общение с другими участниками проекта, как снизить сложность архитектуры, как оказывать поддержку разработчикам. Они щедро делятся множеством полезных идей и приемов, которые вынесли из своего многолетнего опыта. Авторы надеются, что книга станет источником вдохновения и руководством к действию для многих профессиональных программистов.

Билл де Ора , Майкл Хайгард , Нил Форд

Программирование, программы, базы данных / Базы данных / Программирование / Книги по IT
Программист-прагматик. Путь от подмастерья к мастеру
Программист-прагматик. Путь от подмастерья к мастеру

Находясь на переднем крае программирования, книга "Программист-прагматик. Путь от подмастерья к мастеру" абстрагируется от всевозрастающей специализации и технических тонкостей разработки программ на современном уровне, чтобы исследовать суть процесса – требования к работоспособной и поддерживаемой программе, приводящей пользователей в восторг. Книга охватывает различные темы – от личной ответственности и карьерного роста до архитектурных методик, придающих программам гибкость и простоту в адаптации и повторном использовании.Прочитав эту книгу, вы научитесь:Бороться с недостатками программного обеспечения;Избегать ловушек, связанных с дублированием знания;Создавать гибкие, динамичные и адаптируемые программы;Избегать программирования в расчете на совпадение;Защищать вашу программу при помощи контрактов, утверждений и исключений;Собирать реальные требования;Осуществлять безжалостное и эффективное тестирование;Приводить в восторг ваших пользователей;Формировать команды из программистов-прагматиков и с помощью автоматизации делать ваши разработки более точными.

А. Алексашин , Дэвид Томас , Эндрю Хант

Программирование / Книги по IT