Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Tabbed Browsing Problem (https://www.delphipraxis.net/42688-tabbed-browsing-problem.html)

Gentleman 22. Mär 2005 16:02


Tabbed Browsing Problem
 
Hi!

Ich nutze ein PageControl, bei dem ich die TabSheets zur Laufzeit erstelle. In jedem TabSheet ist ein Webbrowser, der auch zur Laufzeit erstellt wird. Zustätzlich befindet sich eine Navigationsleiste auf der Form. Mein Problem ist aber nun folgendes:

Woher weiß ich welcher Browser gerade Aktiv ist, damit ich ihn navigieren kann?

Hier ist mein Code:
Delphi-Quellcode:
 private
  WB: TEmbeddedWB;
  Tab: TTabSheet;
Delphi-Quellcode:
with PageControl1 do
  begin
    Tab:= TTabSheet.Create(Self);
      with Tab do
        begin
          PageControl := PageControl1;
          TabVisible := true;
          Name := 'Tab_' + IntToStr(PageIndex);
        end;
  end;

  with WB do
    begin
      WB:= TEmbeddedWB.Create(Tab);
      TControl(WB).Parent:= Tab;
      TControl(WB).Name:= 'WB_' + IntToStr(Tab.PageIndex);
      WB.Align:= alClient;
      WB.Navigate('http://www.google.de');
    end;
Hoffe ihr könnt mir das etwas weiterhelfen.

thx im Voraus!

Alexander 22. Mär 2005 16:05

Re: Tabbed Browsing Problem
 
Schau dir mal das Property ActivePage und ActivePageIndex an :)

Pr0g 22. Mär 2005 16:10

Re: Tabbed Browsing Problem
 
Falls du mehrere Objekte auf dem TabSheet hast kannst du mit einer Schleife den Webbrowser raussuchen:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
  WB: TWebBrowser;
begin
  for i := 0 to PageControl1.ActivePage.ComponentCount - 1 do
  begin
    if PageControl1.ActivePage.Components[i] is TWebBrowser then
    begin
      WB := TWebBrowser(PageControl1.ActivePage.Components[i]);
      Break;
    end;
  end;
  WB.Navigate('http://google.de');
end;
Oder wenn du weißt welches Control es ist dann direkt drauf zugreifen:
Delphi-Quellcode:
TWebBrowser(PageControl1.ActivePage.Components[0]).Navigate('http://google.de');
MfG Pr0g

toms 22. Mär 2005 17:09

Re: Tabbed Browsing Problem
 
Hallo!

Habe fuer meinen Browser eine solche Funktion gemacht:

Delphi-Quellcode:
function TfrmMyBrowser.GetCurrentWB: TEmbeddedWB;
begin
  Result := nil;
  if PageControl1.ActivePage.ControlCount > 0 then
    if PageControl1.ActivePage.Controls[0] is TEmbeddedWB then
      Result := TEmbeddedWB(PC.ActivePage.Controls[0])
end;

Gentleman 22. Mär 2005 17:43

Re: Tabbed Browsing Problem
 
danke für die hilfe! :stupid:

habs mit Pr0gs code gemacht.

toms 23. Mär 2005 21:09

Re: Tabbed Browsing Problem
 
wenn's auf dem TabSheet genau ein TWebbrowser gibt, ist
Delphi-Quellcode:
for i := 0 to PageControl1.ActivePage.ComponentCount - 1 do
ein overkill.

Pr0g 23. Mär 2005 22:17

Re: Tabbed Browsing Problem
 
Was verstehst du unter "overkill", die Schleife wird einmal ausgeführt.

toms 24. Mär 2005 12:22

Re: Tabbed Browsing Problem
 
Zitat:

Zitat von Pr0g
Was verstehst du unter "overkill", die Schleife wird einmal ausgeführt.

Meine nur: Warum eine Schleife nehmen, wenn's auch ohne geht

Muellermilchtrinker 10. Aug 2009 20:42

Re: Tabbed Browsing Problem
 
Zitat:

Zitat von Pr0g
Oder wenn du weißt welches Control es ist dann direkt drauf zugreifen:
Delphi-Quellcode:
TWebBrowser(PageControl1.ActivePage.Components[0]).Navigate('http://google.de');

Was ist wenn man das von Form2 in Form1 machen will?
Ich hab das davor wo ich nur einen Webbrowser hatte (keine PageControl), so gemacht:
Delphi-Quellcode:
Form1.Webbrowser1.Navigate('www.google.de');
Wie geht das nun im aktiven Tab?


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:09 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