Creation de composant

barbulille Messages postés 22 Date d'inscription dimanche 18 mai 2003 Statut Membre Dernière intervention 15 août 2003 - 2 août 2003 à 13:32
yvescollet Messages postés 55 Date d'inscription mardi 26 août 2003 Statut Membre Dernière intervention 22 janvier 2006 - 23 août 2004 à 20:29
quand je crée un composant, ca se passe bien, il s'installe mais quand je le pose sur une fiche, au lieu de me mettre l'icone( celle par defaut) il me met une zone de la taille de la fenetre du composant! c'est du à quoi?

je précise que c'est une boite de dialogue modale.

je voulais aussi savoir comment créer mon propre icone (sous kylix) car je n'ai pas dans le menu outils l'editeur d'images...

je précise aussi qu'il n'a pas un grand interet, c'est juste pour m'entrainer :-) c'est un simple editeur de texte mais qui s'ouvre comme une boite de dialog, en modal. enfin, si quelqu'un en veut... [mailto: le.barbu.li@wanadoo.fr]

merci d'avance.

9 réponses

cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 33
3 août 2003 à 00:09
Question bête : ton composant, il hérite de quelle classe ?
May Delphi be with you
0
barbulille Messages postés 22 Date d'inscription dimanche 18 mai 2003 Statut Membre Dernière intervention 15 août 2003
3 août 2003 à 00:28
TForm! c'est pas bon ? c'est pas aussi simple que ca alors... :sad)
0
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 33
3 août 2003 à 22:46
Ben non, c'est pas bon du tout si tu recherches les effets que tu indiques.
Ton composant, dans ce cas, doit hériter de TComponent. Considérons une déclaration minimaliste :
type
  TMyDialog = class(TComponent)
  public
    constructor Create(AOwner: TComponent);override;
    destructor Destroy;override;
    function Execute: boolean;
  end;


Ensuite, la partie implementation :
constructor TMyDialog.Create(AOwner: TComponent)
begin
  inherited create(AOwner);
  //initialisation des contrôles...
end;

destructor TMyDialog.Destroy;
begin
   //destruction des objets créés dans le constructeur...
   inherited Destroy;
end;

function TMyDialog.Execute: boolean;
var
  MyDialogForm : TMyDialogForm;
begin
  MyDialogForm := TMyDialogForm.Create(Application);
  try    Result :MyDialogForm.ShowModal mrOk;
  finally
     MyDialogForm.Free;
  end;
end;


Bien entendu, il faudra déclarer dans la clause uses l'unité dans laquelle est contenue la déclaration TMyDialogForm.
Comme il est écrit, la déclaration de cette classe est vraiment minimaliste et ne comprend pas le passage d'arguments destinés à initialiser des contrôles de MyDialogForm. Mais ce n'était pas le but.
May Delphi be with you
0
barbulille Messages postés 22 Date d'inscription dimanche 18 mai 2003 Statut Membre Dernière intervention 15 août 2003
3 août 2003 à 23:03
ok, merci bien :big)
par contre peux-tu me dire comment faire pour créer mon propre icone ?
car je ne trouve pas l'editeur dans l'onglet outils (sous kylix 3)...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 33
4 août 2003 à 00:14
Tu n'as pas de programme nomme ImageEdit sur ton disque ?
Sinon, les icones des composants sont des icones standards renommées avec l'extension .dcr, il me semble.
Donc, si tu as un éditeur graphique capable de produire des icones, pas de problème.
May Delphi be with you
0
barbulille Messages postés 22 Date d'inscription dimanche 18 mai 2003 Statut Membre Dernière intervention 15 août 2003
4 août 2003 à 01:03
bah non (?!)
portant j'ai tout installé...

sinon, j'ai deja essayé une icone renommée .dcr mais ca fonctionne pô
j'ai aussi lu dans la oc: il faut une icone en 16 couleurs de 24x24 donc j'en ai créé une avec kiconedit mais rien a faire (?!)

le_barbu is on linusc...
linusc is everywhere.
0
Emandhal Messages postés 194 Date d'inscription dimanche 2 mars 2003 Statut Membre Dernière intervention 10 octobre 2006 3
5 août 2003 à 11:53
va voir là
http://www.phidels.com/php/index.php3?page=composan/icone.htm

Tout problème a sa solution... Mais en général, c'est jamais la bonne...
0
barbulille Messages postés 22 Date d'inscription dimanche 18 mai 2003 Statut Membre Dernière intervention 15 août 2003
5 août 2003 à 12:34
merci mais comme je l'ai dit plus haut je n'ai pas l'editeur d'image dans le menu outils (sous kylix)... j'ai bien essayé avec un editeur d'icones mais marche pô...

sinon j'ai un autre probleme:
j'ai créé mon composant qui utilise une fiche (placée dans le meme répertoire que le composant et j'ai ajouté le repertoire dans le path) mais quand je le place sur une fiche et que je l'exécute, il ne trouve pas la classe. ex:
j'ai une fiche: TEditeur
mon composant: TEditeurModal qui utilise TEditeur
quand je place TEditeurModal sur une fiche & que j'execute le prog. il me dit un truc du genre "impossible de trouver la classe TEditeur".

le_barbu is on linusc...
linusc is everywhere.
0
yvescollet Messages postés 55 Date d'inscription mardi 26 août 2003 Statut Membre Dernière intervention 22 janvier 2006
23 août 2004 à 20:29
bonjour,

j'ai une question qui ressemble un peu à celle qui a été posée ici, mais pas tout a fait pareil. je voudrais créer un composant TDataSource mais qu'il ne soit pas visible.
j'ai un TDataSource sur ma Form1 et je mets une requête SQL dans un TClientSet.DataSource, et j'aimerais que ce composant "invisible" fasse le pont entre ces deux étant donné que j'ai 3 unités.

merci d'avance
0
Rejoignez-nous