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 :

Problème suite harmonisation résolution écran


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 62
    Par défaut Problème suite harmonisation résolution écran
    Dans le dernier topic que j'ai créé, je demandais comment adapter une application développée sur du 1280X1024 à des clients 800X600

    J'ai trouvé ma réponse seulement maintenant que je mets en application la solution je me retrouve confronté à certains problèmes :


    je déclare ma procédure RescaleForm dans implementation de la façon suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    // Définition de la procédure pour adapter la fenêtre à l'écran
    procedure RescaleForm(F: TScrollingWinControl);
    var
      M, D : Integer;
      begin
       M := Screen.Width; // multiplicateur = définition actuelle de l'écran
       D := 1280; // diviseur = définition de l'écran à la conception
       F.ScaleBy(M, D);
       F.Realign;
      end;
    En tout j'ai 7 Forms, dans la première (le menu principal) j'appelle la procédure dans le FormActivate de la façon suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    // Appel de la procédure pour adapter la fenêtre à l'écran
    procedure TForm1.FormActivate(Sender: TObject);
    var
      M, D : Integer;
    begin
       ShowWindow(Handle, SW_MAXIMIZE); // maximise ma fenêtre
       RescaleForm(Form1);
    end;
    Puis dans les 6 autres Forms j'appelle la procédure dans le FormShow de la façon suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    // Appel de la procédure pour adapter la fenêtre à l'écran
    procedure TForm2.FormShow(Sender: TObject);
    var
      M, D : Integer;
    begin
       ShowWindow(Handle, SW_MAXIMIZE); // maximise ma fenêtre
       RescaleForm(Form2);
       Form2.Close;
    end;
    Lorsque je lance mon appli elle démarre convenablement, seulement, Lorsque j'appuie sur le bouton de la Form1 qui me conduit à la Form2 avec le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    begin
    Form2.show;
    end;
    Ca Plante ... avec le message d'erreur suivant :




    Quelqu'un peut il me dire où est le problème ??????
    Le but étant d'afficher la Form en lui appliquant la procédure RescaleForm.

  2. #2
    Membre Expert 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

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 62
    Par défaut
    Le lien que tu m'as donné parle des "anchors" et "aligns" ainsi que de "changescale". Mais donne pas de réponse à mon problème :

    Pourquoi j'ai cette erreur au dessus ?? Pourquoi le Visible ne peut pas être activé quand je fais un .show ?? Comment palier à ce problème ?

  4. #4
    Membre Expert

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 296
    Par défaut
    On ne peut pas changer la propriété Visible dans l'événement OnShow, ce qui est logique.

    il faut la changer avant.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 62
    Par défaut
    oh un Lyonnais ! comme moi ...

    Donc tu veux dire que si je change le visible avant de faire le onshow, ca va marcher ?

  6. #6
    Membre Expert

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 296
    Par défaut
    Dans ton OnShow tu fais un Close (donc un Visible := False). Donc il y a un problème.

    Je déclarerai plutot une methode:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    procedure TForm2.ShowPersonal;
    begin
    ShowWindow(Handle, SW_MAXIMIZE); // maximise ma fenêtre
    RescaleForm(Self);
    end;
    et au lieu de
    mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    form2.ShowPersonnal
    Pour le form2.Close, je ne vois pas l'intérêt

Discussions similaires

  1. Problème d'affichage (résolution écran)
    Par bernayer dans le forum Langage
    Réponses: 15
    Dernier message: 17/10/2009, 17h08
  2. problème résolution écran
    Par damii1 dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 16/06/2009, 12h14
  3. Réponses: 10
    Dernier message: 20/11/2008, 16h29
  4. [Debutant]Problème de résolution écran
    Par obito dans le forum Ubuntu
    Réponses: 5
    Dernier message: 26/08/2008, 17h58

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