Модераторы: Snowy, MetalFan, bems, Poseidon

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> trying to open new page in new window 
:(
    Опции темы
muratboy31
Дата 13.2.2010, 01:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 7.1.2010

Репутация: нет
Всего: нет



i am trying to open the page in new window but it doesnt load the page, it opens a blank page and an internet explorer window !!!

Код

procedure Tform1.NewWindowEvent(Sender: TObject; var ppDisp: IDispatch; var Cancel: WordBool);
var
s:string;
begin
S:=ExtractFilePath(Application.ExeName)+'Project1.exe';
WinExec(PChar(Format('%s GetActiveEWB.DefaultDispatch',[S])),SW_SHOWNORMAL);
end;


Это сообщение отредактировал(а) muratboy31 - 13.2.2010, 01:41
PM MAIL   Вверх
Mikel
Дата 13.2.2010, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 882
Регистрация: 30.3.2002
Где: Саратов

Репутация: нет
Всего: 2



You should use ShellExecute, WinExec is old function and i had some problems with it in Win7/Vista.
http://www.cryer.co.uk/brian/delphi/howto_openbrowserurl.htm
add ShellAPI to uses.


--------------------
...so remember, it's better to burn out than to fade away
PM MAIL ICQ   Вверх
muratboy31
Дата 13.2.2010, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 7.1.2010

Репутация: нет
Всего: нет



i used like that ;

Код

procedure Tform1.NewWindowEvent(Sender: TObject; var ppDisp: IDispatch; var Cancel: WordBool);
begin
ShellExecute(self.WindowHandle,'open',PChar(GetActiveEWB.DefaultDispatch),nil,nil, SW_SHOWNORMAL);
end;


but it opens internet explorer window, i want to open my project window...
PM MAIL   Вверх
Mikel
Дата 13.2.2010, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 882
Регистрация: 30.3.2002
Где: Саратов

Репутация: нет
Всего: 2



Then you should run your application with URL as parameter http://delphi.about.com/od/windowsshellapi...cuteprogram.htm
Exe name of your application is "S:=ExtractFilePath(Application.ExeName);", there is no reason to extract file path and then add exename "S:=ExtractFilePath(Application.ExeName)+'Project1.exe';"

And when program is start (for example, OnShow event), get url from ParamStr() value and open it in embedded webbrowser.


--------------------
...so remember, it's better to burn out than to fade away
PM MAIL ICQ   Вверх
muratboy31
Дата 13.2.2010, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 7.1.2010

Репутация: нет
Всего: нет



why it says incompatible types HWND and string  ?

Код

procedure Tform1.NewWindowEvent(Sender: TObject; var ppDisp: IDispatch; var Cancel: WordBool);
var
s:string;
begin
S:=ExtractFilePath(Application.ExeName);
ShellExecute(s,'open',PChar(GetActiveEWB.DefaultDispatch),nil,nil, SW_SHOWNORMAL);
end;

PM MAIL   Вверх
amsoft
Дата 13.2.2010, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 201
Регистрация: 17.10.2009
Где: KZ, Astana

Репутация: 1
Всего: 4



try this
Код

ShellExecute(handle,'open',S,PChar(GetActiveEWB.DefaultDispatch),nil, SW_SHOWNORMAL);

--------------------
"Кто бы ты ни был - не думай о себе слишком"Дельфин
PM   Вверх
muratboy31
Дата 13.2.2010, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 7.1.2010

Репутация: нет
Всего: нет



it gives error      incompatible types 'String' and 'PAnsiChar'

Код

var
s:string;
ShellExecute(handle,'open',S,PChar(GetActiveEWB.DefaultDispatch),nil, SW_SHOWNORMAL);

PM MAIL   Вверх
amsoft
Дата 13.2.2010, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 201
Регистрация: 17.10.2009
Где: KZ, Astana

Репутация: 1
Всего: 4



you have to convert string to PChar first
try this:

Код

var
s:string;
ShellExecute(handle,'open',PChar(S),PChar(GetActiveEWB.DefaultDispatch),nil, SW_SHOWNORMAL);

--------------------
"Кто бы ты ни был - не думай о себе слишком"Дельфин
PM   Вверх
muratboy31
Дата 13.2.2010, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 7.1.2010

Репутация: нет
Всего: нет



ok no error but it opens the folder(filepath) and also an internet explorer window...
i am trying to open new window with my project...
PM MAIL   Вверх
amsoft
Дата 13.2.2010, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 201
Регистрация: 17.10.2009
Где: KZ, Astana

Репутация: 1
Всего: 4



Код

ShellExecute(handle,'open',PChar(Application.ExeName),PChar(GetActiveEWB.DefaultDispatch),nil, SW_SHOWNORMAL);

--------------------
"Кто бы ты ни был - не думай о себе слишком"Дельфин
PM   Вверх
muratboy31
Дата 13.2.2010, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 7.1.2010

Репутация: нет
Всего: нет



this opened my project window with a blank page and also an internet explorer window with the correct link...
PM MAIL   Вверх
amsoft
Дата 13.2.2010, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 201
Регистрация: 17.10.2009
Где: KZ, Astana

Репутация: 1
Всего: 4



you have to use function ParamStr(1) in your application to determine the sended parameter and then do what you want

Это сообщение отредактировал(а) amsoft - 13.2.2010, 17:57
--------------------
"Кто бы ты ни был - не думай о себе слишком"Дельфин
PM   Вверх
muratboy31
Дата 13.2.2010, 18:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 7.1.2010

Репутация: нет
Всего: нет



can u please explain me how to use it ? i have no idea !!!
PM MAIL   Вверх
amsoft
Дата 13.2.2010, 18:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 201
Регистрация: 17.10.2009
Где: KZ, Astana

Репутация: 1
Всего: 4



For example:
You need to start application and open some text file

1. start application with parameter (the parameter is name of the text file you want to open):
Код

ShellExecute(handle,'open',<application name>,<parameter>,nil, SW_SHOWNORMAL);

2. in the event OnCreate of main form of your application write the code:
Код

var
S: string;
...
S := ParamStr(1);
Memo1.Lines.LoadFromFile(S);



--------------------
"Кто бы ты ни был - не думай о себе слишком"Дельфин
PM   Вверх
muratboy31
Дата 13.2.2010, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 7.1.2010

Репутация: нет
Всего: нет



ok 1 question,
i use ini file to load the home page anyway on form create and the question is ;
can i use this ini line as parameter ???
PM MAIL   Вверх
amsoft
Дата 13.2.2010, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 201
Регистрация: 17.10.2009
Где: KZ, Astana

Репутация: 1
Всего: 4



You can use any string as parameter
--------------------
"Кто бы ты ни был - не думай о себе слишком"Дельфин
PM   Вверх
muratboy31
Дата 14.2.2010, 00:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 7.1.2010

Репутация: нет
Всего: нет



am i doing it wrong ?

Код

procedure TForm1.FormCreate(Sender: TObject);
var  
  ini1 : TINIFile;
  S : string;
begin
  S := ParamStr(1);
  ini1 := TINIFile.Create( ExtractFilePath(Application.ExeName)+'Ayar.INI ');
  S:= ini1.ReadString('AnaSayfa','Adres','');
  ini1.Free;
  CreateNewTabBrowser(S);
end;



PM MAIL   Вверх
amsoft
Дата 14.2.2010, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 201
Регистрация: 17.10.2009
Где: KZ, Astana

Репутация: 1
Всего: 4



if you work with ini-file so simply read needed parameter directly from this file.
it's not nessesary to send any parameter in this case

Добавлено через 3 минуты и 48 секунд
Discribe what you want.
Your application must open file which name is in parameter or just open file which name is in ini-file.
--------------------
"Кто бы ты ни был - не думай о себе слишком"Дельфин
PM   Вверх
muratboy31
Дата 14.2.2010, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 7.1.2010

Репутация: нет
Всего: нет



you know internet explorer has a function that opens the link in a new window of internet explorer... 
i want to make the same thing with my browser but open the link with my browser's new window not internet explorer... 


PM MAIL   Вверх
amsoft
Дата 14.2.2010, 20:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 201
Регистрация: 17.10.2009
Где: KZ, Astana

Репутация: 1
Всего: 4



In your case during application start first check sended parameter (ParamStr(1)).
If this parameter is not empty than load file which name is in the parameter.
If this parameter is empty than load file which name is in ini-file.

--------------------
"Кто бы ты ни был - не думай о себе слишком"Дельфин
PM   Вверх
muratboy31
Дата 15.2.2010, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 7.1.2010

Репутация: нет
Всего: нет



i tried this also but it didnt work either...  smile 
it doesnt open my project window !!!

Код

procedure Tform1.NewWindowEvent(Sender: TObject; var ppDisp: IDispatch; var Cancel: WordBool);
var
ts: string;
begin
with TRegistry.Create do
try
rootkey := HKEY_CLASSES_ROOT;
OpenKey('\htmlfile\shell\open\command', False);
try
ts := ReadString('');
except
ts := '';
end;
CloseKey;
finally
Free;
end;
if ts = '' then Exit;
ts := Copy(ts, Pos('"', ts) + 1, Length(ts));
ts := Copy(ts, 1, Pos('"', ts) - 1);
ShellExecute(self.WindowHandle, 'open', PChar(ts), PChar(GetActiveEWB.DefaultDispatch), nil, SW_SHOW);
end;

PM MAIL   Вверх
muratboy31
Дата 15.2.2010, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 7.1.2010

Репутация: нет
Всего: нет



can u please help me with the example attached ?
right click on any link on the page and choose open in new window...


Это сообщение отредактировал(а) muratboy31 - 16.2.2010, 00:49

Присоединённый файл ( Кол-во скачиваний: 10 )
Присоединённый файл  newwindow.rar 248,30 Kb
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0643 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.