IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Delphi Discussion :

Syntaxe que je comprends mal


Sujet :

Langage Delphi

  1. #1
    Membre régulier

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    536
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 536
    Points : 121
    Points
    121
    Par défaut Syntaxe que je comprends mal
    Bonsoir à tous

    J'ai posté ici une question relative au gestionnaire de skins AlphaControls (SkinManager) Son tutoriel est ici : http://www.alphaskins.com/showdoc.php?l=en&n=10 . Mais il est succinct.
    Je teste leur système de skins. On peut les exploiter pour des contrôles non développés par Alphacontrols (Jedi, contrôles standards, etc).

    Suite à mon post (on m'a pardonné mon Anglais style Google ) , j'ai reçu cette réponse :
    «Hello,

    in order to activate a skin, you have to use the SkinName property:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sSkinManager1.SkinName := 'Android OS (internal)';
    ThirdParty is used to skin, using the current skin, a component that is not included in the AC package;
    you can select these components using the list (as in your image) or add the components by the code, like this:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sSkinManager1.ThirdLists[Ord(tpVirtualTree)].Append('TVirtualStringTree');
    »

    A quoi peut ressembler un tpVirtualTree ? Et un TVirtualStringTree ?

    Le dernier serait une liste de chaînes virtuelle ? Si oui : on implémente ça comment sous D7 ? Je n'ai jamais utilisé ça.

    Est-ce q ça pourrait ressembler à un pointeur sur une tableau de TStringLIst ?


    J'ai un début de réponse à cette adresse :
    http://docwiki.embarcadero.com/RADSt...2BBuilder_2010 ... mais pour Delphi 2010.

    Même en fouillant leurs sources (dans les démos), je ne tombe sur aucun fichier .PAS exploitant ce SkinManager : uniquement dans les fichiers .DFM.

    Heu... J'y vois pas très clair, là. Un avis éclairé me sera bien utile. Merci :hello:

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 030
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 030
    Points : 40 928
    Points
    40 928
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    VirtualstringTree c'est un composant de virtualtreeview
    tpVirtualtree par contre il faudrait fouiller dans les sources ou doc de AlphaSkin pour moi cela ressemble a un type contenu dans une énumération ?

    comme par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     Tcouleur=(cBleu,cBlanc,cRouge) ; 
     i : integer;
    ...
     i:=ord(cBlanc)  // i sera égal à 1
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    C'est un exemple qu'il donne, il a pris un TVirtual treelist comme il aurait pu prendre un composant Jedi.

    Apparemment pour que le skin fonctionne sur les composants tiers comme les jedi et autre, il faut les référencer dans le gestionnaire de skin.
    En ajoutant au tableau ThirdLists le nom de la classe du composant à gérer.
    Et comme le dit SergioMaster le tpVirtualtree doit être défini dans Alphaskins. Et doit être documenté ou un CTRL + clic dessus devrait vous montrer sa définition et donc l'énumération de toutes les classes tiers prises en compte.

  4. #4
    Membre régulier

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    536
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 536
    Points : 121
    Points
    121
    Par défaut [RESOLU]
    Bonjour à vous et merci

    En fait, c'est infiniment plus simple que je l'imaginais. On peut ne pas toucher du tout à la méthode sSkinManager1.ThirdLists . Pas à l'exécution.

    Pour changer de skin, ceci suffit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    // Skin_A_Tester : string : le nom d'un skin
    Form1.sSkinManager1.SkinName := Skin_A_Tester;
    Form1.sSkinManager1.RepaintForms(True);  // C'est là que ça se passe !
    Pour les inclure dans le logiciel, à la conception, c'est bien ce que je décrivais dans le post chez eux. A l'exécution, il suffit de lister ceux que l'on a préalablement inclus. Le fichier .DFM prend alors des proportions considérables, et l'EXE aussi. Je récris la procédure pour les tester sans les inclure dans le code, qui devient alors très lourd, et ralentit fortement l'exécution, même sur ma bécane. Dans ce cas, il faut les livrer avec les logiciel.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    Procedure Remplir_ListBox;
    begin
          Form2.ListBox1.Items.Add('Afterburner');
          Form2.ListBox1.Items.Add('Android OS');
          Form2.ListBox1.Items.Add('Beijing');
          Form2.ListBox1.Items.Add('Black Box');
          Form2.ListBox1.Items.Add('Cappuccino');
          Form2.ListBox1.Items.Add('Cold');
          Form2.ListBox1.Items.Add('DarkGlass');
          Form2.ListBox1.Items.Add('FalloutStyle');
          Form2.ListBox1.Items.Add('KaraKum');
          Form2.ListBox1.Items.Add('Nautilus');
          Form2.ListBox1.Items.Add('Office2007 Black');
          Form2.ListBox1.Items.Add('Rhombus');
          Form2.ListBox1.Items.Add('Ubuntu');
          Form2.ListBox1.Items.Add('WOT');
    end;
    Mieux vaut les lister et les appliquer à l'exécution. C'est beaucoup plus rapide et moins gourmand : l'EXE reste de taille acceptable.

    Quant à la question initiale sur la syntaxe, là... Les Jedi ou les TMS sont beaucoup mieux documentés !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Python 3.X] Une syntaxe que je ne comprends pas
    Par souki22 dans le forum Général Python
    Réponses: 4
    Dernier message: 14/11/2014, 00h12
  2. Syntaxe que je comprend pas
    Par Jcpan dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 09/09/2010, 09h45
  3. [PHP 4] [POO] Syntaxe que je ne comprend pas
    Par Jcpan dans le forum Langage
    Réponses: 3
    Dernier message: 13/03/2009, 16h13
  4. [AIX 5.3] Macro que je comprends mal
    Par Bahan dans le forum C
    Réponses: 3
    Dernier message: 24/01/2007, 15h32
  5. Réponses: 13
    Dernier message: 27/06/2005, 14h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo