![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проиветствую Мастеров! С печатью разобраться надо помочь .... [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]печатаешь построчно в текстовом режиме?