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:
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:
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:
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:
1 2 3 4
|
begin
Form2.show;
end; |
Ca Plante ... avec le message d'erreur suivant :
http://img122.imageshack.us/img122/5...rdelphivs3.jpg
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.