Chargement d'une frame, sur un TFrame générique [Résolu]

Signaler
Messages postés
35
Date d'inscription
mardi 29 avril 2003
Statut
Membre
Dernière intervention
21 septembre 2005
-
Messages postés
230
Date d'inscription
vendredi 9 mai 2003
Statut
Membre
Dernière intervention
16 juillet 2005
-
Bonjour,

J'aimerais savoir si le problème sur lequel je me casse le nez depuis aujourd'hui est possible :

J'ai une application qui charge mes dll (plugins), contenant chacune une frame.

Interface :
Cette application est constituée d'une tListBox sur la gauche, servant de menu, et d'un TabControl sur le reste de la fenêtre.
Ce tabControl possède une TFrame, qui servira à charger les frames des plugins.

But à atteindre :
- chargement de la DLL (ok)
- Création d'un onglet dans TabControl correspondant au nom du plugin. (ok).
- Chargement de la frame du plugin dans le TabControl (c'est là que je coince).

Comment Puis-je charger dans le TFrame du TabControl, une frame de Type TFramePlugin1, TFramePlugin2, TFramePlugin3 ?

En vous remerciant d'avance pour votre aide précieuse.

3 réponses

Messages postés
871
Date d'inscription
dimanche 6 janvier 2002
Statut
Membre
Dernière intervention
3 novembre 2005
1
Peut-être que ce "petit tutoriel" pourrait t'aider...

Par contre j'ai bien peur que ça n'implique pour toi un total remaniement de ton code... :os

Sinon comme je penserais qu'une fonction dans ta DLL du genre "LoadPlugin(Parent: TFrame);" que tu appellerais en passant la frame de ton TabControl en paramètre fonctionnerait...

Mais vu la difficulté du tutoriel d'au-dessus, j'en doute...
Il faut que tu testes, et tiens nous au courant ! :oD

Bonne prog' !
Bestiol.
Messages postés
35
Date d'inscription
mardi 29 avril 2003
Statut
Membre
Dernière intervention
21 septembre 2005

Je viens de trouver une partie de ma solution :

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls;

type
  TForm1 = class(TForm)
    PageControl: TPageControl;
    TabSheet1: TTabSheet;
    procedure TabSheet1Show(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

uses
  unit2, unit3;

procedure TForm1.TabSheet1Show(Sender: TObject);
var
  f : tframe;
begin
  f := TFrame3.Create(self);
  f.Parent := self;
  f.Align := alClient;
end;


avec les 3 dernières lignes de code, je peux charger une frame sur la totalité de la zone de l'onglet...
il ne devrait plus qu'à (ah, les y'a qu'à, faut qu'on...) charger la frame directement depuis la dll :)

En tout cas merci pour ton aide rapide, et ce tuto :)
Messages postés
230
Date d'inscription
vendredi 9 mai 2003
Statut
Membre
Dernière intervention
16 juillet 2005
1
tu pourrais afficher ton code complet stp. je suis en train de faire un systeme de plugins moi aussi et j ai des petits problemes quant au chargement du contenu des dll.

merci