4 votes

Delphi affiche un cadre par numéro de balise dans un contrôle de page

J'ai une question particulière. J'utilise Delphi 2007 sur Windows XP. J'ai un formulaire avec un composant TPageControl. J'ai créé un cadre que je souhaite afficher à l'intérieur de ce PageControl. Je vais créer de nombreux autres cadres qui seront affichés en fonction des événements de clics sur les boutons. Est-il possible d'utiliser la propriété tag du cadre de sorte que lorsque le bouton est pressé, le numéro de tag peut être passé dans une fonction ou procédure générique de sorte que les fonctions ou procédures peuvent être réutilisées pour tous les boutons. Une autre idée était d'utiliser la propriété d'index des tabsheets et de la faire correspondre au numéro de tag du cadre. Toute suggestion serait la bienvenue. Merci d'avance.

2voto

ain Points 12953

Vous avez besoin d'une fonction qui associe le numéro d'étiquette à la classe de cadre, quelque chose comme ce qui suit :

type
  TFrameClass = class of TFrame;

function GetFrameClass(const aClassID: Integer): TFrameClass;
begin
  case aClassID of
    1 : Result := TFrameFoo;
    2 : Result := TFrameBar;
    else Result := nil;
  end;
end;

et vous pouvez ensuite créer des cadres :

var FrClass: TFrameClass;
    Frame: TFrame;
begin
  FrClass := GetFrameClass(btn.Tag);
  if(FrClass <> nil)then begin
     Frame := FrClass.Create(tabsheet);
     Frame.Parent := tabsheet;
  end;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X