Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.08.2011, 15:34   #1
m0dE^
Пользователь
 
Регистрация: 29.07.2009
Сообщений: 48
По умолчанию Открытие файлов и повторный запуск программы

Здравствуйте! Есть форма, на которой имеется PageControl с Memo. Следующий код предотвращает повторный запуск программы:

Код:
var hMutex: THandle;
...
procedure TForm1.FormCreate(Sender: TObject);
begin
  if WaitForSingleObject(hMutex, 0) <> 0 then Application.Terminate;
end;
...
initialization
  hMutex:=CreateMutex(nil, True, PChar(ExtractFileName(Application.ExeName)));

finalization
  CloseHandle(hMutex);
Если текстовый документ скинуть, допустим, на ярлычок программы, то создастся вкладка и откроется этот документ.

Как мне сделать, чтобы вторая копия по-прежнему не создавалась, а новый скинутый текстовый файл на ярлычок создавал новую вкладку в уже открытой программе?
http://fmbot.ru - ICQ-боты, ICQ-чаты, HTML редакторы, статьи и исходники по Delphi
m0dE^ вне форума Ответить с цитированием
Старый 03.08.2011, 15:43   #2
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Цитата:
Следующий код предотвращает повторный запуск программы
Да ничего подобного)
Ты сам-то поразмысли - если он "предотвращает", значит этот код никогда выполнен быть не может.. А если он будет выполнен, то значит вторая копия была таки запущена и какое-то время работала)
mss вне форума Ответить с цитированием
Старый 03.08.2011, 15:49   #3
m0dE^
Пользователь
 
Регистрация: 29.07.2009
Сообщений: 48
По умолчанию

открылась и закрылась
http://fmbot.ru - ICQ-боты, ICQ-чаты, HTML редакторы, статьи и исходники по Delphi
m0dE^ вне форума Ответить с цитированием
Старый 03.08.2011, 15:52   #4
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Цитата:
Сообщение от m0dE^ Посмотреть сообщение
открылась и закрылась
Если открылась, значит запустилась.
А раз запустилась , значит твое утверждение о том что этот код "предотвращает запуск" заведомо ложно)
mss вне форума Ответить с цитированием
Старый 03.08.2011, 16:18   #5
m0dE^
Пользователь
 
Регистрация: 29.07.2009
Сообщений: 48
По умолчанию

вопрос-то чуть в другом заключается..
http://fmbot.ru - ICQ-боты, ICQ-чаты, HTML редакторы, статьи и исходники по Delphi
m0dE^ вне форума Ответить с цитированием
Старый 03.08.2011, 16:25   #6
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Если ты про добавление в свой PageControl новой вкладки с мемо , то делается это до смешного просто:

var
NewPage: TTabSheet;
NewMemo: TMemo;
..
NewPage := TTabSheet.Create(MyPageControl)
NewMemo := TMemo.Create(NewPage);
NewMemo.Parent := NewPage;
NewMemo.Visible := True;
NewPage.PageControl := MyPageControl;
mss вне форума Ответить с цитированием
Старый 03.08.2011, 16:31   #7
m0dE^
Пользователь
 
Регистрация: 29.07.2009
Сообщений: 48
По умолчанию

все это реализовано уже..
скинул текстовый файл на ярлычок - открылась программка моя, создалась вкладка с Memo и содержимым текстового файла.. Захотел я еще один файлик открыть. скинул - снова открылась программка, создалась вкладка с содержимым текстового файла №2.. (А мне так не надо)

Надо, чтобы просто Текстовый файл №2 был добавлен в первую копию программы в новой вкладке! имеено, чтобы добавление вкладок было при перетаскивании доков на ярлык программы
http://fmbot.ru - ICQ-боты, ICQ-чаты, HTML редакторы, статьи и исходники по Delphi
m0dE^ вне форума Ответить с цитированием
Старый 03.08.2011, 16:47   #8
KAMENYKA
Пользователь
 
Аватар для KAMENYKA
 
Регистрация: 06.12.2007
Сообщений: 87
По умолчанию

Цитата:
Сообщение от m0dE^ Посмотреть сообщение
все это реализовано уже..
скинул текстовый файл на ярлычок - открылась программка моя, создалась вкладка с Memo и содержимым текстового файла.. Захотел я еще один файлик открыть. скинул - снова открылась программка, создалась вкладка с содержимым текстового файла №2.. (А мне так не надо)

Надо, чтобы просто Текстовый файл №2 был добавлен в первую копию программы в новой вкладке! имеено, чтобы добавление вкладок было при перетаскивании доков на ярлык программы
Как я понял у тебя открывается новый экземпляр экзешника, тобиш доступ к переменным открытого со вкладкой ты уже не получишь(в принципе можно но сложновато) тогда остается хранить где ни буть файл к примеру txt, куда ты будеш записывать пути и имена файлов уже открытых в твоей программе.
KAMENYKA вне форума Ответить с цитированием
Старый 03.08.2011, 17:08   #9
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Иными словами, тебе надо чтобы 2-й экз-р программы перед терминированием известил 1-й экз-р о необходимости открыть такой-то документ в новой вкладке своего пейджконтрола)

Способов море.
Самый простой - послать окну формы с пейджконтролом 1-го экземпляра некое сообщение WM_COPYDATA (см. SendMessage).

Примеров дельфийской реализации интерпроцессного взаимодействия с использованием сообщения WM_COPYDATA в Интернете как грязи.
mss вне форума Ответить с цитированием
Старый 03.08.2011, 20:45   #10
m0dE^
Пользователь
 
Регистрация: 29.07.2009
Сообщений: 48
По умолчанию

если несложно, напишите пример
http://fmbot.ru - ICQ-боты, ICQ-чаты, HTML редакторы, статьи и исходники по Delphi
m0dE^ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
запуск программы из под другой программы fomikadze Общие вопросы C/C++ 8 13.06.2011 14:47
Запуск исполняемых файлов из программы Dryg2009 Общие вопросы Delphi 7 15.04.2009 07:50
Запуск программы на выполнение из другой программы. ViNcHeStEr Паскаль, Turbo Pascal, PascalABC.NET 6 18.06.2008 14:33
Запуск файлов программы d_slava Помощь студентам 2 17.06.2008 11:22
открытие файлов Ensoph Общие вопросы Delphi 5 31.03.2008 20:45