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

Composants FMX Delphi Discussion :

Affichage différent selon la propriété Direction du lien


Sujet :

Composants FMX Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 607
    Billets dans le blog
    65
    Par défaut Affichage différent selon la propriété Direction du lien
    Bonjour,

    je peaufine un composant qui permet la liaison entre un nom de fichier (image) et l'affichage de celle-ci
    Jusqu'à présent mes tests semblaient corrects.
    Nom : android_1.png
Affichages : 210
Taille : 40,1 Ko
    Un nouveau test plus poussé me surprend
    Si ma liaison est de type linkBidirectionnal alors mon image est "brillante" (par défaut n'ayant pas trouver d'astuce pour l'empêcher)
    Nom : TestFDMemTableBi.PNG
Affichages : 176
Taille : 154,8 Ko
    Si je fait une liaison de direction LinkDataToControl, plus logique selon moi, elle est comme désactivée (grisée)
    Nom : TestFDMemTable.PNG
Affichages : 193
Taille : 202,3 Ko

    Gênant que cet auto-portrait ne s'affiche pas correctement dans les deux cas !
    Quelle propriété (ou autre chose) aurais-je manqué ?

    [Edit] cela ne le fait pas pour le même composant mais VCL

  2. #2
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 607
    Billets dans le blog
    65
    Par défaut
    Bonjour,
    Il semblerait qu'il n'y ait pas beaucoup de donneurs de piste Je continue alors mon "monologue"
    Pour trouver ce qui pouvais clocher j'ai rapidement "sérialiser" mon composant pour obtenir dans un mémo toutes les informations de mon image

    [Mode Apparté]
    Je ne suis pas sûr que le terme sérialiser soit le bon terme à employer,
    C'est en tout cas celui qu'utilisait ALWEBER lors d'une de ces démonstrations, j'ai d'ailleurs quasiment utilisé son code donc un grand merci à lui
    [/ Mode Apparté]

    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
     
    procedure TForm22.Button1Click(Sender: TObject);
    var MS1, MS2 : TMemoryStream;
        Sl1 : TStringList;
    begin
    MS1:=TmemoryStream.Create;
    MS2:=TmemoryStream.Create;
    Sl1:=TStringList.Create;
    Try
    MS1.WriteComponent(FileImage1);
    MS1.Seek(0,soFromBeginning);
    Objectbinarytotext(MS1,MS2);
    MS2.Seek(0,soFromBeginning);
    Sl1.LoadFromStream(MS2);
    Memo1.Lines.Text:=Sl1.Text;
    finally
    MS1.Free;
    MS2.Free;
    Sl1.Free;
    end;
    end;
    Deux essais plus tard l'un en mode bidirectionnel l'autre en mode DataToControl : Eurêka. Tout bête, la propriété Enabled se mettait à False
    D'où venait ce changement d'état ? Il m'a fallu retourner dans la partie code de mon composant pour y retrouver le code "coupable" purement spécifique au Livebindings
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    procedure TFileImage.ObserverToggle(const AObserver: IObserver;
      const Value: Boolean);
    var
      LEditLinkObserver: IEditLinkObserver;
    begin
      if Value then
      begin
        if Supports(AObserver, IEditLinkObserver, LEditLinkObserver) then
          Enabled := not LEditLinkObserver.IsReadOnly;   //<< le coupable 
      end else
        Enabled := True;
      end;
    Solution simple virer la plus grande partie du code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    procedure TFileImage.ObserverToggle(const AObserver: IObserver;
      const Value: Boolean);
    begin
      Enabled:=Value;
    end;
    Bien, cela résout la question posée au départ.

    Du coup, la question bonus car, vous commencez à me connaitre, je ne lâche pas un os comme ça !
    Comment faire pour que, avec le concepteur visuel, le lien proposé soit par défaut de type DataToControl et même, ce serait la cerise, que seul ce type de direction soit proposé ?

    Je laisse ouvert le post au cas où une idée vous viendrait

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

Discussions similaires

  1. Affichage différent selon le serveur web !
    Par Aspic dans le forum Général Conception Web
    Réponses: 20
    Dernier message: 10/09/2008, 19h58
  2. Affichage différent selon URL de provenance
    Par BnA dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 07/08/2007, 14h30
  3. affichage différent selon résolution
    Par altadeos dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 15/12/2006, 11h58
  4. [Dates] affichage différent selon le mois en cours
    Par itri2005 dans le forum Langage
    Réponses: 3
    Dernier message: 07/04/2006, 17h05
  5. Affichage différent selon texte dans une case
    Par pingoo78 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 22/11/2005, 16h32

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