Je veux un tpagecontrol et des tabsheets de Ttabecontrol, avec "PAR Tabsheet" ToolTip Inc. p>
Y a-t-il un moyen d'obtenir cet effet dans Delphi 2009? P>
5 Réponses :
1 - remplissez la propriété .hint et définissez la propriété .Showhint sur true pour le pagecontrol (en supposant que chaque tabsheet a des parentshowhint défini sur true; sinon vous devrez définir chaque page individuellement).
2 - Attribuez cet événement au gestionnaire d'événements ONCHANGE de PAGECONTROL: P>
procedure TForm1.PageControl1Change(Sender: TObject); begin PageControl1.Hint := PageControl1.ActivePage.Hint; end;
Je pense que la question était de montrer des astuces spécifiques à la page sans changer la page active.
Crochez simplement l'événement de déplacement de la souris de la page de la page et utilisez la propriété Tabatpos pour déterminer quels onglet la souris survole. Attribuez ensuite que l'assipation de l'onglet à la propriété Initiation du contrôle de la page.
procedure TForm.PageMouseLeave(Sender: TObject); begin PageControl.Hint := ''; PageControl.ShowHint := false; end;
Tabatpos n'existe pas, vous vouliez dire indexoftabat (x, y). Ceci donc i> travaille presque bien. Sauf que lorsque vous passez d'une seule onglet à une autre, l'indice ne met pas à jour ou ne se présente pas.
Excuses; J'utilisais Trztabsheet (Composants RATIAD) qui a une propriété Tabatpos et fonctionne bien. Vous pouvez simplement afficher par programme l'indice sur un changement de Tabindex à l'aide de la classe ThintWindow. Définissez la propriété Afficher la page de la page Contrôle de la page sur False et créez le vôtre.
Indexoftabat existe à Delphi Tokyo!
@ Roddy- IndexoBat existe à Delphi Tokyo!
@Rigel - Ceci peut être lié à mon commentaire dans mon Réponse - que RATIAD Composants a été acquis par Embarcadero pour Delphi à partir de 2015.
dans Composants RATIAD , Ceci peut être accompli en réglant le (juste un client heureux, BTW) P>
mise à jour (en réponse au commentaire de @rigel) de Raize.com FAQ ( RAZE Composants em> onglet): P>
Qu'est-il arrivé à souder des composants? P>
Retour en 2015 Embarcadero a acquis des composants de l'élevage de nous et
Rebrandé le produit en tant que contrôles Konopka Signature VCL (KSVC).
Initialement, ils ont vendu le produit séparément, mais pour plusieurs
Communiqués de RAD Studio, les composants ont été disponibles gratuitement
via le gestionnaire de packages Getit. Il suffit d'ouvrir le paquet Getit
Gestionnaire du menu Delphi ou C ++ Builder Outils et recherchez
"Konopka" pour localiser l'installateur. Les noms de composants, unités et
Les colis sont les mêmes qu'ils étaient dans les composants de l'élevage, juste le
Le nom du produit est différent. P>
blockQuote> TRZPAGECONTROL.TABHINTS CODE> Propriété à
True code>. Les bons composants peuvent vous faire économiser beaucoup de temps (donc de l'argent). P>
+1 - L'investissement dans les composants de l'élevage en vaut la peine. Le support est la classe mondiale et les options de style visuel peuvent réellement définir votre application en dehors des autres à l'aide de contrôles standard.
D'accord. Nous utilisons la raize presque exclusivement pour tous les travaux de conception de l'interface utilisateur. Grands composants et bon soutien.
On dirait qu'ils ont abandonné la bibliothèque de composants. N'est-ce pas sur leur site Web: Raize.com
Cela aurait été bien si la page d'origine aurait été laissée en place, avec une annonce au lieu d'être supprimée :)
sur le tpagecontrol.onmousemove recherche tabindex par pgctrl.indexoftabat (x, y) et assignez une tablature indice à l'indice Tpagecontrol P>
Regardez ici: P>
Travailler à l'origine sur un projet C ++ Builder 6 (!) (Alors s'il vous plaît, veuillez pardonner n'importe quel typo dans cette transcription), j'ai commencé avec le de Gérard [1] sup> et réduit le code autant que possible. Pour mieux contrôler les appels de application.cancelhint code>, j'ai introduit le membre
flasthinttabindex code>, il doit être initialisé avec -1.
procedure TForm1.PageControl1MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
var
TabIndex: Integer;
begin
TabIndex := PageControl1.IndexOfTabAt(X, Y);
if FLastHintTabIndex <> TabIndex then
Application.CancelHint;
if TabIndex <> -1 then
PageControl1.Hint = PageControl1.Pages[TabIndex].Hint;
FLastHintTabIndex := TabIndex;
end;