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

Мастера DELPHI. Новости мира компонент, FAQ, статьи...


Информационный Канал Subscribe.Ru

Ежедневная рассылка сайта Мастера DELPHI

DELPHI.mastak.ru

Выпуск от 21.08.02 09:04

Новые компоненты   |x|
  • Clarion Toolkit v1.15 (4Kb) (20.08.02 11:02)
    Набор компонентов для таблиц Clarion v2.X с доступом r/o. Поддержка шифрованных таблиц (с восстановлением пароля); быстрый и интеллектуальный кэш-курсор с поддержкой массивов Clarion и Firebird (Interbase 6). Включены демо (компилированные - на сайте).
    С исходными текстами.
    Источник: www.delphipages.com   Автор: Juliasoft http://juliasoft.nm.ru
    -= · VCL · Samples · =- [Перевел: Mark S. Zheleznyak]

  • TJsNullStream (2Kb) (20.08.02 10:56)
    "Черная дыра" для данных: у нулевого потока указатель и размер всегда нулевые, запись всегда успешна, чтение всегда возбуждает исключение.
    С исходными текстами
    Источник: www.delphipages.com   Автор: Juliasoft juliasoft.nm.ru
    -= · VCL · Samples · =- [Перевел: Mark S. Zheleznyak]

  • Nuca News Plugin (46Kb) (20.08.02 10:55)
    Пример использования Nuca Plugin для подключения к сайту, загрузки файла и вывода его в качестве новостного сообщения. Нуждается в Nuca Plugin.
    С исходными текстами
    Screenshot: http://www.delphipages.com/uploads/screenshots/nuca_news.jpg
    Источник: www.delphipages.com   Автор: Alexnaldo Santos http://www.geocities.com/nucainterface
    -= · VCL · Samples · =- [Перевел: Mark S. Zheleznyak]

  • .Net Controls (18Kb) (20.08.02 10:53)
    Обновление для Design eXperience .Net Package от 2002/07/30. Изменены цвета и стили. Набор .Net Control Suite содержит замены для наиболее стандартных VCL.
    Абсолютно FREE!
    С исходными текстами
    Screenshot: http://www.delphipages.com/uploads/screenshots/dxDotNetPack.gif
    Источник: www.delphipages.com   Автор: Marc Hoffmann http://www.apriori.de
    -= · VCL · Samples · =- [Перевел: Mark S. Zheleznyak]

  • Design eXperience (95Kb) (20.08.02 10:50)
    Это обновление от 2002/07/30: устранены ошибки и добавлено: dxCheckBox (в стиле XP), dxContainer (Advanced Control Container), dxButton (XP Style Button); рендеринг в реальном времени и т.п. В следующей версии планируется полная поддержка тем для WindowsXP/OfficeXP и дополнительные элементы управления.
    Абсолютно FREE!
    С исходными текстами
    Screenshot: http://www.delphipages.com/uploads/screenshots/dxDemo.gif
    Источник: www.delphipages.com   Автор: Marc Hoffmann http://www.apriori.de
    -= · VCL · Samples · =- [Перевел: Mark S. Zheleznyak]

  • Nuca Plugin (408Kb) (20.08.02 10:46)
    Компонент-менеджер для управления плагинами, которые рассматриваются как сервисы, что позволяет добавлять функциональность без перекомпиляции проекта: меню, формы и т.п. Для отладки сервисов нужно добавить unit в uses.
    С исходными текстами
    Screenshot: http://www.delphipages.com/uploads/screenshots/nuca_image.jpg
    Источник: www.delphipages.com   Автор: Nuca Interface http://www.geocities.com/nucainterface
    -= · VCL · Samples · =- [Перевел: Mark S. Zheleznyak]

  • Для уменьшения объема писем здесь публикуется не весь список новых компонент, потому заглядывайте и на сайт!
Лучшее из нашего FAQ   |x|
Создание отчета в MS Word
(Пример для Delphi 1.0 поскольку в Delphi 2-3 лучше
использовать:
var MsWord : variant;
MsWord := CreateOleObject('Word.Basic'); Для Delphi 3, пример ниже)

Создавать отчет в программе Word удобно если отчет имеет сложную структуру (тогда его быстрее создать в Word, чем в Qreport от Delphi, кроме того, этот QReport имеет "глюки"), либо, если после создания отчета его нужно будет изменять. Итак, первым делом в Word создается шаблон будущего отчета, это самый обыкновенный не заполненный отчет. А в места куда будет записываться информация нужно поставить метки. Например (для наглядности метки показаны зеленым цветом, реально они конечно не видны):

Накладная ? Num
























?

Пос! тавщик

Наименование
товара

Код товара

Кол-во

Цена

Сумма

Table            




Сдал_______________________ Принял________________________
М.П. М.П.





Далее в форму, откуда будут выводиться данные, вставляете компоненту DdeClientConv из палитры System. Назовем ее DDE1. Эта компонента позволяет передавать информацию между программами методом DDE. Свойства:
ConnectMode : ddeManual - связь устанавливаем вручную
DdeService : (winword) - с кем устанавливается связь
ServiceApplication : C:\MSOffice\Winword\WINWORD.EXE - полный путь доступа к программе. (Вот здесь можно наступить на грабли. Ведь Word может лежать в любой папке! Поэтому путь доступа к нему лучше взять из реестра, а еще лучше использовать OLE см.начало раздела)

Теперь пишем процедуру передачи данных:





{ Печать накладной }
procedure Form1.PrintN;
Var
S : string;
i : integer;
Sum : double; {итоговая сумма, кстати,совет: не пользуйтесь типом real!}
Tv, Ss : PChar;
beg! in
S:=GetCurrentDir+'\Накладная.doc'; { имя открываемого документа }
DDE1.OpenLink; { устанавливаем связь }
Tv:=StrAlloc(20000); Ss:=StrAlloc(300); { выделяем память }
{ даем команду открыть документ и установить курсор в начало документа }
StrPCopy(Tv, '[FileOpen "'+S+'"][StartOfDocument]');
S:=NNakl.Text; { номер накладной }
{ записываем в позицию Num номер накладной }
StrCat(Tv, StrPCopy(SS, '[EditBookmark .Name = "Num", .Goto][Insert "'+S+'"]'+
'[EditBookmark .Name = "Table", .Goto]'); { и переходим к заполнению таблицы }
{ передаем данные в Word }
if not DDE1.ExecuteMacro(Tv, false) then
begin { сообщаем об ошибке и выход }
MessageDlg('Ошибка связи с Microsoft Word.', mtError, [mbOk], 0);
StrDispose(Tv); StrDispose(Ss);
exit;
end;

{ Заполняем таблицу }
Sum:=0; Nn:=0;
for i:=0 to TCount do!
begin
inc(Nn);
{ предполагаем, что данные находятся в массиве T }
StrPCopy(Tv, '[Insert "'+IntToStr(Nn)+'"][NextCell][Insert "'+T[i].Company+'"]'+
'[NextCell][Insert "'+T.TName+'"][NextCell][Insert "'+T.Cod+'"][NextCell]'+
'[Insert "'+IntToStr(T.Count)+'"][NextCell]'+
'[Insert "'+FloatToStr(T.Cena)+'"][NextCell]'+
'[Insert "'+FloatToStr(T.Count*T.Cena)*+'"][NextCell]'));
inc(Nn);
Sum:=Sum+(T.Count*T.Cena); { итоговая сумма }
if not DDE1.ExecuteMacro(Tv, false)
then begin
MessageDlg('Ошибка связи с Microsoft Word.', mtError, [mbOk], 0);
exit;
end;
end;

{ Записываем итоговую сумму }
StrPCopy(Tv,
'[NextCell][Insert "Итого"][NextCell][NextCell][NextCell]'+
'[Insert "'+FloatToStr(Sum)+'"]'));
if not DDE1.ExecuteMacro(Tv, false) then MessageDlg('Ошибка связи с Microsoft Word.', mtError, [mbOk], 0)
else MessageDlg('Акт удачно создан. Перейдите в Microsoft Word.',
mtInformation, [mbOk], 0);

StrDispose(Tv); StrDispose(Ss);
end;





Для Delphi 2 и выше
=== Cut Пример by Sergey Arkhipov 2:5054/88.10 ===

Пример проверен только на русском Word 7.0! Может, поможет...

unit InWord;
interface
uses
... ComCtrls; // Delphi3
... OLEAuto; // Delphi2
[skip]
procedure TPrintForm.MPrintClick(Sender: TObject);
var W: Variant;
S: String;
begin
S:=IntToStr(Num);
try // А вдруг где ошибка :)
W:=CreateOleObject('Word.Basic');
// Создаем документ по шаблону MyWordDot
// с указанием пути если он не в папке шаблонов Word
W.FileNew(Template:='C:\MyPath\DB\MyWordDot',NewTemplate:=0);
// Отключение ! фоновой печати (на LJ5L без этого был пустой лист)
W.ToolsOptionsPrint(Background:=0);

// Переходим к закладке Word'a 'Num'
W.EditGoto('Num'); W.Insert(S);
//Сохранение
W.FileSaveAs('C:\MayPath\Reports\MyReport')
W.FilePrint(NumCopies:='2'); // Печать 2-х копий
finally
W.ToolsOptionsPrint(Background:=1);
W:=UnAssigned;
end;
end;
{.....}

=== Cut Конец примера ===



Спасибо Сергею :) И еще, как определить установлен ли на компьютере Word, запустить его и загрузить в него текст из программы?



Пример:




var
MsWord: Variant;
...
try
// Если Word уже запущен
MsWord := GetActiveOleObject('Word.Application');
// Взять ссылку на запущенный OLE объект
except
try
// Word не запущен, запустить
MsWord := CreateOleObject('Word.Application')! ;
// Создать ссылку на зарегистрированный OLE объект
MsWord.Visible := True;
except
ShowMessage('Не могу запустить Microsoft Word');
Exit;
end;
end;
end;
...
MSWord.Documents.Add; // Создать новый документ
MsWord.Selection.Font.Bold := True; // Установить жирный шрифт
MsWord.Selection.Font.Size := 12; // установить 12 кегль
MsWord.Selection.TypeText('Текст');



По командам OLE Automation сервера см. help по
Microsoft Word Visual Basic.

Ну вот и все.


»»» Прислать свои комментарии

Обсуждается в конференциях   |x|
У нас большой выбор статей   |x|
Использование Debug API: пример перехвата вызовов функций Win32 API
Я предпочитаю не писать сухие статьи с кучей теории. Поскольку я люблю читать работающий исходный код, то и здесь будет только исходный код. Все пояснения я буду вставлять прямо в исходник - в виде комментариев. Впрочем, не надейтесь, что вам будет достаточно выдрать отсюда исходник, и он скомпилится. :-) Это не потому, что я специально что-то скрыл, а потому, что я вырезал кучу вспомогательных процедур, которые каждый может написать сам. Если вы, все же, паталогически ленивы - скачайте архив с полными рабочими исходниками. Оттуда точно заработает.
Новинки книжного рынка   |x|
Delphi: специальный справочник
В книге содержится обширный справочный материал по основным элементам языка, включающий в себя наиболее употребительные функции, классы и объекты. Последовательно и подробно изложен процесс создания баз данных, Windows-приложений и динамических библиотек. Приложения с описанием различных кодов ошибок выполнения программ делает книгу полезной не только начинающим программистам, но и пользователям, активно работающим с Delphi
Автор: Б. Карпов
Другие сайты о DELPHI   |x|
Королевство Дельфи, виртуальный клуб программистов
Сайт для Дельфи-программистов.
Форумы, компоненты, FAQ, обзоры, мнения профессионалов.

» Оценка сайта: 5
Опрос населения :)
Какой раздел сайта вам больше нравится?
»»» FAQ
»»» Статьи
»»» Новости мира компонент
»»» Форумы
»»» Компоненты
»»» База по другим сайтам
Журнал "RSDN Magazine"  |x|

Дорогие друзья! Мы рады представить вам новый совместный проект сайтов www.rsdn.ru, delphi.mastak.ru и www.optim.ru - профессиональный журнал для программистов RSDN Magazine.
Несомненно, ваше мнение о необходимости такого журнала, содержании рубрик и темах отдельных статей поможет сделать журнал более полезным и интересным. Высказать свое мнение, проголосовать или же подписаться вы можете на сайте. Без вашего участия, нам будет трудно сделать правильный журнал!
На сайте выложен анонс пилотного выпуска журнала, вступительное слово от редакции.

Для души

Хокку дня
Вспотевшая мышка
Коврик прогнула
В разгаре проекта.

Афоризмы
"Каждого ждет удивительная судьба, но не каждого ей суждено дождаться." (Артур Васильев)

Фраза дня
"Под лежачий камень я всегда успею." //Андрей Кнышев

Дурацкие законы (информация предоставлена сайтом kurilka.com)
В Австралии каждый таксист (как кэбби сто лет назад) обязан постоянно возить в багажнике охапку сена. (вот бы гаишникам такой закон!) В этой стране также владельцы баров обязаны заботиться о лошадях посетителей.
В Алабаме (США) запрещено водить машину с завязанными глазами.

И на закуску коротенький анекдот
Мужик заходит в парикмахерскую:
- Я хочу побриться только с одной стороны. Это должно стоить полцены. Логично?
- Давай, фиг с тобой! Садись. Ну и какую сторону будем брить?
- Наружную!

Фотоприколы.
Начните день с хорошего настроения!
http://delphi.mastak.ru/cgi-bin/prikol.pl?id=2359432


На этом позвольте откланяться и пожелать вам удачного дня.
Искренне ваш, Алексей (delphi@mastak.com)

Добро пожаловать на сайт -= Мастера DELPHI =- 


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное