Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Выпуск № 684
от 19.12.2006, 08:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 420, Экспертов: 67
В номере:Вопросов: 4, Ответов: 7


Вопрос № 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. Никак не могу найти. Спасибо!
Отправлен: 13.12.2006, 17:25
Вопрос задал: Химяк Виктор Васильевич (статус: 2-ой класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Алтунин Василий Владимирович
Здравствуйте, Химяк Виктор Васильевич!
Оффициальной доки по нему нет, т.к. 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
Комментарий оценки:
Спасибо! Попробую именно так и сделать!


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.37 от 04.10.2006
Яндекс Rambler's Top100

В избранное