Chargement d'une frame, sur un TFrame générique

Résolu
Millenod Messages postés 34 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 21 septembre 2005 - 22 nov. 2004 à 16:20
MoveX Messages postés 230 Date d'inscription vendredi 9 mai 2003 Statut Membre Dernière intervention 16 juillet 2005 - 5 déc. 2004 à 11:38
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

cs_Bestiol Messages postés 833 Date d'inscription dimanche 6 janvier 2002 Statut Membre Dernière intervention 3 novembre 2005 1
22 nov. 2004 à 22:16
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.
3
Millenod Messages postés 34 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 21 septembre 2005
22 nov. 2004 à 22:25
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 :)
3
MoveX Messages postés 230 Date d'inscription vendredi 9 mai 2003 Statut Membre Dernière intervention 16 juillet 2005 1
5 déc. 2004 à 11:38
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
0
Rejoignez-nous