Bonjour a tout le monde,

besoin d'un petit coup de main pour le chargement d'images.

Le pricipe simplifié de mon programme :
Une FormPrincipale (active) et une FormDocuments (cachée)

Sur ma FormPrincipale un bouton qui charge 5 images sur la FormDocuments avec de rendre la forme visible.

Le code de mon bouton sur la FormPrincipale :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
FormDocuments->DocumentsAfficher();
FormDocuments->Visible = true;
FormPrincipale->Enabled = false;
La fonction qui charge les images sur la FormDocument
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
53
54
55
56
57
58
59
60
61
62
 
  AnsiString asDocuments = ExtractFilePath(Application->ExeName) + "lib\\Documents\\";
  AnsiString asDocumentsNo = ExtractFilePath(Application->ExeName) + "lib\\Images\\DocumentsNo.jpg";
  AnsiString asImage;
 
 //---------------------------------------------------------------------------
  for(int iCompte = 1; iCompte <= 5; iCompte++)
  {
    if(FileExists(asDocuments+IntToStr(iCompte)+".jpg"))
    {
      switch(iCompte)
      {
        case 1 : ImageHdV1->DrawStyle = suiStretch;
                 ImageHdV1->Picture->LoadFromFile(asDocuments+IntToStr(iCompte)+".jpg");
                 ImageHdV1->Cursor = crHandPoint;
                 break;
        case 2 : ImageHdV2->DrawStyle = suiStretch;
                 ImageHdV2->Picture->LoadFromFile(asDocuments+IntToStr(iCompte)+".jpg");
                 ImageHdV2->Cursor = crHandPoint;
                 break;
        case 3 : ImageHdV3->DrawStyle = suiStretch;
                 ImageHdV3->Picture->LoadFromFile(asOpexDocuments+IntToStr(iCompte)+".jpg");
                 ImageHdV3->Cursor = crHandPoint;
                 break;
        case 4 : ImageHdV4->DrawStyle = suiStretch;
                 ImageHdV4->Picture->LoadFromFile(asDocuments+IntToStr(iCompte)+".jpg");
                 ImageHdV4->Cursor = crHandPoint;
                 break;
        case 5 : ImageHdV5->DrawStyle = suiStretch;
                 ImageHdV5->Picture->LoadFromFile(asDocuments+IntToStr(iCompte)+".jpg");
                 ImageHdV5->Cursor = crHandPoint;
                 break;
      }
    }
    else
    {
      switch(iCompte)
      {
        case 1 : ImageHdV1->DrawStyle = suiNormal;
                 ImageHdV1->Picture->LoadFromFile(asDocumentsNo);
                 ImageHdV1->Cursor = crDefault;
                 break;
        case 2 : ImageHdV2->DrawStyle = suiNormal;
                 ImageHdV2->Picture->LoadFromFile(asDocumentsNo);
                 ImageHdV2->Cursor = crDefault;
                 break;
        case 3 : ImageHdV3->DrawStyle = suiNormal;
                 ImageHdV3->Picture->LoadFromFile(asDocumentsNo);
                 ImageHdV3->Cursor = crDefault;
                 break;
        case 4 : ImageHdV4->DrawStyle = suiNormal;
                 ImageHdV4->Picture->LoadFromFile(asDocumentsNo);
                 ImageHdV4->Cursor = crDefault;
                 break;
        case 5 : ImageHdV5->DrawStyle = suiNormal;
                 ImageHdV5->Picture->LoadFromFile(asOpexDocumentsNo);
                 ImageHdV5->Cursor = crDefault;
                 break;
      }  
    }
  }
  //---------------------------------------------------------------------------
Pour simplifier, mon code vérifie si le fichier existe si c'est le cas il le charge, si il existe pas il charge une image de stop.

Sa va vous sembler bizarre mais mon code fonctionne très bien :-) lol

Le seul soucis c'est que je veux que les images s'affichent avant que la forme s'ouvre. Car pour l'instant la forme s'ouvre et le temps que tout les images se chargent une par une sa met du temps. Alors que les images en elles ne pèsent que 600ko.

Je voulais donc savoir si y avait pas un moyen de chargement plus rapide des images ?
Car pour moi avec un ordi assez puissant qu'il mette quasi 4secondes à charger 5images de 600ko sa fait un peu long.

Merci a tous en tout cas