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

 Delphi Discussion :

Comment utiliser cette excellente fonction ?


Sujet :

Delphi

  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 427
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 427
    Points : 1 326
    Points
    1 326
    Par défaut Comment utiliser cette excellente fonction ?
    Bonjour à toutes et à tous,

    Je n'arrive pas à utiliser cette fonction qui permet d'afficher le Symbol ♥:

    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
    19
     
    Function AfficherCode(S: String; fenêtre: TRichEdit): integer;
    var StylePrec: TtextAttributes; 
    begin
    with fenêtre do
    BEGIN
      Styleprec:= DefAttributes;
      RESULT:=SelStart;
      SelAttributes.Name:= 'Symbol';
      SelAttributes.Charset:=SYMBOL_CHARSET;
      if (S = 'O') or (s='N') then
        SelAttributes.Color:= clred
      else
        SelAttributes.Color:= clBlack;
      SelText:= S;
      SelStart:= RESULT+1;
      SelAttributes:= StylePrec;
    END;
    end;
    Merci d'avance,

    P. S. Merci à Gilbert Geyer pour cette fonction remaniée.

    @+,

    cincap

  2. #2
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 496
    Points : 2 762
    Points
    2 762
    Billets dans le blog
    10
    Par défaut
    Soit surcharger la fonction pour dessiner directement dans le canvas, soit passer en richEdit

  3. #3
    Membre confirmé Avatar de blonde
    Femme Profil pro
    Développeur Delphi
    Inscrit en
    Septembre 2003
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Delphi

    Informations forums :
    Inscription : Septembre 2003
    Messages : 278
    Points : 477
    Points
    477
    Par défaut
    Je pense que la fonction fonctionne.

    j'ai utilisé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AfficherCode('azertyuiopqsdfghjklmwxcvbn&é(-è_çààààà)=^$ù*!:;,', RichEdit1);

    Nom : VeSllX7opX.png
Affichages : 213
Taille : 6,9 Ko

    Il faut que tu trouves le bon code ascii qui sera représenté par un coeur dans la font "symbol"
    Il doit y avoir des tables de correspondance sur le net.

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 427
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 427
    Points : 1 326
    Points
    1 326
    Par défaut
    @ ALWEBER, merci de ta suggestion, j'ai essayé avec un TrichEdit puisque cette fonction lui est dédiée.

    Je ne vois pas comment faire pour charger un fichier texte avec le symbol du cœur d'où l'existence de mon topic.

    Je continue à aussi chercher.

    @ blonde, merci de ta suggestion, c'est bien cela que je cherchais à moi de voir le code pour ce symbol.

    @+,

    cincap

  5. #5
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 345
    Points : 3 123
    Points
    3 123
    Par défaut
    Bonjour Cincap,

    ta fonction est correcte à condition de remplacer fenêtre par fenetre. Voici l'affichage du symbole coeur :

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    unit Unit1;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ComCtrls;
     
    type
      TForm1 = class(TForm)
        Fenetre: TRichEdit;
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
        Function AfficherCode(S: String; fenetre: TRichEdit): integer;
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.dfm}
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    //
      AfficherCode('©', Fenetre) ;
     
    end;
     
    Function TForm1.AfficherCode(S: String; Fenetre: TRichEdit): Integer ;
    Var
      StylePrec: TtextAttributes;
    Begin
      With Fenetre do
        Begin
          Styleprec:= DefAttributes ;
          Result:=SelStart ;
          SelAttributes.Name:= 'Symbol' ;
          SelAttributes.Charset:=SYMBOL_CHARSET ;
          If (S = 'O') or (s='N') Then
            SelAttributes.Color:= clRed
          Else
            SelAttributes.Color:= clBlack ;
          SelText:= S ;
          SelStart:= Result + 1 ;
          SelAttributes:= StylePrec ;
        End;
    End;
    End.
    A+
    Charly

    PS : je n'ai pas compris à quoi sert l'affichage en rouge de O et N, mais je l'ai laissé.

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 427
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 427
    Points : 1 326
    Points
    1 326
    Par défaut
    @ Charly910, Hello, merci de ta solution,

    ta fonction est correcte à condition de remplacer fenêtre par fenetre.
    Oui je l'avais remarqué lors de la compilation, j'avais donc modifié.

    Dans mon test, avec la commande Alt + 3 = "Cœur" et dans le TRichEdit, c'est "?" qui s'affiche.

    Je vais voir avec ta solution.

    Je te tiens au courant.

    P. S.

    J'ai une erreur sur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    AfficherCode('©', Fenetre) ; //Identificateur non déclaré !
    @+,

    cincap

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 427
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 427
    Points : 1 326
    Points
    1 326
    Par défaut
    @ Charly910,

    Voila tout est bon j'ai remis "RichEdit1" à la place de "fenetre".

    Je ferme ce topic et je vais voir son utilisation avec mon application.

    Merci à tous,

    @+,

    cincap

  8. #8
    Membre éprouvé
    Avatar de Cirec
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    467
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 467
    Points : 1 072
    Points
    1 072
    Par défaut
    Bonsoir,

    comme j'ai une idée assez précise de ce que tu désires faire
    je pense que ça ne fonctionnera pas

    le problème ici est d'afficher une chaine Unicode en D6 (et non un caractère de la fonte Symbole)
    Ex.:
    ♥ Alléluia Alain Morisod & Sweet People ♥

    les coeurs ne sont pas des Chr(3) ou #3 (caractères Ansi) mais des #9829 ou #$2665 (caractères Unicode)
    et pour les afficher il faut utiliser le WideString.

    Pour ce faire, il suffit de placer un TPaintBox et un TButton
    et dans le OnClick du bouton ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    var
     s: WideString;
     aRect: TRect;
    begin
      S := #$2665+WideString(' Alléluia Alain Morisod & Sweet People ')+#$2665;
      aRect := PaintBox1.ClientRect;
      DrawTextW(PaintBox1.Canvas.Handle, PWideChar(S), -1, aRect, DT_LEFT or DT_CENTER or DT_VCENTER);
    end;
    Mais dans ton application ça ne fonctionnera pas
    parce que le simple fait de vouloir récupérer le nom de fichier par une redirection
    conditionne la sortie en AnsiString ce qui provoque la perte des caractères Unicode !!!

    Même en démarrant une console (Cmd) en mode Unicode et même dans une application Unicode (D10.3)
    ça ne fonctionne pas !!! (enfin moi j'ai pas réussit)
    le seul moyen que j'ai trouvé c'est de passer par une sortie en JSON (youtube-dl -j url>fichier.json)
    mais ce mode va ralentir l'exécution puisqu'il ne télécharge rien d'autre que les infos
    et une fois récupéré le nom du fichier qui t'intéresse il faut relancer mais cette fois pour télécharger le fichier vidéo.


    Cordialement,

    @+

  9. #9
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 427
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 427
    Points : 1 326
    Points
    1 326
    Par défaut
    Bonjour à toutes et à tous,

    @ Cirec, Hello grand Maitre, eh oui c'est tout à fait ce raisonnement mais comme toutes les remarques sont bien prises en compte cela me permet d'avancer malgré ce confinement.

    le seul moyen que j'ai trouvé c'est de passer par une sortie en JSON (youtube-dl -j url>fichier.json)
    mais ce mode va ralentir l'exécution puisqu'il ne télécharge rien d'autre que les infos
    Je n'avais aucun doute pour avoir trouvé une solution te connaissant.

    Pour ma part, grâce à ta modification du fichier .bat c'est plus que correct et je ne cherche plus.

    Encore merci à tous.

    @+,

    cincap

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

Discussions similaires

  1. [Débutant] [xlswrite1] Comment utiliser cette fonction sous MATLAB 7.12.0 ?
    Par KartSeven dans le forum MATLAB
    Réponses: 4
    Dernier message: 24/04/2012, 21h38
  2. [xlswrite1] Comment utiliser cette fonction
    Par Muriellle dans le forum MATLAB
    Réponses: 14
    Dernier message: 19/09/2008, 09h10
  3. [hamming] Comment utiliser cette fonction avec Matlab 6.5
    Par vivematlab dans le forum Signal
    Réponses: 2
    Dernier message: 02/05/2007, 16h52
  4. comment utiliser cette fonction?
    Par jojo57 dans le forum Access
    Réponses: 4
    Dernier message: 01/06/2006, 08h38
  5. [débutant][JSci][Matrix]comment utiliser cette classe
    Par Clark dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 10/05/2005, 10h40

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