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 :

changement de résolution->changement taille des composants


Sujet :

Delphi

  1. #1
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    316
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 316
    Points : 158
    Points
    158
    Par défaut changement de résolution->changement taille des composants
    bonjour, je sais que ce sujet a déjà été évoqué a maintes reprises mais je n'arrive pas à faire ce que je veux , je développe sous bds2006, j'ai developpé en 1024 (je sais c'est pas le top mais je ne le savais pas encore)lorsque j'augmente ma résolution les composants tels que les dbgrid et panels restent figés à la taille du développement
    j'avais pris le code d'anapurna
    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
    procedure RealignForm(F: TScrollingWinControl);
    var
      M, D : Integer;
      i, j : Integer;
    begin
      M := Screen.Width; // multiplicateur = définition actuelle de l'écran
      D := 800;              // diviseu  r       = définition de l'écran à la conception
      F.ScaleBy(M, D);
      for i:=0 to Pred(F.ComponentCount) do 
      begin
         if (F.Components[i] is TStringGrid) then 
         begin
    	with (F.Components[i] as TStringGrid) do 
            begin
    	   for j:=0 to ColCount-1 do  
                 ColWidths[j] := MulDiv(ColWidths[j] , M, D);
    	   for j:=0 to RowCount-1 do  
                  RowHeights[j]:= MulDiv(RowHeights[j], M, D);
    	end;
         end 
         else
        if (F.Components[i] is TDbGrid) then	
        begin
           with (F.Components[i] as TDbGrid) do
             for j:=0 to Columns.Count-1 do 
             begin
    	    Columns.Items[j].Width := MulDiv(Columns.Items[j].Width, M, D);
                Columns.Items[j].Title.Font := Columns.Items[j].Font;
    	 end;
         end;
         ...
      end;
      F.Realign;
    end;
    mais ca n'a lair de marcher uniquement lorsque je diminue la résolution
    en fait j'ai un truc un peu bizarre
    lorsque je tourne en 1400 les éléments sont agrandis avec ce code;j'ai mis tous les anchors a true.
    si vous avez une idée elle est la bienvenue merci d'avance

  2. #2
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    voir bien le code:
    D := 800; // diviseu r = définition de l'écran à la conception
    en plus voir ici
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  3. #3
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    316
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 316
    Points : 158
    Points
    158
    Par défaut
    oui j'avais modifié ca dans mon code pcc j'avais modifié la résolution chez moi donc j'avais bien mis 1024 au lieu de 800
    pour l'autre sujet du forum je l'avais vu aussi mais j'avais toujours le même problème avec les anchors et les scaled ...
    je sais pas si c'est différent pcq c'est bds2006 mais scaledby je n'ai pas ni alignement(enfin si mais juste pour le centrer ou mettre dessus dessous)

  4. #4
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    oui c'est vraie, mais fairme ton appli quand tu change la résulution et réouvre là, si tout est ok, alors là tu comprend que tu doit rechangé ce diviseur à la nouvelle résolution, pas le fixé au conception
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    624
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 624
    Points : 754
    Points
    754
    Par défaut
    Bonjour Mihalis

    Regardes dans l'aide Delphi la procedure de TCustomForm
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ChangeScale(M, D: Integer)
    -> Edam
    1 faute par ligne ok mais une faute par mot, prends un dictionnaire ou un traducteur arabe-francais.

  6. #6
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    Citation Envoyé par Fabrice ROUXEL 1
    -> Edam
    1 faute par ligne ok mais une faute par mot, prends un dictionnaire ou un traducteur arabe-francais.
    , j'était sûr que tu vas le dire
    pedro, c'est lui qui me cherche là
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    624
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 624
    Points : 754
    Points
    754
    Par défaut
    Mihalis, une autre approche est de mettre pour éviter la déformation dûe au changement de PPI.


    @+

  8. #8
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    316
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 316
    Points : 158
    Points
    158
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    var m,d:integer;
    begin
    M := Screen.Width; // multiplicateur = définition actuelle de l'écran
    D := 1024;//définition de la résolution à la conception
    changescale(m,d);
    ca marche nickel j'ai mis le code ici au cas ou qq'un en ait besoin
    peut etre a mettre dans la faq ?

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 06/07/2010, 09h16
  2. Ajustement de la Taille des composants
    Par souminet dans le forum Débuter
    Réponses: 2
    Dernier message: 26/03/2008, 11h28
  3. [Swing] Problème de placement et de taille des composants
    Par CrazySeb dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 22/04/2006, 14h56
  4. [Swing] Fixer la taille des composants
    Par Imladir dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 05/02/2006, 07h53
  5. [netbeans][Interfaces] réglage taille des composants
    Par tsinapah dans le forum NetBeans
    Réponses: 3
    Dernier message: 22/04/2005, 18h11

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