Salut tout le monde,
Je voudrais recréer une sorte de mini navigateur façon Firefox en bien plus modeste ave cle système des onglets. En ce qui concerne ces derniers, je n'ai aucun problème : je les crée/rajoute et les retire de façon totalement dynamique sans aucun soucis. Par contre je ne sais pas comment m'y prendre pour intégrer dans chaque onglet crée dynamiquement (je dispose d'un tableau de TTabSheet) un TWebBrowser. Dois-je utiliser un tableau de TWebBrowser ? Si oui comment faire pour les afficher après ?

Voici ce que j'ai fait pour l'instant histoire de situer les choses :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
 
unit test_TabBrowser;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, OleCtrls, SHDocVw, XPMan;
 
type
  TForm1 = class(TForm)
    pcNavigator: TPageControl;
    btAdd: TButton;
    btRemove: TButton;
    XPManifest1: TXPManifest;
    procedure btAddClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure btRemoveClick(Sender: TObject);
  private
    { Déclarations privées }
    FTabSheets : Array of TTabSheet;
  public
    { Déclarations publiques }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.FormCreate(Sender: TObject);
begin
  Setlength(FTabSheets, 0);
end;
 
procedure TForm1.btAddClick(Sender: TObject);
var len : Integer;
begin
  len := Length(FTabSheets);
  SetLength(FTabSheets, len + 1);
  FTabSheets[len] := TTabSheet.Create(pcNavigator);
  FTabSheets[len].Name := 'ts' + IntToStr(len);
  FTabSheets[len].Caption := FTabSheets[len].Name;
  FTabSheets[len].PageControl := pcNavigator;
  pcNavigator.ActivePageIndex := pcNavigator.PageCount - 1;
end;
 
 
procedure TForm1.btRemoveClick(Sender: TObject);
var
  del : TTabSheet;
  i, len, cur : Integer;
begin
  len := Length(FTabSheets);
  if len > 0 then begin
    if ((pcNavigator.ActivePageIndex = pcNavigator.PageCount - 1) and (len > 1)) then
      pcNavigator.ActivePageIndex := pcNavigator.PageCount - 2;
    cur := pcNavigator.ActivePageIndex;
    del := FTabSheets[cur];
    del.PageControl := nil;
    del.Free;
    for i := cur to len - 2 do begin
      FTabSheets[i + 1].name := 'ts' + IntToStr(i);
      FTabSheets[i] := FTabSheets[i + 1];
    end;
    SetLength(FTabSheets, len - 1);
  end;
end;
 
end.
Merci d'avance.