Господа коллеги, прошу помощи.
Borland C++ 6.
Пишу курсовой по вышеуказанной теме, столкнулся с двумя проблемами.
1) При экспорте текста в Word экспортируется только текст. Шрифт, выравнивание параграфа и т.д. скидываются на дефолт.
Код:
void __fastcall TForm1::MicrosoftWord1Click(TObject *Sender)
{
Variant V;
V = CreateOleObject("Word.Basic");
V.Exec(Procedure("AppShow"));
V.Exec(Procedure("FileNew") << "Normal");
V.Exec(Procedure("Insert") << Editor->Text);
}
2) Никак не пойму как прописать запрос на сохранение изменений в файле при закрытии окна.
На выходе через меню (Файл – Выход) запрос стоит
код:
void __fastcall TForm1::Exit1Click(TObject *Sender)
{
if (Editor->Modified)
{
TMsgDlgButtons temp_set;
temp_set<< mbYes<<mbNo <<mbCancel;
String buffer = "Сохранить изменения?";
switch(MessageDlg(buffer, mtConfirmation,temp_set,0))
{
case mrYes:
{
Save1Click(this);
this->Close();
}
break;
case mrNo:
this->Close();
break;
}
}
else
this->Close();
}
но как сделать ту же проверку при обычном закрытии – не знаю.
Прошу помощи.
Заранее благодарен.
18 апреля 2009 в 23:01
Всем спасибо.
Сейчас в отъезде, буду дома – проверю.
18 апреля 2009 в 23:00
без временных файлов? создайте Storage в памяти и сохраняйте в него (если ваш едит может ответить на сообщение с именем вроде EM_GETOLEINTERFACE).
18 апреля 2009 в 23:00
А Editor->Lines->Text не содержит RTF?
18 апреля 2009 в 14:05
А в объявление класса внести новый метод?
18 апреля 2009 в 12:03
2Антон Щиров
Да, понял о чём именно речь. Только компиялтор пропускать это событие не хочет по какой-то причине. Я даже скопировал пример просто из хелпа
void __fastcall TForm1::FormCloseQuery(TObject *Sender, bool &CanClose)
{
if (MessageDlg("Close the form?", mtConfirmation, TMsgDlgButtons() << mbOK << mbCancel,0) == mrCancel, mbOK, NULL)
CanClose = false;
}
на что компилятор мне ответил
(С++ Error) Unit1.cpp(132): E2316'_fastcall TForm1::FormCloseQuery(TObject *,bool &)' is not a member of 'TForrm'
Подскажите, пожалуйста, где оплошал.
2Леонид maxleo Максимов
К сожалению, свойства TextRTF или типа такого нет. А в RTF сохранить просто
this->Editor->Lines->SaveToFile('FileName');
только как раз в том и дело, что нужен прямой экспорт, без временных файлов.
18 апреля 2009 в 1:01
я не пользовался BC++6 (5.02 – последний из виденых мною). однако есть предположение, что либо есть свойство типа TextRTF (по аналогии с RichTextbox), либо можно сохранить в файл в RTF-формате.
18 апреля 2009 в 0:05
Событие такое есть у формы. Вызывается при закрытии формы. Параметром CanClose = false процесс закрытия отменяется
18 апреля 2009 в 0:04
2Антон Щиров
Можно немного подробнее? Желательно в примере.
2Леонид maxleo Максимов
В том то и дело. Не могу найти как передать само форматирование.
17 апреля 2009 в 23:04
"Editor->Text" ничего кроме текста не даст.
17 апреля 2009 в 22:01
OnCloseQuery