Вопрос № 66834: Здравствуйте Уважаемые! Вопрос: Где в справке Delphi найти информацию по использованию компонентов TExcelApplication, TWordApplication и т.дт.,
т.е. есть ли справка по компонентам вкладки Servers. Никак не могу найти. Спасибо! ...Вопрос № 66856: Зравствуйте уважаемые!Я опять к вам с темой, начатой в вопросе № 66559, по вашему совету вывожу сейчас на печать следующим кодом
procedure TForm1.Button1Click(Sender: TObject);
var r: TRect; i: Integer;
begin
with Printer do
beg...Вопрос № 66859: Вызывается ли сообщение OnDestroy (или OnClose), если процесс вырубить из диспетчера задач?...Вопрос № 66883: Здравствуйте, уважаемые эксперты! Возможно, мой вопрос покажется слишком уж тривиальном, но всё же. Пишу:
type
TNote = record
Скажите пожалуйста, как мне объявить переменную, относящуюся к переменной типа TNote так, чтобы у этой переменно...
Вопрос № 66.834
Здравствуйте Уважаемые! Вопрос: Где в справке Delphi найти информацию по использованию компонентов TExcelApplication, TWordApplication и т.дт.,
т.е. есть ли справка по компонентам вкладки Servers. Никак не могу найти. Спасибо!
Отвечает: Алтунин Василий Владимирович
Здравствуйте, Химяк Виктор Васильевич!
Оффициальной доки по нему нет, т.к. Texcelapplication и компания
получен импортом библиотеки типов Excel.
Пример по работе с TWordApplication есть в оффициальном
"Developer's Guide" который идет с Builder'ом:
Chapter 40 "Creating COM clients"
Приложение:
--------- ... Дорогу осилит Идущий ...
Ответ отправил: Алтунин Василий Владимирович (статус: 3-ий класс)
Ответ отправлен: 14.12.2006, 03:43 Оценка за ответ: 5
Отвечает: PaVeL_Ekt
Здравствуйте, Химяк Виктор Васильевич!
Мне понравилось как темы работы с серверами MSOffice описанны на сайте
Королевства делфи, зайдите почитайте, именно их статьи помогли мне разобраться с екселем.
--------- Да поможет Вам F1, да сохранит Вас F2, во имя CTRL, ALT и святого DEL
Ответ отправил: PaVeL_Ekt (статус: 9-ый класс)
Ответ отправлен: 14.12.2006, 06:24 Оценка за ответ: 5
Вопрос № 66.856
Зравствуйте уважаемые!Я опять к вам с темой, начатой в вопросе № 66559, по вашему совету вывожу сейчас на печать следующим кодом
procedure TForm1.Button1Click(Sender: TObject);
var r: TRect; i: Integer;
begin
with Printer do
begin
r := Rect(200,200,(Pagewidth - 200),(PageHeight - 200));
BeginDoc;
Canvas.Font.Name:='Courier New';
Canvas.Font.Size:=8;
Canvas.Brush.Style := bsClear;
for i := 0 to Memo1.Lines.Count do
Canvas.TextOut(200,200 + (i *Canvas.TextHeight(Memo1.Lines.Strings[i])),Memo1.Lines.Strings[i]);
Canvas.Brush.Color := clBlack;
Canvas.FrameRect(r);
EndDoc;
end;
end;
работает всё хорошо, но как сделать так ,чтобы строки мемо, если выходят за рамку печатались бы на другом листе.
Отправлен: 13.12.2006, 20:24
Вопрос задал: Delphi-n (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: PaVeL_Ekt
Здравствуйте, Delphi-n!
нужно определить количество строк на листе, делаем примерно так
cnt_lines:=(PageHeight-200-200) div canvas.font.height+10; // (10 - отступ между строками)
и в цикле добавляем:
for i:=0 to memo1.lines.count-1 do
begin
if i mod cnt_lines=1 then
begin
NewPage;
n:=0;
end;
Canvas.TextOut(200,200 + (n *Canvas.TextHeight(Memo1.Lines.Strings[i])),Memo1.Lines.Strings[i]);
if n=0 then
Canvas.FrameRect(r);
inc(n);
end;
вот так примерно должно быть.
--------- Да поможет Вам F1, да сохранит Вас F2, во имя CTRL, ALT и святого DEL
Ответ отправил: PaVeL_Ekt (статус: 9-ый класс)
Ответ отправлен: 14.12.2006, 07:10
Вопрос № 66.859
Вызывается ли сообщение OnDestroy (или OnClose), если процесс вырубить из диспетчера задач?
Отправлен: 13.12.2006, 20:45
Вопрос задал: Fynjy_8 (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: monah
Здравствуйте, Fynjy_8!
Нет, судя по всему процесс просто удаляется из памяти. Как то пробовал перехватить эти события.
--------- festina lente
Ответ отправил: monah (статус: Студент)
Ответ отправлен: 13.12.2006, 20:58
Отвечает: Nick_K
Здравствуйте, Fynjy_8!
Если из Диспетчера задач выбрать "Снять задачу"-тогда сообщение OnDestroy (или OnClose)вызывается. Если выбрать "завершить прецесс" - тогда программа вылетает мгновенно без обработки событий.
Ответ отправил: Nick_K (статус: 1-ый класс)
Ответ отправлен: 14.12.2006, 11:10
Вопрос № 66.883
Здравствуйте, уважаемые эксперты! Возможно, мой вопрос покажется слишком уж тривиальном, но всё же. Пишу:
type
TNote = record
Скажите пожалуйста, как мне объявить переменную, относящуюся к переменной типа TNote так, чтобы у этой переменной мог быть индекс (например, text[index]: string [15]). Вот. И по ходу второй вопрос: переменную какого типа мне задать (вместо string[15]) - чтобы не было этого ограничения в 15 знаков (не хочу лишним забивать файл). Мне кажется, нужно объявить типа Word? Или нет?
Заранее всем благодарен.
Отправлен: 14.12.2006, 00:09
Вопрос задал: /Iorpy$ (статус: 5-ый класс)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Алтунин Василий Владимирович
Здравствуйте, /Iorpy$!
Объявите массив записей:
Var
Arr : array [1..10] of TNote;
Если заранее неизвестно количество записей объявите динамический массив
Var
Arr : array of TNote;
Насчет второй части вопроса – слишком мало исходной информации. Тут все зависит от того, что вы собираетесь хранить в файле и как.
У каждого типа в дельфи есть свои ограничения.
Почитайте вот это - http://www.interface.ru/home.asp?artId=2561
--------- ... Дорогу осилит Идущий ...
Ответ отправил: Алтунин Василий Владимирович (статус: 3-ий класс)
Ответ отправлен: 14.12.2006, 03:36 Оценка за ответ: 5 Комментарий оценки: Спасибо! Всё понял! И ссылка очень полезная!
Отвечает: sir henry
Здравствуйте, /Iorpy$!
2. Вместо String[15] Вы можете задать просто String. Тогда это будет динамическая строка, длина которой будет ровно столько, сколько Вы туда поместите буковок. Word вместо String[15] не пойдет однозначно, т.к. это совершенно другой тип данных, который предназначен для целых чисел.
Ответ отправил: sir henry (статус: Академик) Россия, Красноярск ---- Ответ отправлен: 14.12.2006, 08:26 Оценка за ответ: 5 Комментарий оценки: Спасибо! Попробую именно так и сделать!