![]() |
AW: Internet Browser mit Delphi: unbegrenzt viele Registerkarten zur Laufzeit
Und wo genau ist nun dein Problem?
Ja, Registerkarten kann man zur Laufzeit erstellen. für TPageControl: ein TTabSheet erstellen und dann via InsertPage dem PageControl zuordnen. |
AW: Internet Browser mit Delphi: unbegrenzt viele Registerkarten zur Laufzeit
s.h.a.r.k, eigentlich hast du recht, aber es geht mir mehr ums Prinzip. Achso, ich schließe mal aus deiner Aussage, dass Standardwebbrowser wie der Internetexplorer und Firefox nur eine begrenzte Anzahl von Registerkarten zur Verfügung stellen.
|
AW: Internet Browser mit Delphi: unbegrenzt viele Registerkarten zur Laufzeit
Jain. Die Frage war eher, ob man überhaupt unbegrenzte Tabsheets will/braucht!
Was bringen dir 1000 Tabsheets? Die Performance und der Speicherverbrauch werden im Erdboden verschwinden und der Benutzer wird auch keinen Durchblick mehr haben. Also wofür? |
AW: Internet Browser mit Delphi: unbegrenzt viele Registerkarten zur Laufzeit
Es muss keine Grenze im Browser existieren. Allein der Mensch und der zur Verfügung stehende Speicher erledigen "vollautomatisch".
Bzgl. deinem Problem: du solltest dir glaub mal ein paar Tutorials bzgl. dem Thema Objektorientiertes Programmieren zur Gemüte führen. Denn das scheint dein Problem zu sein. Leite, wie himitsu angedeutet hat, von TTabSheet ab und kapsle einfach ein TWeBrowser-Objekt etc. In deiner Anwendung kannst du dann beliebig viele Tabs erstellen und darstellen. |
AW: Internet Browser mit Delphi: unbegrenzt viele Registerkarten zur Laufzeit
Vielleicht kurz der Vollständigkeit halber: Du willst keinen eigenen Browser programmieren, sondern die fertige Browser-Komponente in Deiner Anwendung nutzen (kein Problem, dafür ist sie da).
Die in meinen Augen "billige" Lösung wäre es, x Registerkarten zu nutzen mit je einer Browser-Komponente. Alternativ kümmerst Du Dich selbst um die Speicherverwaltung und legst Dir eine Liste an Streams an, die Du zur Not auf die Platte auslagerst. Dann könntest Du mit einem Browser-Control auskommen und mit den Tabs würdest Du nur auswählen, mit welchem Deiner Streams Du das Control fütterst. Ein Tab-Wechsel wäre dann aber mit einem Neu-Laden der Seite (nicht aus dem Netz, sondern aus Deinem Datenspeicher) verbunden. |
AW: Internet Browser mit Delphi: unbegrenzt viele Registerkarten zur Laufzeit
Leute, meine Tastatur ist kaputt; Wie soll ich so schnell stellung nehmen?! Jetzt ma langsam:
himitsu: Kannst du mir den Teil ab TPageControl bitte nochmal erklären? Neutral General: Jetzt übertreib bitte nicht so :!: Ich meine für anspruchsvolle Benutzer, wenn du von dieser Ebene sprichst. Ich möchte nur wissen, wie man (NAHEZU) unbegrenzt viele Komponenten zur Laufzeit zur Verfügung stellen kann. s.h.a.r.k: Ich benutze Delphi noch nicht sonderlich lange (ca. 1Jahr) und das ist das erste mal, dass ich soetwas versuche. by Daniel: Mit Streams habe ich noch nie gearbeitet. wie funktionieren die? Ganz ehrlich, Leute, so langsam bekomme ich das Gefühl, als würde ich das 1. Mal mit Delphi arbeiten. |
AW: Internet Browser mit Delphi: unbegrenzt viele Registerkarten zur Laufzeit
Zitat:
|
AW: Internet Browser mit Delphi: unbegrenzt viele Registerkarten zur Laufzeit
Zitat:
Nein, Spass bei Seite und mal mit etwas mehr ernst :) Du musst dir glaub erst mal die Grundlagen von OOP anschauen, denn genau das Prinzip ist hier sehr wichtig. Hast du das verstanden, dann verstehst du auch himitsus Aussage. Du musst dir dies bzgl. eben die Schnittstellen (Eigenschaften und Methoden) von der PageControl-Komponente anschauen. Nochmals mit ein wenig Code -- das hier kann ein Tab sein:
Delphi-Quellcode:
Und so kannst du beliebig viele Tabs öffnen -- was natürlich Käse ist! TBrowserForm ist eine Form, die ein PageControl beinhaltet.
TMyBrowserTab = class(TTabSheet)
private FBrowser : TWebBrowser; public procedure LoadPage(const Url: string); end;
Delphi-Quellcode:
procedure TBrowserForm.CreateNewTab(const Url: string);
var NewTab : TMyBrowserTab; begin NewTab := TMyBrowserTab.Create(); NewTab.LoadPage(Url); TabPageControl.InsertPage(NewTab); // Keine Ahnung ob der Aufruf so stimmt! end; procedure TBrowserForm.DoNoUseMe(); const TAB_COUNT = 100000; var i : Integer; begin for i := 0 to TAB_COUNT do CreateNewTab('http://www.google.de'); end; |
AW: Internet Browser mit Delphi: unbegrenzt viele Registerkarten zur Laufzeit
Also:
Delphi-Quellcode:
Ach so, wo finde ich diese Grundlagen ( OOP )?
procedure Form1.Button1Click(Sender:Object);
var Registerkarte: TPageControl; begin Registerkarte:= TPageControl.Create(Application); Registerkarte.Parent:= Form1; try //........Anweisung finally Registerkarte.Free; end; end; OKAY, ich komm nachher wieder, muss jetzt weg... |
AW: Internet Browser mit Delphi: unbegrenzt viele Registerkarten zur Laufzeit
oh, als der letzte Beitrag kam, habe ich noch geschrieben...
Danke!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz