Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как правильно сделать свою форму Parent ом для другого приложе- [D6]


Wild Sam ©   (2002-08-23 12:28:00) 

ния? Апишная функция SetParent предназначена для работы внутри одного приложения. Но для subj. тоже срабатывает, только не очень правильно (если более точно, то ввод работает не совсем корректно). А как сделать все по уму? В целом нужно сделать вот что: Excel разместить внутри моего приложения. Может, есть другие способы?
Всем спасибо.


Polevi   (2002-08-25 18:46:00) [1]

это единственный способ


Wild Sam   (2002-08-25 18:45:00) [2]

Да еще 2 Dm9 - OLEContainer1.Ctl3D := False; {Это чтобы был белый фон- это пригодится, спасибо! (поведение Оле Контейнера стало чуть понятнее :) )


Wild Sam   (2002-08-25 18:41:00) [3]

Спасибо, ребят, но я имею ввиду другие способы сделаться Parent"ом, а не редактирования *.XLS. ОлеКонтейнер не хочу использовать из-за его часто непредсказуемого (во всяком случае, для меня) поведения (типа сливания МейнМеню с исчезновением подменю "файл" с так нужной мне кнопочкой "Принт"... ее, конечно, можно сделать вне экселя, но есть еще ряд причин.)
Жду еще предложений!
Всем спасибо большое.


Dm9   (2002-08-25 05:15:00) [4]

Киньте на Form1:

Button1,
OLEContainer1,
ScrollBox1,
OpenDialog1,
MainMenu1.

Обработчик нажатия Button1:

procedure TForm1.Button1Click(Sender: TObject);
begin
OpenDialog1.Title := "Выберите xls-файл. Или ещё какой-нибудь";
if not OpenDialog1.Execute
then Exit;
OLEContainer1.Parent := ScrollBox1;
OLEContainer1.Top := 0;
OLEContainer1.Left := 0;
OLEContainer1.Ctl3D := False; {Это чтобы был белый фон -
Color не работает. Почему ЭТО работает - не спрашивайте!!!}
OLEContainer1.SizeMode := smAutoSize;
OLEContainer1.CreateObjectFromFile (OpenDialog1.FileName, false);
ShowMessage ("Двойной клик по объекту - редактирование");
end;

А теперь - F9


McSimm   (2002-08-23 12:53:00) [5]


> Может, есть другие способы?

Использовать Excel как Ole object.
TOleContainer


Наверх

Титульная страница Поиск, карта сайта Написать письмо