![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| s2004 |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 30.10.2006 Репутация: нет Всего: нет |
в embeddedwb имеется событие EmbeddedWB1NewWindow2 необходимое для открытия нового окна при кликание сылки при этом подставляется урл открывается новое окно, но при закрытие родительской формы всё тоже закрывается решил о необходимости запускать копию программы с подстановкой урла тут в некоторых форумах были советы с испрользованием Paramstrp и shellexecute.
перепрообвал многие, но только получилось так, что запускается копия и плюс ещё iexplorer ... Код вначале который был
коды некоторые которые перепробовал меня смущает, что получается в них я не задействовал парметр заданый в событие это var ppDisp: IDispatch;
одним словом запутался |
||||
|
|||||
| s2004 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 30.10.2006 Репутация: нет Всего: нет |
запускается копия программы, но урл неподстовляется |
|||
|
||||
| s2004 |
|
||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 30.10.2006 Репутация: нет Всего: нет |
по порядку в DRKB идёт такой пример
OnNewWindow2 Возникает при попытке открыть документ в новом окне. Если Вы хотите, чтобы документ был открыт в Вашем экземпляре броузера, то Вам нужно создать свой экземпляр броузера и параметру ppDisp присвоить интерфейсную ссылку на этот экземпляр:
как видите код, как у меня практически, он запускает новое окно, НО ТОЛЬКО, КАК ДОЧЕРНЕЕ при этом при закрытие родительского закрывается и дочернее на форуме http://forum.sources.ru/index.php?showtopic=346017 посоветовали использовать winexec (shellexec) в связки с paramcount при этом рассуждаем так
не нужен? ведь с помощью shellexecute мы должны запустить копию программы с диска по умолчанию в c:\program files\net\net.exe пробовал разные варианты перечисляю
но это запустит только копию программы с установочной папки а как сотворить подстановку урла? Куда прикрутить ppdisp? |
||||||
|
|||||||
| s2004 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 30.10.2006 Репутация: нет Всего: нет |
вот нашёл на одном форуме Это сообщение отредактировал(а) s2004 - 7.10.2012, 22:37 |
|||
|
||||
| s2004 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 30.10.2006 Репутация: нет Всего: нет |
вот только теперь любой клик открывается в новом окне ... а как сделать чтобы выбор был открыть в новом или в старом
|
|||
|
||||
| s2004 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 30.10.2006 Репутация: нет Всего: нет |
всё работает и в новом окне и в текущем... |
|||
|
||||
| Чучмек |
|
|||
|
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 14 Всего: 41 |
Открытие страницы в новом окне, это нечто большее, чем запуск копии браузера с новым урл. Сохраняется связь между старой страницей и новой.
Поэтому в OnNewWindow2 мы имеем ppDisp: IDispatch, а не URL:string. Правильное решение с другой стороны (COM). Аналогично использованию MS Office через CreateOleObject('Word.Application') -------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
| Чучмек |
|
|||
|
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 14 Всего: 41 |
Отмечаю все сообщения минусом, потому что в корне неверное решение.
Если правая нога не лезет в левый ботинок - примотаем ботнки к ногам изолентой. -------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
| s2004 |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 30.10.2006 Репутация: нет Всего: нет |
чучмек прочитай своё , что написал.... твоё сообщение один минус
Повторю кто в танке, событие onnewwindow при использование
открывала новое окно но только как дочернее которое закрывалось при закрытие родительского окна а мне в моей пргги этого не нужно поэтому код был изменён на
при этом и запускается копия проги с диска с подстановкой урла, что мне и надо было, а различные опусы не нужны, выложил тем кому возможно понадобится. p.s.Модераторы прошу заблокировать тему без возможности суда ещё что- то писать. |
||||
|
|||||
| Чучмек |
|
|||
|
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 14 Всего: 41 |
-------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
| MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 62 Всего: 128 |
ну-ну, полегче. не вижу повода для санкций. Это сообщение отредактировал(а) MetalFan - 9.10.2012, 20:12 -------------------- There are always someone smarter than you... |
|||
|
||||
| Чучмек |
|
|||
|
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 14 Всего: 41 |
Встречная просьба повременить. Тема, на самом деле, интересная. Мне еще есть что сказать, в смысле кода, а не рассуждений. Сейчас не очень много времени, а нужно проверить прежде чем выкладывать -------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
| s2004 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 30.10.2006 Репутация: нет Всего: нет |
архив посмотрел спасибо. это ещё одно решение - правда неудобно то, что на панели задач отображается в виде одного значка.
так я понял код будет интересен зрителям поэтому выложу его:
|
|||
|
||||
| Чучмек |
|
|||
|
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 14 Всего: 41 |
Это тоже легко решаеться. -------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
| Чучмек |
|
||||||
|
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 14 Всего: 41 |
Вот. Наконец таки добрался.
В глубь по интерфейсам... Перехват навигации. Пока без описания. unit1.pas
Unit_Obj.pas
Unit_Interfaces.pas
-------------------- умную мысль держи при себе, а дурной - поделись с другими |
||||||
|
|||||||
| Чучмек |
|
|||
|
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 14 Всего: 41 |
Этот код не имеет практического значения. Поскольку требует второго (скрытого) WB.
С дополнительным WB все делается гораздо проще - через OnBeforeNavigate2. Однако, код показывает, как происходит открытие новой страницы. Через передаваемый в ppDisp, события OnNewWindow2, интерфес wb.DefaultDispatch, запрашивается ряд интерфейсов. В том числе ITargetFramePriv/ITargetFramePriv2. Для перехвата запроса интерфейсов используем TMyIC (метод QueryInterface). При запросе ITargetFramePriv/ITargetFramePriv2 передаем интерфейс от TTargetFramePriv/TTargetFramePriv2. При запросе остальных интерфейсов, передаем оригинальные интерфейсы от WB2. Через ITargetFramePriv/ITargetFramePriv2 происходит передача url в новую страницу. ITargetFramePriv - в старых версиях IE (метод NavigateHack), ITargetFramePriv2 (метод AggregatedNavigation2) - в новых. TTargetFramePriv/TTargetFramePriv2 - служат для перехвата передачи url. В ITargetFramePriv.NavigateHack url передается в виде WideString. (передаем в CallbackProc, и меняем на about:blank) В ITargetFramePriv2.AggregatedNavigation2 url передается в виде интерфейса IUri (в CallbackProc передаем строку полученную через pUri.GetAbsoluteUri, а вместо pUri передаем интерфейс от TUri) При желании можно написать заглушки для необходимых интерфейсов. Тогда второй WB не понадобиться. Это сообщение отредактировал(а) Чучмек - 12.10.2012, 12:21 -------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
| Чучмек |
|
|||
|
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 14 Всего: 41 |
-------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
| s2004 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 30.10.2006 Репутация: нет Всего: нет |
попробовал последний архив, но значки просто так же, как у меня в программе отражаются- без содержимого? а я вроде докуче спрашивал чтобы именно с отражением сылки, так выбрать нужное окно легче. скомпиллировалось без проблем ошибки нет?
Добавлено @ 18:00 коды привидённые в теме желательно поместить в FAQ или DRKB? а то там очень бедно по поводу брузера. Чучмек? архивы одинаковые.... Это сообщение отредактировал(а) s2004 - 13.10.2012, 18:10 |
|||
|
||||
| Чучмек |
|
|||
|
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 14 Всего: 41 |
Да нет, отличаются настолько, насколько
Это ты в другой теме спрашивал. ...Ну хорошо. Элементарно Уатсон. Я дурак, обещаю исправится Это сообщение отредактировал(а) Чучмек - 17.10.2012, 09:36 -------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
| s2004 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 30.10.2006 Репутация: нет Всего: нет |
запустил последний архив. значки, как отражались Form2 так и отражаются как и у меня. выбрать нужный значок нельзя - не открыв его и содержимое заглавия страницы не отражено.
Это сообщение отредактировал(а) s2004 - 16.10.2012, 20:57 |
|||
|
||||
| Чучмек |
|
|||
|
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 14 Всего: 41 |
![]() Разве ни это надо? -------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
| s2004 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 30.10.2006 Репутация: нет Всего: нет |
да надо так, но у меня всё скомпилировалось, а этого нет -только form2 и всё.
хорошо бы, если вместе form 2 отражалась и сылка страницы. Это сообщение отредактировал(а) s2004 - 16.10.2012, 21:04 |
|||
|
||||
| Чучмек |
|
|||
|
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 14 Всего: 41 |
Aero в винде включено?
-------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
| s2004 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 30.10.2006 Репутация: нет Всего: нет |
у меня виста basic, надо и чтобы в ХР работало.
Это сообщение отредактировал(а) s2004 - 16.10.2012, 21:12 |
|||
|
||||
| Чучмек |
|
|||
|
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 14 Всего: 41 |
Да не, это семерошный наворот. Он и так, сам по себе работает. Завтычил.Исправлюсь.Посмотрю,что можно сделать. Добавлено @ 21:36 Добавь обработчик OnTitleChange Вот тебе еще вариант. Это сообщение отредактировал(а) Чучмек - 17.10.2012, 12:07 Присоединённый файл ( Кол-во скачиваний: 4 )
ppppp4.7z 176,77 Kb-------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
| s2004 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 30.10.2006 Репутация: нет Всего: нет |
вот то, что практически нужно (правда без миниатюр) Чучмек благодарю
выложу код думаю всем будет интересно
|
|||
|
||||
| s2004 |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 30.10.2006 Репутация: нет Всего: нет |
у меня код
если ввожу
поэтому в твоём архиве компиляция без проблем и всё работает, но у меня пока не работает. |
||||
|
|||||
| Чучмек |
|
||||||
|
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 14 Всего: 41 |
Значит у тебя, в каком то модуле, до implementation есть что-нибудь типа
Если не хочешь исправлять (а НАДО) - напиши
-------------------- умную мысль держи при себе, а дурной - поделись с другими |
||||||
|
|||||||
| s2004 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 30.10.2006 Репутация: нет Всего: нет |
да это я нашёл убирал, подстовлял твой код в свою прогу, так она hidden получается в диспечере висит, а так не видно.
событие formcreate NewForm; сделала скрытым браузер при заремачивание начинает работать, но неполностью правильно. запускается прога- клик на сылку открывается новое окно при этом отображается название каждое своё в каждом окне, но вместо например двух значков проги на панели задач видны 3 значка. Это сообщение отредактировал(а) s2004 - 18.10.2012, 20:58 |
|||
|
||||
| Чучмек |
|
||||
|
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 14 Всего: 41 |
А ты не понял зачем это?
Как в примере? Основное окно приложения делаем не видимым
Из панели задач исчезает кнопка "Project1" Главную форму приложения делаем невидимой / скрытой
Главная форма у нас ничего не содержит. В событии главной формы OnCreate, создаем (Через TFormN.Create) видимую форму - окно браузера. При закрытии окна браузера, завершение приложения НЕ ПРОИСХОДИТ. Этим решаем проблему, с которой ты начинал эту тему. Это сообщение отредактировал(а) Чучмек - 18.10.2012, 20:55 -------------------- умную мысль держи при себе, а дурной - поделись с другими |
||||
|
|||||
| s2004 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 30.10.2006 Репутация: нет Всего: нет |
Чучмек, если заремачено
то браузер работает, но не совсем правильно ![]() виден третий значок на панели задач (окон браузера только два), если строки кода прописаны ТО БРАУЗЕРА НЕТ, НИ ГЛАВНОГО ОКНА, НИ ФОРМЫ просто есть отражение в диспечере задач ну как "троян". весь остальной код, как у тебя. Это сообщение отредактировал(а) s2004 - 19.10.2012, 20:51 |
|||
|
||||
| Чучмек |
|
|||
|
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 14 Всего: 41 |
Скинь. Я посмотрю.
-------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
| s2004 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 30.10.2006 Репутация: нет Всего: нет |
вышлю через личку
|
|||
|
||||
| Чучмек |
|
||||||||||
|
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 14 Всего: 41 |
Ты так ничего не понял. Читай мой пост через один вверх.
Давай заново. Из юнита, из того, который ты мне скинул, -(Unit1) Удаляй
из TForm1.FormCreate удаляй NewForm; Потом File->New->Form Form.Name=FormXXX Юнит новой формы сохрани как StartForm_Unit в нем
В dpr - первая создаваемая форма FormXXX
В uses Unit1 прописываешь StartForm_Unit Это сообщение отредактировал(а) Чучмек - 20.10.2012, 22:03 -------------------- умную мысль держи при себе, а дурной - поделись с другими |
||||||||||
|
|||||||||||
| s2004 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 30.10.2006 Репутация: нет Всего: нет |
попробую завтра спасибо.
|
|||
|
||||
| s2004 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 30.10.2006 Репутация: нет Всего: нет |
так сделал, заработало кроме одного - досадная ошибка в начале запуска. при закрытия окна грузится браузер нормально и все вкладки отражены на значке панели задач.
![]()
|
|||
|
||||
| Чучмек |
|
||||||||
|
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 14 Всего: 41 |
У тебя встречается код
За комментируй в unit1 строку
И исправь все
На
Добавлено через 2 минуты и 15 секунд После того как ты убрал строку Application.CreateForm(TForm1, Form1) Form1 у тебя больше не существует -------------------- умную мысль держи при себе, а дурной - поделись с другими |
||||||||
|
|||||||||
| s2004 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 30.10.2006 Репутация: нет Всего: нет |
покрутил в выходные несколько часов. чтение без запроса с диска не идёт. после того, как например ещё убираю form1 на self среда дельфи начинает упорно подставить unit1 в unit1, что ошибка отказываясь от этого там другое лезет.
я вот помню вроде на каком то этапе у меня давно работало отражение открытых cskjr в значках на панели задач. Возможно какое другое решение тут действительно начинаешь одно менять появляется куча другого. |
|||
|
||||
| Чучмек |
|
|||
|
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 14 Всего: 41 |
Вот когда начинаешь понимать, что глобальные переменные это зло.
Вот что у тебя есть
Использовалось раньше одной формой - а теперь несколькими. Перенеси внутрь TForm1 -------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
| s2004 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 30.10.2006 Репутация: нет Всего: нет |
попробую наверно уже завтра
|
|||
|
||||
| s2004 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 30.10.2006 Репутация: нет Всего: нет |
так вроде всё подправил, пока ошибок не пишет ....
нет есть. такая при открытие файла с диска пишет примерно тоже самое - ошибка по такому адресу и прочая, но повторю возникает при открытие файла с диска, если просто ввести адрес или из истории с вкладок, то нормально, как только с диска - сбой. потом открывается браузер, но файл неподгружает. нет возможности регулировать показывать картинку или нет менял на self
Это сообщение отредактировал(а) s2004 - 21.10.2012, 22:57 |
|||
|
||||
| Чучмек |
|
|||
|
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 14 Всего: 41 |
У тебя еще куча юнитов, проверяй где еще есть обращение к form1
-------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
| s2004 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 30.10.2006 Репутация: нет Всего: нет |
ещё 4 form1 нашёл теперь нет. но теперь программа при запуске ведёт так, как в начале темы - при открытие сылки из родительского окна и если это окно закрыть происходит и закрытие родительского и дочернего окна. вышлю unit1.pas. вопрос прописаны ini- файлы для сохранения параметров проги например включена возможность показа картинок? при закрытие проги и вновь открытии вновь приходится нажимать на соответсвующую кнопку чтобы отображались картинки прога несохраняет поему изменения. ну и нет докучи чтения с диска.
так нашёл почему прога стала закрываться при закрытие родительского окна в form1 в onclose поставил
убрал выше названная ошибка прошла вопрос как заставить программу удалять себя из памяти? кстати по глобальным переменым в учебниках например расписывают, что это хорошо не надо прописовать к каждой процедуре, а тут действительно прав Чучмек - за них сбои. лучше прописать к каждой процедуре. Это сообщение отредактировал(а) s2004 - 22.10.2012, 20:18 |
|||
|
||||
| Чучмек |
|
|||
|
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 14 Всего: 41 |
В TForm1.FormClose
Должно стоять (последней строкой) DecFormCount. Посмотри внимательно: при вызове NewForm увеличивается на единицу form_count. При вызове DecFormCount уменьшается. Если DecFormCount=0 ->application.Terminate -------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
| s2004 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 30.10.2006 Репутация: нет Всего: нет |
да сработало прога из памяти выгружается.
а вот чтение с диска почему не работает, ну и вопрос по несохранению параметров. |
|||
|
||||
| s2004 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 30.10.2006 Репутация: нет Всего: нет |
перебрал параметры ини файлов, но код не работает.
запись в ини файл идёт, а вот такое впечатление, что не читается.
|
|||
|
||||
| Чучмек |
|
|||
|
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 14 Всего: 41 |
breakpoint в TForm30.FormCreate поставь. И через F7/F8 посмотри читается или нет.
Добавлено через 1 минуту и 56 секунд Form30 - это что за зверь? -------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
| Чучмек |
|
|||
|
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 14 Всего: 41 |
-------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
| s2004 |
|
||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 30.10.2006 Репутация: нет Всего: нет |
а переменную s ставил в
но при запуске ошибку пишет и браузер не работает заремачил вначале надо добиться чтобы положение и размер сохранял и восстанавливал. по выше привидённому коду пишет инифайл
и всё, его не меняет. размеры и положение не изменяет. |
||||||
|
|||||||
| Чучмек |
|
|||
|
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 14 Всего: 41 |
Что такое Form30???
-------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
| s2004 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 30.10.2006 Репутация: нет Всего: нет |
form30 это StartForm_Unit
|
|||
|
||||
| Чучмек |
|
|||
|
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 14 Всего: 41 |
А зачем ты настройки невидимого окна сохраняешь???
-------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
| s2004 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 30.10.2006 Репутация: нет Всего: нет |
так вот вначале сохранял form1, потом пробовал form30
|
|||
|
||||
| Чучмек |
|
|||
|
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 14 Всего: 41 |
Рановато ты за это взялся, по видимому :(
Присоединённый файл ( Кол-во скачиваний: 3 )
ppppp5.7z 182,76 Kb-------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
| s2004 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 30.10.2006 Репутация: нет Всего: нет |
нормально, это у меня хобби на 1-2 месяца в год для себя. и разумеется, если незаниматься языком то забываешь и по новой приходится вспоминать, но хочется себе любимому архив распаковал, посмотрел не работает. у меня ini работали пока я не начал менять по теме, вероятно где то какая- та ошибка. файл config.ini несоздаётся. |
|||
|
||||
| Чучмек |
|
|||
|
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 14 Всего: 41 |
В меню есть пункт "Запомнить позицию" -------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
| s2004 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 30.10.2006 Репутация: нет Всего: нет |
да моя не внимательность :( - работает.
|
|||
|
||||
| s2004 |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 30.10.2006 Репутация: нет Всего: нет |
Чучмек (благодарю за расширенные ответы с примерами) вопрос по чтению файла с диска без подтверждения - до модернизации код был в form1
теперь, как бы надо использовать form30. подстовлял различные параметры, но не работает
программа запускается, но при попытки открыть файл с диска пишет ошибку и загрузка файла непроисходит |
||||
|
|||||
| Чучмек |
|
||||
|
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 14 Всего: 41 |
Посмотри соседнюю тему про несколько окон одного класса.
Если в функции/процедуре было обрашение к форме/компонентам на форме Возможны варианты а) сделать функцию методом класса TFormN (доступ к форме через self) б) добавить параметр Form:TForm и передавать self Добавь в функцию NewForm параметр SelfForm:TForm (как в моем последнем примере) И делай проверку SelfForm=nil (при первом вызове в NewForm передавай nil, при открытии нового окна передавай текущее(self))
Функцию get сделай методом TForm1
Это сообщение отредактировал(а) Чучмек - 31.10.2012, 12:53 -------------------- умную мысль держи при себе, а дурной - поделись с другими |
||||
|
|||||
| s2004 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 30.10.2006 Репутация: нет Всего: нет |
Чучмек при попытки в form30 исправить функции newform и tform.get вылетают ошибки, при исправление в form1 ошибки нет. но и не работает. ты уже объяснял нельзя ли подробней всё таки по поводу form30?
Это сообщение отредактировал(а) s2004 - 6.11.2012, 19:41 |
|||
|
||||
| Чучмек |
|
||||
|
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 14 Всего: 41 |
Исправляешь описание TForm1
Было
Стало
Потом ставишь курсор внутрь блока TForm1 =... end; и нажимаешь Ctrl+Shift+C получаешь заготовку метода Get -------------------- умную мысль держи при себе, а дурной - поделись с другими |
||||
|
|||||
| s2004 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 30.10.2006 Репутация: нет Всего: нет |
у меня было
... нажимаешь Ctrl+Shift+C получаешь заготовку метода Get - это не срабатывает. |
|||
|
||||
| Чучмек |
|
||||
|
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 14 Всего: 41 |
Ну добавь ручками TForm1.
Предварительно добавь в секцию public TForm1 строку
зы get должен быть в том же юните что и tform1 -------------------- умную мысль держи при себе, а дурной - поделись с другими |
||||
|
|||||
| s2004 |
|
||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 30.10.2006 Репутация: нет Всего: нет |
этот код для form1?
Это сообщение отредактировал(а) s2004 - 7.11.2012, 20:22 |
||||||
|
|||||||
| Чучмек |
|
||||||
|
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 14 Всего: 41 |
Ну посмотри последний пример. Там в NewForm уже добавлен параметр.
В EmbeddedWB1NewWindow2
В TForm30.FormCreate
Если SelfForm=nil (если не Assigned(SelfForm)) вызвать метод get параметр SelfForm (в NewForm ) - это форма, в WB которой, открывается новое окно. При старте программы еще никакого окна НЕТ, поэтому передаем nil Значит если SelfForm=nil программа только запустилась. Это сообщение отредактировал(а) Чучмек - 7.11.2012, 22:18 -------------------- умную мысль держи при себе, а дурной - поделись с другими |
||||||
|
|||||||
| s2004 |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 30.10.2006 Репутация: нет Всего: нет |
когда подставил nil
|
||||
|
|||||
| Чучмек |
|
|||
|
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 14 Всего: 41 |
Вот посмотри.
... и еще. Чтобы при закрытии форма уничтожалась а не скрывалась,необходимо в OnClose перед вызовом DecFormCount вызвать Free
Присоединённый файл ( Кол-во скачиваний: 2 )
ppppp6.7z 183,36 Kb-------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
| s2004 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 30.10.2006 Репутация: нет Всего: нет |
у меня вот так было подправил, но теперь ошибка при закрытие окна, ошибка по адресу, неверная работа с указателем. Это сообщение отредактировал(а) s2004 - 8.11.2012, 22:35 |
|||
|
||||
| Чучмек |
|
|||
|
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 14 Всего: 41 |
Можно и так.
тогда DecFormCount лучше вызывать в OnDestroy -------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
| s2004 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 30.10.2006 Репутация: нет Всего: нет |
![]() ![]() ошибка при закрытии не стал кнопкой фиксировать нужную позицию, через
Это сообщение отредактировал(а) s2004 - 9.11.2012, 19:27 |
|||
|
||||
| Чучмек |
|
|||
|
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 14 Всего: 41 |
Форма должна уничтожатся до вызова Application.Terminate
-------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
| s2004 |
|
||||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 30.10.2006 Репутация: нет Всего: нет |
если в form1 ставлю
то ошибка сохраняется плюс закрывается все окна при закрытие любого окна браузера, а так Application.Terminate вызывается только в form30. как у тебя в примере. а так уменя в form1 стоит
Добавлено через 11 минут и 32 секунды а вот получилось при таком коде
Это сообщение отредактировал(а) s2004 - 10.11.2012, 18:09 |
||||||||
|
|||||||||
| Чучмек |
|
|||
|
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 14 Всего: 41 |
Ошибка всегда, или только когда открываешь файл с диска?
Добавлено через 13 минут и 24 секунды Перенеси вызов DecFormCount в OnDestroy. Так правильнее более правильно будет. -------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
| s2004 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 30.10.2006 Репутация: нет Всего: нет |
так я же написал, что исправил в предыдущем посте. ошибки теперь нет. благодарю за ответы и помощь.
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |