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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.09.2007, 17:31   #1
Миша
Пользователь
 
Регистрация: 13.09.2007
Сообщений: 63
По умолчанию пры нажаты в компоненте WebBrowser на какой нибудь гыперссилке случалась какоэта сабития

Как здэлать так чтобы пры нажаты в компоненте WebBrowser на какой нибудь гыперссилке в WebBrowser не загружалась новая страничка а проста случалась какоэта сабития напрымер как пры нажаты Button
Миша вне форума Ответить с цитированием
Старый 18.09.2007, 08:38   #2
Pitbull
детский тренер
Форумчанин
 
Аватар для Pitbull
 
Регистрация: 08.06.2007
Сообщений: 532
По умолчанию

наверное, вы что-то путаете... Данній компонент нужен для отображения странички... Если ві хотите, чтобі при нажатии ссілки , віполнялось какое-то собітие, то Вам нужно самому написать данную страничку (СGI) и в сылке прописать какой-то скрипт.... , а потом отобразить ее в WebBrowser...
а вообще попробуйте поработать с таким событием WebBrowser , как WebBrowser1CommandSteteChange(sende r.......), может вы это имели ввиду....
Код:
procedure TForm1.WebBrowser1CommandStateChange(Sender: TObject;
  Command: Integer; Enable: WordBool);
begin
ShowMessage('fdfdfd');
end;
Данное событие произойдет при любой команде в данном компоненте...
Я злой и страФный серррый воФк, и в пАрАсятах знаю толк - ppp ppp pp p pp pp

Последний раз редактировалось mihali4; 18.12.2009 в 17:31.
Pitbull вне форума Ответить с цитированием
Старый 18.09.2007, 22:24   #3
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

ничего подобного
я писал свой icq клиент взял за редактор сообщений TWebBrowser )) и что я нашел вот смотри правда и самому пришлось хорошенько потрудиться

Код:
unit typeshtml;

interface
  uses Windows, MSHTML, Classes, SysUtils;

type 
   THTMLEventNotifyEvent = 
    procedure(EventObject: IHTMLEventObj; EventType: string) of object; 

   THTMLEvent= class(TInterfacedObject, IDispatch) 
   private 
     FDocument: IHTMLDocument2; 
     FOnEvent: THTMLEventNotifyEvent; 
     function GetTypeInfoCount(out Count: Integer): HResult;stdcall; 
     function GetTypeInfo(Index, LocaleID: Integer; 
       out TypeInfo): HResult;stdcall; 
     function GetIDsOfNames(const IID: TGUID; Names: Pointer; 
       NameCount, LocaleID: Integer; DispIDs: Pointer): 
       HResult;stdcall; 
     function Invoke(DispID: Integer; const IID: TGUID; LocaleID: 
     Integer; Flags: Word; var Params; VarResult, ExcepInfo, 
       ArgErr: Pointer): HResult;stdcall; 
     procedure DoEvent; 
   public 
     constructor Create(Document: IHTMLDocument2); 
     property OnEvent: THTMLEventNotifyEvent 
       read FOnEvent 
       write FOnEvent; 
   end;

implementation

function THTMLEvent.GetTypeInfoCount(out Count: Integer): HResult; 
begin 
   Result := E_NOTIMPL 
end; 

function THTMLEvent.GetTypeInfo(Index, LocaleID: Integer; 
   out TypeInfo): HResult; 
begin 
   Result := E_NOTIMPL 
end; 

function THTMLEvent.GetIDsOfNames(const IID: TGUID; Names: Pointer; 
   NameCount, LocaleID: Integer; DispIDs: Pointer): HResult; 
begin 
   Result := E_NOTIMPL 
end; 

function THTMLEvent.Invoke(DispID: Integer; const IID: TGUID; 
   LocaleID: Integer; Flags: Word; var Params; VarResult, 
   ExcepInfo, ArgErr: Pointer): HResult; 
begin 
   DoEvent; 
   Result := S_OK; 
end; 

constructor THTMLEvent.Create(Document: IHTMLDocument2); 
begin 
   inherited Create; 
   FDocument:= Document; 
   FOnEvent:= nil; 
end; 

procedure THTMLEvent.DoEvent; 
var 
   EventObj: IHTMLEventObj; 
   EventType: string; 
begin 
   if Assigned(FOnEvent) then 
   begin 
     EventObj:= nil; 
     EventType:= ''; 
     if Assigned(FDocument) and Assigned(FDocument.parentWindow) then 
     begin 
       EventObj:= FDocument.parentWindow.event; 
       if Assigned(EventObj) then 
         EventType:= EventObj.type_; 
     end; 

     FOnEvent(EventObj, EventType); 
   end; 
end;

end.



n: TWebBrowser
EditEvent: THTMLEVENT;

IHTMLDocument2(n.EditText.Document).designMode := 'On';
n.EditEvent:= THTMLEvent.Create(IHTMLDocument2(n.EditText.Document));
    n.EditEvent.OnEvent:= OnEditorKeyEvent;
IHTMLDocument2(n.EditText.Document).onkeypress := n.EditEvent as IDispatch;
IHTMLDocument2(n.EditText.Document).onkeydown := n.EditEvent as IDispatch;
IHTMLDocument2(n.EditText.Document).onkeyup := n.EditEvent as IDispatch;

вот вариант вставки объектов - я таким образом организовал смайлы анимированые

var
  p: OleVariant;
begin
    p := EditText.OleObject.Document.all.tags('p').item(0);
    p.insertAdjacentText('beforeEnd',Text);
    CountKey.Caption := inttostr(length(IHtmlDocument2(EditText.Document).body.innerText));
end;
вообщем самый карсивый и мощный редактор TWebBrowser ) просто чтобы добраться до событий и свойств созданной в нем страници, надо знать HTML - ну скрипты если чего, а так же MSDN чтобы был удачи... я еще много чего откопал и оформил но это уже и так много

Последний раз редактировалось mihali4; 18.12.2009 в 17:32.
BOBAH13 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как мне узнать когда одновременно нажаты две клавиши vitalik007 Помощь студентам 8 11.10.2007 17:13
Работа с Flash-ем в компоненте Webbrowser. ratttx Свободное общение 0 09.10.2007 11:17
как присвоить значение ячейки R1C1 из 1.xls, допустим какой-нибудь любой ячейке из 2.xls ? diabloskrk Microsoft Office Excel 3 08.10.2007 12:27
Как позвонить с модема на какой-нибудь номер? Герыч Свободное общение 6 21.05.2007 08:16