Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi TWebBrowser Scrollbar Problem - Zugriffsverletzung beim entfernen der Scrollbar (https://www.delphipraxis.net/167659-twebbrowser-scrollbar-problem-zugriffsverletzung-beim-entfernen-der-scrollbar.html)

Premaider 11. Apr 2012 17:48

TWebBrowser Scrollbar Problem - Zugriffsverletzung beim entfernen der Scrollbar
 
Hey Leute ich habe schon diverse Methoden probiert, aber immer wenn ich das Programm dann starte kommt ein Error von wegen "Zugriffsverletzung". Kann es sein dass es daran leigt, dass ich Delphi7 habe ? Könntet ihr mir eine Methode vorschlagen die bei Delphi7 funktioniert ? Und falls man noch irgendwelche Units einbinden muss bitte sagt mir das auch ich kenne mich noch nicht so aus.

LG Premaider :D

DeddyH 11. Apr 2012 17:50

AW: TWebBrowser Scrollbar Problem - Zugriffsverletzung beim entfernen der Scrollbar
 
Findest Du nicht, dass es hilfreich wäre, uns zu sagen, was Du überhaupt tust?

Premaider 11. Apr 2012 17:52

AW: TWebBrowser Scrollbar Problem - Zugriffsverletzung beim entfernen der Scrollbar
 
Delphi-Quellcode:
WebBrowser1.OleObject.Document.Body.Style.Overflow X := 'hidden';
WebBrowser1.OleObject.Document.Body.Style.Overflow Y := 'hidden';
Auch egal zu welchem ereigniss beim WebBrowser ich das packe. Ich bekomme eine Zugriffsverletzung :(

Bummi 11. Apr 2012 17:59

AW: TWebBrowser Scrollbar Problem - Zugriffsverletzung beim entfernen der Scrollbar
 
Delphi-Quellcode:
procedure TWebbrowserKeeperF.WebBrowserSet3DBorderStyle(bValue: Boolean);
var
  StrBorderStyle: AnsiString;
  tmpElement,
  tmpDocument,
  Element,
  Document : OleVariant;
begin
  if Assigned(WB) then begin
  try
    try
      Document := WB.OleObject.Document;
      if Assigned(TVarData(Document).VPointer) then begin // (varType(Document) = varDispatch) and not VarIsEmpty(Document) and not VarIsNull(Document) then begin
        Element := Document.Body;
        if Assigned(TVarData(Element).VPointer) then // and (varType(Element) = varDispatch) and not VarIsEmpty(Element) and not VarIsNull(Element)
        begin
          case bValue of
            False: StrBorderStyle := 'none';
            True: StrBorderStyle := '';
          end;
          Element.Style.BorderStyle := StrBorderStyle;
          Element.Style.overflowX  := 'auto'; // horizontale Scrollbar nur bei Bedarf einblenden
          Element.Style.overflowY  := 'auto'; // vertikale Scrollbar nur bei Bedarf einblenden
        end;                                  // (mögliche Werte:
      end;                                    // 'visible' Default. No scroll bar. Display is clipped to visible area.
    except                                    // 'scroll' Scroll bar always visible - whether required or not.
    end;                                      // 'hidden' No scroll bar. Content outside of visible area is hidden.
  finally                                     // 'auto' Content is clipped and scroll bar is displayed if required.)
    Element := tmpElement;
    Document := tmpDocument;
  end;
  end;
end;

Premaider 11. Apr 2012 18:03

AW: TWebBrowser Scrollbar Problem - Zugriffsverletzung beim entfernen der Scrollbar
 
Zitat:

Zitat von Bummi (Beitrag 1161320)
Delphi-Quellcode:
procedure TWebbrowserKeeperF.WebBrowserSet3DBorderStyle(bValue: Boolean);
var
  StrBorderStyle: AnsiString;
  tmpElement,
  tmpDocument,
  Element,
  Document : OleVariant;
begin
  if Assigned(WB) then begin
  try
    try
      Document := WB.OleObject.Document;
      if Assigned(TVarData(Document).VPointer) then begin // (varType(Document) = varDispatch) and not VarIsEmpty(Document) and not VarIsNull(Document) then begin
        Element := Document.Body;
        if Assigned(TVarData(Element).VPointer) then // and (varType(Element) = varDispatch) and not VarIsEmpty(Element) and not VarIsNull(Element)
        begin
          case bValue of
            False: StrBorderStyle := 'none';
            True: StrBorderStyle := '';
          end;
          Element.Style.BorderStyle := StrBorderStyle;
          Element.Style.overflowX  := 'auto'; // horizontale Scrollbar nur bei Bedarf einblenden
          Element.Style.overflowY  := 'auto'; // vertikale Scrollbar nur bei Bedarf einblenden
        end;                                  // (mögliche Werte:
      end;                                    // 'visible' Default. No scroll bar. Display is clipped to visible area.
    except                                    // 'scroll' Scroll bar always visible - whether required or not.
    end;                                      // 'hidden' No scroll bar. Content outside of visible area is hidden.
  finally                                     // 'auto' Content is clipped and scroll bar is displayed if required.)
    Element := tmpElement;
    Document := tmpDocument;
  end;
  end;
end;

Wenn ich diesen Code einfüge kommen folgende Fehler.

Delphi-Quellcode:
[Fehler] Unit1.pas(48): ';' erwartet, aber '.' gefunden
[Fehler] Unit1.pas(56): Undefinierter Bezeichner: 'WB'
[Fehler] Unit1.pas(59): Operator oder Semikolon fehlt
[Fehler] Unit1.pas(59): Anweisung erforderlich, aber Ausdruck vom Typ 'OleVariant' gefunden
[Fehler] Unit1.pas(64): Undefinierter Bezeichner: 'bValue'
[Fataler Fehler] Project1.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden

Bummi 11. Apr 2012 18:08

AW: TWebBrowser Scrollbar Problem - Zugriffsverletzung beim entfernen der Scrollbar
 
da wo TWebbrowserKeeperF. sstehr wird bei Dir wahrscheinlich Form1. stehen müssen
WB heißt bei Dir wahrscheinlich Webbrowser1

Der Code war eh nicht für Copy&Paste gedacht, sondern zum spicken, vor allem auf die Stellen mit Assigned

Premaider 11. Apr 2012 18:14

AW: TWebBrowser Scrollbar Problem - Zugriffsverletzung beim entfernen der Scrollbar
 
Da ich aber eigendlich ein blutiger Anfäger bin kann ich aus dem Code kaum was "rausspicken".

Habe alles ersetzt und weiterhin diese Fehler:
Delphi-Quellcode:
[Fehler] Unit1.pas(48): Undefinierter Bezeichner: 'WebBrowserSet3DBorderStyle'
[Fehler] Unit1.pas(48): ';' erwartet, aber '(' gefunden
[Fehler] Unit1.pas(56): Inkompatible Typen
[Fehler] Unit1.pas(59): Methodenbezeichner erwartet
[Fehler] Unit1.pas(59): Anweisung erforderlich, aber Ausdruck vom Typ 'OleVariant' gefunden
[Fehler] Unit1.pas(64): Undefinierter Bezeichner: 'bValue'
[Fataler Fehler] Project1.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden

DeddyH 11. Apr 2012 18:21

AW: TWebBrowser Scrollbar Problem - Zugriffsverletzung beim entfernen der Scrollbar
 
Sry, aber so wird das nix. Du solltest zumindest erkennen, was der Methodenname ist.

Premaider 11. Apr 2012 18:27

AW: TWebBrowser Scrollbar Problem - Zugriffsverletzung beim entfernen der Scrollbar
 
Das ist doch
WebBrowserSet3DBorderStyle
oder bin ich jetzt zu dumm hierfür ? :cry:

Thom 11. Apr 2012 20:19

AW: TWebBrowser Scrollbar Problem - Zugriffsverletzung beim entfernen der Scrollbar
 
Willst du die (vertikale) Scrollbar des Browser-ActiveX ausblenden, geht das über das IDocHostUIHandler-Interface.
Delphi-Quellcode:
function TDocHostUIHandler.GetHostInfo(var pInfo: TDocHostUIInfo): HResult;
begin
  ZeroMemory(@pInfo,SizeOf(TDocHostUIInfo));
  pInfo.cbSize:=SizeOf(TDocHostUIInfo);
  pInfo.dwFlags:=DOCHOSTUIFLAG_SCROLL_NO or DOCHOSTUIFLAG_NO3DBORDER;
  Result:=S_OK;
end;

Premaider 11. Apr 2012 20:23

AW: TWebBrowser Scrollbar Problem - Zugriffsverletzung beim entfernen der Scrollbar
 
Wo finde ich das ? Per Google lässt sich nichts dazu finden

Thom 11. Apr 2012 20:30

AW: TWebBrowser Scrollbar Problem - Zugriffsverletzung beim entfernen der Scrollbar
 
Schau Dir das Delphi Framework für Google Maps an - dort findest Du die Komplettlösung (Units BrowserTools.pas und DocHostUIHandler.pas).
Hier gibt's die Artikel im MSDN und hier eine Beitragsserie bezüglich der Anwendung mit Delphi.

Premaider 11. Apr 2012 20:37

AW: TWebBrowser Scrollbar Problem - Zugriffsverletzung beim entfernen der Scrollbar
 
Was hat das mit Google Maps zu tun ? Ich finde wieder nichts :(
Könntest du mir vllt einen Link geben ?

Thom 11. Apr 2012 20:41

AW: TWebBrowser Scrollbar Problem - Zugriffsverletzung beim entfernen der Scrollbar
 
Der Link steht unter meinem Namen... Was das eine mit dem anderen zu tun hat: Die Karten werden in einem scrollbarlosen IE-ActiveX (in der Regel TWebBrowser) angezeigt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:55 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz