Je cherche à crée dynamiquement des formulaires en fonction du nombre d'écrans présents sur ma machine, et lorsqu'ils sont crées les placer chacun dans l'écran qui leur correspond.
Je rencontre un problème lors de l'execution de la fonction 'Show' qui me redéplace tout mes formulaires sur mon écran n°1.
(Show me permet d'afficher le contenu et de redimenssioner mon formulaire à la bonne taille)
Voilà mon code pour la création dynamique des formulaires (contenu dans le formulaire principal) :
et la librairie que j'utilise ici : unit_gestion_ecran.pas
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 procedure TForm1.FormCreate(Sender: TObject); var loop : integer; begin Form1.BorderStyle:=bsnone; Displays := TDisplays.Create; // on crée l'objet qui va contenir la liste des moniteurs EnumDisplayMonitors(0,Nil,@EnumProc,Nil); setlength(t_form,Displays.Count); For loop := 0 to (Displays.count - 1) do begin t_form[loop] := TForm.Create(self); with t_form[loop] do begin Align := alClient; Caption := 'Suivi étuve n°' + inttostr(loop+1); end;//with t_frame[loop] := TFrame2.Create(t_form[loop]); t_form[loop].Show; SetWindowPos(t_form[loop].Handle, 0, Displays.Item[loop].Monitor.Left, Displays.Item[loop].Monitor.Top, 0, 0, SWP_NOSIZE or SWP_SHOWWINDOW); end;//for end;//procedure
Partager