J'ai un contrôle FireMonkey personnalisé (TComboBox) qui a également un TComponentEditor personnalisé. Quand je substituez la méthode ExecuteVerb et tenter d'ajouter un composant enfant (sur mesure TListBoxControl) la coutume TComboBox qu'il ne soit pas montré au moment de la conceptionComposant Firemonkey personnalisé qui implémente TComponentEditor. Ajouter un contrôle enfant à parent au moment du design
Par défaut TComboBox Comportement:
sur mesure TComboBox
Mon code ExecuteVerb:
var
PpComboItem : TPpListBoxItem;
PpCombo: TPpComboBox;
begin
if (Component is TPpComboBox) then
PpCombo := (Component as TPpComboBox) else
exit;
PpComboItem := TPpListBoxItem.Create(PpCombo);
PpComboItem.Parent := PpCombo;
end
J'ai essayé de retracer la façon dont le TComboBox essaie de le faire, mais cant semblent trouver l'unité avec la mise en œuvre correcte
** Modifier **
Bon - j'ai réussi d'avoir un regard sur la façon dont les gars de TMS y sont parvenus avec leurs composants (achetés et payés) et je l'ai réussi à extrapoler les éléments suivants
var
PpComboItem : TPpListBoxItem;
PpCombo: TPpComboBox;
begin
inherited;
if (Component is TPpComboBox) then
PpCombo := (Component as TPpComboBox) else
exit;
PpComboItem := (TPpListBoxItem(Designer.CreateComponent(TPpListBoxItem, PpCombo, 10, 10, 100, 100)));
PpComboItem.Parent := PpCombo;
Designer.Modified;
end;
Mais quand je clique sur le AddTPpListBoxItem dans le ComponentEditor-je obtenir le followin erreur:
Class TPpListBoxItem is not applicable to this module
Je ne sais pas s'il pourrait être plus facile d'étendre l'éditeur d'élément TCustomListbox pour avoir un nouveau TListBoxItem dans la liste déroulante avec tous les autres types de TListBoxItem? –