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 :
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
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;
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 // 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;
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
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;
Ca Plante ... avec le message d'erreur suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 begin Form2.show; end;
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.
Partager