Начала работать в Delphi, так что буду мучить глупыми и неочень вопросами... Может ли прога открыть и вывести на экран doc-файл со встроенными в него объектами (формулами)? Если может, то как? Расскажите пожалуйста, очень нужно. И еще просьба, дайте ссылку на стандартные процедуры и функции в Дельфе. Заранее спасиибо!
Но про импорт формул я там ничего не вижу, да и вообще как-то мне это маловозможным кажется ...
через OLE-контейнер можно попробовать.... сейчас поэкспериментирую, если удастся - расскажу.
--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует. На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
Можно не пробовать, ибо все работает... На Сурсах мы как-то эту тему на 5 страницах развивали, там чего только через OLE не делали с этими формулами... Надо найти ссылку...
Сорри за нарушение правил... Но только что выяснила, как выглядит OLE-контейнер физически:
М
Юля, кстати, а ты знаешь, что OLE (Object Linking and Embedding) переводится на русский, как ПиВО (Подключение и Внедрение Объектов)? volvo
--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует. На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
Для работы с числами (целыми, вещественными), чтения и вывода чисел (из/в Edit)...
Для чтения и вывода... Дело в том, что свойство Edit'a Text - это строка. Соответственно, ее надо преобразовать в число. Для этого можно использовать либо паскалевский val, либо такие конструкции, как StrToInt для целых и StrToFloat для вещественных. И то, и другое - функции, поэтому:
a: integer; ... a:=StrToInt(Edit6.Text);
Для вывода - наоборот: FloatToStr и IntToStr (либо паскалевский Str) Для ввода целых чисел иногда удобнее использовать SpinEdit (закладка Samples палитры компонентов), свойство Value - это целое число.
А что еще ты хочешь с числами делать?
Цитата
Юля, кстати, а ты знаешь, что OLE (Object Linking and Embedding) переводится на русский, как ПиВО (Подключение и Внедрение Объектов)?
Знаю, конечно Это, пожалуй, единственное, что нам рассказали про OLE на лекции.
Сообщение отредактировано: мисс_граффити -
--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует. На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
Размечталась, что есть еще функции и для возведения в степень и т.п... Наивная... А на счет doc'a я так поняла, что файл надо будет открывать в OleContainer'e. Если нет, то где и как? p.s. кстати OLE - это почти в честь меня...
Ураааааааа! Я это сделала! Спасибо всем! А вот теперь думаю. Моя прога, как я раньше хотела, должна была по нажатию кнопки открыть doc-файл (их много), но может обойтись без файлов, так все загнать? Посоветуйте, пожалуйста. И еще. В OLEContainer'e есть что-нибудь вроде прокрутки (я не нашла, а текст большой, неудобно), и кнопки и Edit'ы на нем помещать ведь можно?
А что надо сделать, если не секрет? Какое глобальное задание?
--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует. На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
Извиняюсь, но за моей дурной головой, всему покоя нет...
Цитата
OleContainer1.DoVerb(1);
дает доступ к редактированию текста, а в прог-ме это лишнее. В моей книжке написано про ScrollBars (ssVertical), но в OLE я его не нашла. Есть что-нибуть похожее с этой штукой (скроллер вроде называется, забыла).
Но твою проблему можно решить - попробуй сделать так:
procedure TForm1.Button1Click(Sender: TObject); var ev: variant; begin if OpenDialog1.Execute then begin OleContainer1.CreateObjectFromFile(OpenDialog1.FileName, False); OleContainer1.DoVerb(ovShow); ev := 2; OleContainer1.OleObject.Protect(ev); { <--- !!! } end; end;
и отредактировать текст
Я хочу посмотреть, как это у тебя получится... Однако, прокрутка по-преднему работает...
Можно еще поотключать всякие ненужные менюшки/кнопочки, если надо - скажи, какие именно, я покажу как они отключаются...
А что надо сделать, если не секрет? Какое глобальное задание?
Помнишь я просила натолкнуть на мысль по т/в - это сюда же. Вобщем должно получиться что-то вроде программы-учебника, в которой помимо теории и практики есть "мини-приложения", где можно ввести свои цифры, что-то посчитать и т.п. А я (впрочем как и многие другие) начала все делать почти в последний момент...
Цитата
Я хочу посмотреть, как это у тебя получится...
Спасибо, volvo! Сейчас начну, как что-то сделаю выложу, но не суди строго...
type TForm1 = class(TForm) Button1: TButton; OleContainer1: TOleContainer; OpenDialog1: TOpenDialog; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); var ev: variant; begin if OpenDialog1.Execute then begin OleContainer1.CreateObjectFromFile(OpenDialog1.FileName, False); OleContainer1.DoVerb(ovShow); ev := 2; OleContainer1.OleObject.Protect(ev); { <--- !!! }
end; end; end.
Большая часть кнопок не работает, но если опять попытаться открыть файл (еще раз надовить на кнопку), а потом нажать отмена, то картина получится следующей:
Потом помучалась еще над своей прогой ('работают' только первые 4 раздела), получилось следующее (у меня скроллер на форме появлялся сам, когда запускала ее): GlavnoeMenu.pas ( 653 байт )
Кол-во скачиваний: 589
А можно весь проект заархивировать, и выложить (без EXE и DCU-файлов)? Чтобы можно было откомпилировать и посмотреть именно то, что есть у тебя ... Желательно с DOC-файлами ...