Элексир
|
|
« : 07-06-2008 19:17 » |
|
Здравствуйте уважаемые гуру Дельфинария. Подскажите пожалуйста. У меня есть 2 программы которые бы я хотел слить в одну. посредством размещения на общей форме и с 2 мя кнопками button1 = программа 1 button2 = прога 2. или как вариацию засунуть все это дело в меню. искал на форуме. ниче не нашел. заранее ПИТЕР всем
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #1 : 07-06-2008 19:21 » |
|
а те программы - обе твои ? И ещё - какова их структура ? А то в каком то случае придётся код копировать, в каком то тупо экзешники запускать, возможно Или диалоги открывать,если dialog-bazed обе
|
|
|
Записан
|
|
|
|
Элексир
|
|
« Ответ #2 : 07-06-2008 19:35 » |
|
а те программы - обе твои ? И ещё - какова их структура ? А то в каком то случае придётся код копировать, в каком то тупо экзешники запускать, возможно Или диалоги открывать,если dialog-bazed обе да обе мои. они обе однооконные если под структурой ты это имеешь ввиду. первая использует базы данных. простенькие они. я вобще то хотел бы узнать как научиться использовать формы. а привязка по экзе мне очень нравится
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #3 : 07-06-2008 19:39 » |
|
Элексир, ну по дельфи я ничего не подскажу, а вообще - раз однооконные, то берёшь класс окна - и копируешь в общий проект. По кнопке создаёшь экземпляр нужного класса - и вперёд, на мины, с песней
|
|
|
Записан
|
|
|
|
Элексир
|
|
« Ответ #4 : 07-06-2008 19:50 » |
|
Элексир, ну по дельфи я ничего не подскажу, а вообще - раз однооконные, то берёшь класс окна - и копируешь в общий проект. По кнопке создаёшь экземпляр нужного класса - и вперёд, на мины, с песней а можешь подсказать как все таки сделать многооконное приложение?в частности использование mdiform и mdichild. а то я пробую и ни ... чего не получается.
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #5 : 07-06-2008 20:00 » |
|
Элексир, ждём дельфистов )
|
|
|
Записан
|
|
|
|
Элексир
|
|
« Ответ #6 : 07-06-2008 20:02 » |
|
Алексей1153+++ Спасибо
|
|
|
Записан
|
|
|
|
Sands
Помогающий
Offline
|
|
« Ответ #7 : 07-06-2008 20:32 » |
|
Элексир, Если от етих программ ничего такого не требуется, то можно вообще обойтись шелэкзэкьютом. Я понимаю, что ето не совсем подходит кака реализация "слить" но все же.
|
|
|
Записан
|
|
|
|
Элексир
|
|
« Ответ #8 : 07-06-2008 20:41 » |
|
Элексир, Если от етих программ ничего такого не требуется, то можно вообще обойтись шелэкзэкьютом. Я понимаю, что ето не совсем подходит кака реализация "слить" но все же.
выполнять удаленно? а как это можно реализовать?
|
|
|
Записан
|
|
|
|
Sands
Помогающий
Offline
|
|
« Ответ #9 : 07-06-2008 20:48 » |
|
Элексир, Ну просто если допустим тебе требуется чтобы ети программки как-то отрабатывали и некоторый результат возвращали главному(менеджерскому) окну то тогда можно применять методику описанную Алексеем. А если ты просто решил написать некий каталогизатор своих программ, который бы просто по нажатию кнопки запускал программку на выполнение и пр етом результат их работы етому менеджеру не важен, то можно обратить внимание на функцию ShellExecute Параметры посмотри в справке, ибо я тоже не очень програмил в дельфи. Но суть в том, что одним из параметров в функцию передается путь к екзешнику(или другому файлу - если более общно), который надо выполнить. Тогда просто в отдельную папочку сложиш екзешники своих программ, а в обработчиках нажатия кнопок пропишеш просто вызов ShellExecute с нужными путями.
|
|
|
Записан
|
|
|
|
Элексир
|
|
« Ответ #10 : 07-06-2008 20:52 » |
|
Sands, спасибо за совет. надо попробовать. ты не можешь подсказать где можно найти справку по mdi'аям?
|
|
|
Записан
|
|
|
|
Sands
Помогающий
Offline
|
|
« Ответ #11 : 07-06-2008 21:00 » |
|
К сожалению - нет. Единсвенное что могу сказать, то помниться у делфи есть каталог с примерами разных програмок, начиная от простых окон и заканчивая навортами типа подключения OpenGL. Так вот думается мне там должен быть базовый пример для MDI-приложения. Правда расположение его не подскажу ибо не помню(( Но вроде где-то в папке, куда ты устанавливал делфи.
|
|
|
Записан
|
|
|
|
Basurman
|
|
« Ответ #12 : 07-06-2008 23:08 » |
|
Все справки можно найти в SDK, правда на английском и весьма мутные. Поскольку MDI (интерфейс многодокументных приложений) - творение детища Билла Гейтса, а Delphi даёт к нему только обёртку. Примеры приложений надо искать в каталоге Demos, расположенном в дереве каталогов Delphi. Например ...\Borland\BDS\3.0\Demos.
|
|
|
Записан
|
|
|
|
zubr
Гость
|
|
« Ответ #13 : 08-06-2008 06:58 » |
|
А клавиша F1 что не работает? В Delphi mdi-формы делаются настолько примитивно, что стыдно об этом говорить. Для этого не надо писать ни строчки кода. В инспекторе объектов для главной mdi-формы ставишь свойство формы FormStyle в fsMdiForm, а в чилд-форме fsMdiChild. И все!!!
|
|
|
Записан
|
|
|
|
Элексир
|
|
« Ответ #14 : 08-06-2008 10:57 » |
|
А клавиша F1 что не работает? В Delphi mdi-формы делаются настолько примитивно, что стыдно об этом говорить. Для этого не надо писать ни строчки кода. В инспекторе объектов для главной mdi-формы ставишь свойство формы FormStyle в fsMdiForm, а в чилд-форме fsMdiChild. И все!!!
Я так и поступаю. но ведь это второе окно сразу активным становится. а я хочу вызывать его по кнопке.
|
|
|
Записан
|
|
|
|
zubr
Гость
|
|
« Ответ #15 : 08-06-2008 12:34 » |
|
Ну так отключи его автоматическое создание. Или вручную из файла проекта Project->View Source удали Application.CreateForm(TForm2, Form2); или из Options проекта удали чилд-форму из Auto create. А чтобы чилд окно при закрытии уничтожалось, а не сворачивалось, в событии OnClose данного окна пропиши Action:=caFree;
|
|
|
Записан
|
|
|
|
Элексир
|
|
« Ответ #16 : 08-06-2008 15:08 » |
|
Спасибо за подсказки.
|
|
|
Записан
|
|
|
|
|