7
votes

Ttabsheet Refonte à Delphes

Je veux un tpagecontrol et des tabsheets de Ttabecontrol, avec "PAR Tabsheet" ToolTip Inc.

Y a-t-il un moyen d'obtenir cet effet dans Delphi 2009?


0 commentaires

5 Réponses :


1
votes

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;


1 commentaires

Je pense que la question était de montrer des astuces spécifiques à la page sans changer la page active.



7
votes

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;


5 commentaires

Tabatpos n'existe pas, vous vouliez dire indexoftabat (x, y). Ceci donc 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.



6
votes

dans Composants RATIAD , Ceci peut être accompli en réglant le TRZPAGECONTROL.TABHINTS Propriété à True . Les bons composants peuvent vous faire économiser beaucoup de temps (donc de l'argent).

(juste un client heureux, BTW)

mise à jour (en réponse au commentaire de @rigel) de Raize.com FAQ ( RAZE Composants onglet):

Qu'est-il arrivé à souder des composants?

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.


4 commentaires

+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 :)



1
votes

sur le tpagecontrol.onmousemove recherche tabindex par pgctrl.indexoftabat (x, y) et assignez une tablature indice à l'indice Tpagecontrol

Regardez ici:

http://www.delphigroups.info/2/9/321680.html < / a>


0 commentaires

0
votes

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;


0 commentaires