Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проиветствую Мастеров! С печатью разобраться надо помочь .... [D5, Win95/98, NT4, Win2k]


IronHawk ©   (2002-06-08 19:46:00) 

Тут трабл появился .... с распечаткой!
Значит так, есть файло, в нём текст в (866-й кодировке), и с разделителем страниц (&) Нуна, тыцнув на Баттон вывести сначало НЕ чётные а потом ЧЁтные страницы!
(В тексте больше нигде нету "&")
КАК ?
А то трабл шо чётные шо НЕ чётные с Первой вместе печататься начинают ....

... заранее благодарен!


IronHawk   (2002-06-18 22:52:00) [1]


> Song © (14.06.02 08:47)
> Iron Hawk, стучись мне на аську, напишем, если ещё не сделал.

ОК!
Без "базара" :-)

> Кулюкин Олег © (14.06.02 08:27)

ОК!
Спасибо, переделаю!


Song   (2002-06-14 08:47:00) [2]

Iron Hawk, стучись мне на аську, напишем, если ещё не сделал.


Кулюкин Олег   (2002-06-14 08:27:00) [3]

2 IronHawk © (13.06.02 23:24)

> Хорошо, давайте и так !
> Как ?
Функция не моя, так что даю код "как есть".
Распечатывает TStrings на принтере по умолчанию.
Под Ваш случай доработать надо...

procedure PrintStrings(S: TStrings; Font: TFont; Title: string);
var
LeftMargin, TopMargin, LineCoord, LineOnPage, LinesOnDoc,
CurrentLine, TextHeight, LinesPerPage, LineInterval: integer;

procedure StartDoc;
begin
LinesOnDoc := S.Count;
Printer.Canvas.Font.Assign(Font);
Printer.Canvas.TextOut(0, 0, " ");
LeftMargin := (Printer.Canvas.Font.PixelsPerInch) div 2;
TopMargin := (Printer.Canvas.Font.PixelsPerInch) div 2;
TextHeight := Abs(Printer.Canvas.Font.Height);
LineInterval := TextHeight + (TextHeight div 2);
LinesPerPage := (Printer.PageHeight - TopMargin) div LineInterval;
CurrentLine := 0;
end;

function MorePages:boolean;
begin
Result := (CurrentLine < LinesOnDoc) and
not Printer.Aborted;
end;

procedure StartPage;
begin
LineOnPage := 0;
LineCoord := TopMargin;
end;

procedure NextPage;
begin
if MorePages then Printer.NewPage;
end;

function MoreLines:boolean;
begin
Result := (LineOnPage < LinesPerPage) and
(LineOnPage < LinesOnDoc) and
not Printer.Aborted;
end;

procedure NextLine;
begin
Inc(LineOnPage);
Inc(LineCoord, LineInterval);
Inc(CurrentLine);
end;

procedure PrintLine;
begin
Printer.Canvas.TextOut(LeftMargin, LineCoord, S.Strings[CurrentLine]);
end;

begin
Printer.Title := Title;
Printer.BeginDoc;
StartDoc;
while MorePages do
begin
StartPage;
while MoreLines do
begin
PrintLine;
NextLine;
Application.ProcessMessages;
end;
NextPage;
end;
Printer.EndDoc;
end;


IronHawk   (2002-06-14 00:29:00) [4]


> Polevi © (13.06.02 12:45)
> можно, но не всем :-)

Я грубил ?

> Song © (13.06.02 12:54)
> Можно, но Alex IronHawk лёгких путей не ищет!

Не в путях дело!
Потом скажу в чём ......


IronHawk   (2002-06-13 23:24:00) [5]


> Кулюкин Олег © (13.06.02 11:57)
> А все-таки зачем грузить текст "в Мемо или РичЕдит"?
> Можно и без этого паспечатать?

Хорошо, давайте и так !
Как ?


Song   (2002-06-13 12:54:00) [6]

2Кулюкин Олег © (13.06.02 11:57)
Можно, но Alex IronHawk лёгких путей не ищет!


Polevi   (2002-06-13 12:45:00) [7]

2Кулюкин Олег ©
можно, но не всем :-)


Кулюкин Олег   (2002-06-13 11:57:00) [8]

А все-таки зачем грузить текст "в Мемо или РичЕдит"?
Можно и без этого паспечатать?


IronHawk   (2002-06-12 00:03:00) [9]


> VID © (11.06.02 02:53)
> TO Mbo: procedure БатонТыц - круто! :)))

Это для компилятора следующего поколения!


VID   (2002-06-11 02:53:00) [10]

TO Mbo: procedure БатонТыц - круто! :)))


IronHawk   (2002-06-10 23:47:00) [11]


> Song © (10.06.02 08:29)

Alex - сокращенно от !канадского! Alexandr, а не от Американского AleKSandr.

> MBo © (10.06.02 06:23)
> Ты все же поработай над стилем и языком

ОК!
Договорились ..... :-)


Song   (2002-06-10 08:29:00) [12]

2IronHawk © (10.06.02 02:18)
Ссори, у тебя Alex стоит в аське, не думал же, что Alex это Саня :)


MBo   (2002-06-10 06:23:00) [13]

Ты все же поработай над стилем и языком


procedure БатонТыц
begin
for progon:=0 to 1 do begin
flag:=progon;
for i:=0 to memo1.lines.count-1 do
if memo1.lines[i]="%" then
flag:=1-flag
else if flag=0 then begin
/// печатать memo1.lines[i]
end; //else
end; //progon
end;


Aleks1   (2002-06-10 05:42:00) [14]

Привет. Давно тебя не было. Тут, даже, попытался занять твое место некий alrussia. Но ему далеко до тебя!
Токмо все же не понятно, зачем "текст грузить в Мемо или РичЕдит, а потом"?


IronHawk   (2002-06-10 02:18:00) [15]


> MBo © (08.06.02 21:37)
> печатаешь построчно в текстовом режиме?

Нет, мне надобно, текст загрузить в Мемо или РичЕдит, а потом по разделителю читать и печатать с 1-й НЕ чётные, а после чётные, ну для экономии бумаги, а принтер 2-х сороннюю печать незнает .... :-(


> Song © (09.06.02 10:06)


> Очевидно, что надо прочитать в TStringList, затем раз разделителя
> нет, определиться сколько строчек ты хочешь на страницу
> (по стандарту - 60) печать каждые 60 строк через 60.
> P.S. Алексей, ты пиши вопросы нормальным человеческим языком,
> ясно и понятно и люди к тебе потянутся.

Никаких стандартов, только через нахождение раздеителя!

P.S. Я не Алексей, я Саня!
Я задаю вопросы в таком стиле, чтоб даже новичек смог ответить, если ему это раньше встречалось!


Song   (2002-06-09 10:06:00) [16]

Очевидно, что надо прочитать в TStringList, затем раз разделителя нет, определиться сколько строчек ты хочешь на страницу (по стандарту - 60) печать каждые 60 строк через 60.

P.S. Алексей, ты пиши вопросы нормальным человеческим языком, ясно и понятно и люди к тебе потянутся.


MBo   (2002-06-08 21:37:00) [17]

печатаешь построчно в текстовом режиме?


Наверх

Титульная страница Поиск, карта сайта Написать письмо