Bonjour à tous.
Je suis en train de faire des tests de performance et voici un cas très simple :
une form avec un panel (P_Fond).
Derriere un bouton je vais créer 1000 frames et les affecter à une TObjectList.
Ensuite avec un autre bouton je vais les rendre visible.
Et là, deux méthode : avec le panel toujours visible : ce qui me donne une erreur de type : EOsError code 14 mémoire insuffisante...
Soit en cachant le panel et en affichant qu'a la fin :
Erreur 1400 Handle de fenêtre non valide.
Avez vous une idée ? car là même après mes recherches de ce matin sur le forum, rien ne fonctionne ;(
mon code avec la version panel invisible:
et l'erreur
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 //bouton de création procedure TForm1.Button1Click(Sender: TObject); var Frame : TFrame2; i : integer; begin P_Fond.Visible := false; OL_Conteneur := TObjectList.create; i := 0; repeat Frame := TFrame2.create(P_Fond); Frame.Parent := P_Fond; Frame.Align := AlNone; Frame.Visible := false; Frame.Name := 'F' + IntToStr(i); OL_Conteneur.Add(Frame); Label1.Caption := IntToStr(i) + ' frames créées'; Application.processMessages; i := i + 1 until i = 999; P_Fond.Visible := true; end; procedure TForm1.Button2Click(Sender: TObject); begin FreeAndNil(OL_Conteneur); end; //affichage procedure TForm1.Button3Click(Sender: TObject); var i : integer; begin try i := 0; P_Fond.Visible := false; repeat TFrame2(OL_Conteneur.Items[i]).Align := AlTop; TFrame2(OL_Conteneur.Items[i]).Visible := true; Label1.Caption := IntToStr(i) + ' frames affichées'; Application.processMessages; i := i + 1 until i = 999; P_Fond.visible := true; except On E : Exception do showmessage(E.Message + ' ' + IntToStr(i)); end; end;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 --------------------------- Notification d'une exception du débogueur --------------------------- Le projet Project2.exe a provoqué une classe d'exception EOSError avec le message 'Erreur système. Code : 1400. Handle de fenêtre non valide'. Processus stoppé. Utilisez Pas-à-pas ou Exécuter pour continuer. --------------------------- OK Aide ---------------------------
Partager