yugimega
Messages postés22Date d'inscriptionjeudi 22 juillet 2004StatutMembreDernière intervention30 juillet 2007
-
3 août 2005 à 11:51
elguevel
Messages postés718Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention22 novembre 2016
-
12 sept. 2005 à 13:19
Bonjour,
J'essaye d'afficher un messagebox au chargemnt de l'application.
Mais Delphi me met qu'il y a une erreur.
J'ai mis une autre messagebox autre part dans l'application et elle marche très bien.
J'ai essayé tout : MessageBox, MessageBoxA, Application.MessageBox, ...
Mais rien ne marche aidé moi...
Voici mon code si vous voulez le voir...
procedure TForm1.FormCreate(Sender: TObject);
begin
//On met le chemin des images...
ini:=TIniFile.Create('WallPaper.ini');
FileListBox1.Directory:=ini.ReadString('Principal', 'Chemin', Edit1.Text);
If FileListBox1.Count = 0 Then
begin
Timer2.Interval:=0;
Button5.Caption:='Play';
PageControl1.SelectNextPage(True);
MessageBox(0,'Il n'y a pas d'image dans ce dossier.','Erreur',16);
end
Else if FileListBox1.Count > 0 Then
begin
//Afficher
end;
end;
ini.Free;
Donc ca c'est le messagebox qui marche pas...
procedure TForm1.Button1Click(Sender: TObject);
var
Dossier:String;
begin
If SelectDirectory('Veuillez choisir le dossier contenant vos images :', '',Dossier) Then
begin
FileListBox2.Directory:=Dossier;
If FileListBox2.Count > 0 Then Edit1.Text:=Dossier
else if FileListBox2.Count = 0 Then
begin
MessageBox(Form1.Handle, 'Le dossier séléctionné ne contient aucune image !'+#10+#13+'Vueillez séléctionner un autre dossier !', 'Erreur', 16);
Button1.Click;
end;
end;
end;
yugimega
Messages postés22Date d'inscriptionjeudi 22 juillet 2004StatutMembreDernière intervention30 juillet 2007 3 août 2005 à 13:01
Salut,
Merci pour ta solution mais j'ai deja essayé cela mais aprés m'etre casser la tete a mort j'ai découvert que ca marche pas entre les ini:=TIniFile.Create('WallPaper.ini'); et ini.free;.
J'ai mis mon code d'affichage de messagebox après et pof ca marche...
Donc ma conclusion est que les messagebox ne marche pas dans les truc ini...
florenth
Messages postés1023Date d'inscriptiondimanche 1 août 2004StatutMembreDernière intervention17 août 20082 3 août 2005 à 12:50
Salut,
Tu utilises une fois Form1.Handle ou 0 (zéro) comme premier parametre
de la fonction. Je n'ai jamais rempli ce parametre (je le mets tjrs à
zéro) et cela marche impec.
Essaye cela.
@ ++
Florent
Si tu ne te plantes pas ......
tu ne poussera jamais
florenth
Messages postés1023Date d'inscriptiondimanche 1 août 2004StatutMembreDernière intervention17 août 20082 3 août 2005 à 17:31
elguevel >
Dis, pourquoi tu veux rajouter ShellApi dans les uses.
Cela n'a rien a voir avec les Messagebox() qui sont déclarés dans l'unité Windows.pas.
Ce n'est pas la peine de transtyper les strings en PChar si elle sont
saisies directement dans le code. C'est déjà fait implicitement par
Delphi.
Par contre si c'est une variable, alors oui.
yugimega > C'est bien que tu aies résolu ton problème. Par contre,
ta façon de voir les choses me parait suspecte. (l'histoire que c'est
entre un Ini := TIniFile.Create() et un Ini.Free; ).
Peux-tu me donner le message d'erreur que tu obtenais (en entier) pour que j'essaye d'éclaircir cela ?
@ ++
Florent
Si tu ne te plantes pas ......
tu ne poussera jamais
yugimega
Messages postés22Date d'inscriptionjeudi 22 juillet 2004StatutMembreDernière intervention30 juillet 2007 4 août 2005 à 12:57
J'ai remarqué j'ai fait des erreur quand j'ai copié le code sur le forum donc voici la vrai version :
procedure TForm1.FormCreate(Sender: TObject);
begin
//On met le chemin des images...
ini:=TIniFile.Create('WallPaper.ini');
FileListBox1.Directory:=ini.ReadString('Principal', 'Chemin', Edit1.Text);
If FileListBox1.Count = 0 Then
begin
Timer2.Interval:=0;
Button5.Caption:='Play';
PageControl1.SelectNextPage(True);
MessageBox(0,'Il n''y a pas d''image dans ce dossier.','Erreur',16);
end
Else if FileListBox1.Count > 0 Then
begin
//Afficher
end;
ini.Free;
end;
Et Florent le message d'erreur qu'il me met est le suivant :
Le project1 Project1.exe à provoqué une classe d'exception EAccessViolation avec le message 'Violation d'accès à l'adresse 00000000. Lecture de l'adresse 00000000'. Processus stoppé. Utilisez Pas-à-pas ou Exècuter pour continuer.
Mea Culpa, effectivement je vient de voir mon annerie, Les messagebox ne sont en rien lié avec ShellApi (mais plutot Windows).
( J'ai du confondre avec une autre API )
Et dsl pour le PChar, je sais que çà marche en type string mais j'ai l'habitude de toujours caster avec PChar quand on me demande un PChar, donc désolé çà aussi c'est pas necessaire !