Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: ActiveX/СОМ/CORBA > замена стиля в webbrowser


Автор: elementos 15.5.2008, 15:34
как корректно заменить стиль css в webbrowser-e?
вроде сделал все по науке,

Код


procedure tform1.loadForum;
var flags: OleVariant;
begin
flags := 0;
webbrowser1.Navigate('http://vorota.de/Forum.AxCMS', flags);
updatestyle;
end;

procedure tform1.updateStyle2(s: string);
var s2: string;
begin
if (not checkbox1.Checked) or (not fileexists('c:\my.css')) then
exit;
s2 := 'file:///' + 'c:/my.css';
 if (pos('http://vorota.de/', s) > 0) then
 if (webbrowser1.Document <> nil) then
webbrowser1.OleObject.Document.styleSheets.Item(0).href := s2;
end;

procedure tform1.updateStyle;
var s2: string;
begin
if (not checkbox1.Checked) or (not fileexists(currdir + 'c:\my.css')) then
exit;
s2 := 'file:///' + 'c:/my.css';
if webbrowser1.Document <> nil then
webbrowser1.OleObject.Document.styleSheets.Item(0).href := s2;
end;

procedure TForm1.WebBrowser1BeforeNavigate2(ASender: TObject; const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
  Headers: OleVariant; var Cancel: WordBool);
begin
updatestyle2(url);
end;

procedure TForm1.WebBrowser1DocumentComplete(ASender: TObject; const pDisp: IDispatch; var URL: OleVariant);
begin
updatestyle2(url);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
loadforum;
end;



при открытии страницы http://tinyurl.com/5ktppx  лезет ошибка "недопустимый (недействительный) аргумент".

при выполнении ф-ции UpdateStyle в событии BeforeNavigate2 (без проверки урла) идет все быстро и стиль меняется нормально, но только пока нет перехода на другую страницу. при переходе лезут ошибки (оно и понятно).
при выполнении ф-ции UpdateStyle2 (с проверкой урла) вылазит старый стиль на короткое время (что есть плохо), однако ошибок на чужих страницах нет.

как сделать чтобы и проверка урла была, и старый стиль при этом не вылазил

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)