Création et enregistrement du composant (Boîte de dialogue)

De RAD Studio
Aller à : navigation, rechercher

Remonter à Transformation d'une boîte de dialogue en composant - Index

La création d'un composant débute toujours de la même façon. vous créez une unité et vous enregistrez le composant avant de l'installer dans la palette d'outils. Ce processus est décrit dans Création d'un nouveau composant.

Pour notre exemple, suivez la procédure générale de création d'un composant en tenant compte des spécificités suivantes :

  • Nommez l'unité du composant AboutDlg.
  • Dérivez un nouveau type de composant appelé TAboutBoxDlg, descendant de TComponent.
  • Enregistrez TAboutBoxDlg dans la catégorie Exemples de la palette d'outils.

L'unité que vous obtenez doit ressembler à ceci :

unit AboutDlg;
interface
uses
  SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Forms;
type
  TAboutBoxDlg = class(TComponent)
  end;
procedure Register;
implementation
procedure Register;
begin
  RegisterComponents('Samples', [TAboutBoxDlg]);
end;
end.
#include <vcl\vcl.h>
#pragma hdrstop
#include "AboutDlg.h"
//---------------------------------------------------------------------------
#pragma package(smart_init);
//---------------------------------------------------------------------------
static inline TAboutBoxDlg *ValidCtrCheck()
{
  return new TAboutBoxDlg(NULL);
}
//---------------------------------------------------------------------------
namespace AboutDlg {
{
  void __fastcall PACKAGE Register()
  {
    TComponentClass classes[1] = {__classid(TAboutBoxDlg)};
    RegisterComponents("Samples", classes, 0);
  }
}
#ifndef AboutDlgH
#define AboutDlgH
//---------------------------------------------------------------------------
#include <vcl\sysutils.hpp>
#include <vcl\controls.hpp>
#include <vcl\classes.hpp>
#include <vcl\forms.hpp>
//---------------------------------------------------------------------------
class PACKAGE TAboutBoxDlg : public TComponent
{
private:
protected:
public:
__published:
};
//---------------------------------------------------------------------------
#endif