Bonjour,
j'ai un gros probleme, a chaque fois que j'utilise un savedialog, opendialog, ou meme la fonction qui permet de faire un sreenshot de mon application, en fait tout ce qui écrit en dehors de l'application me donne pas mal de probleme notamment lorsque je veux afficher une image externe au programme (dans un dossier a part), ou bien lorsque je veux a nouveau utiliser une opendialog pour lire ce qu'il y a dans mon fichire! je ne sais pas du tout d'ou ça viens, a la limite voici les codes :
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 /////////////PROCEDURE POUR OUVRIR///////////////// procedure TForm1.Ouvrir1Click(Sender: TObject); Var i:Integer; F:TextFile; lig:string; begin //Charger.FileName := Sauver.FileName; If Not Charger.Execute Then Exit; try AssignFile(F,Charger.FileName); //on assigne a F le fichier ouvert Memo1.Clear; //on vide le memo Form1:= TForm1.Create(Self); For i:=Form1.ComponentCount-1 DownTo 0 Do begin Form1.Components[i].Free; end; StatusBar1.Panels.Items[0].Text := tab[5] + Charger.FileName; reset(F); // on va au debut du fichier while not eof(F) do begin //cette boucle répètera la lecture d'une ligne tant que nous n'aurons pas atteint la fin du document EOF readln(F,lig);//à chaque fois que l'on utilisera readln on passera à la ligne suivante. Memo1.lines.add(lig); // ajoute notre ligne au memo end; closefile(F);//cette procédure ferme notre fichier F ShowMessage(Memo1.Text); except on E: Exception do ShowMessageFmt('%s : à la lecture de %s', [E.Message, Charger.FileName]); end; end; /////////////FIN PROCEDURE POUR OUVRIR/////////////////
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 /////////////PROCEDURE POUR ENREGISTRER SOUS///////////////// procedure TForm1.Sauvegardersous1Click(Sender: TObject); //enregistrer sous begin Sauver.Execute; if(Sauver.FileName <> '') then begin sauvegardersous(Sauver.FileName); StatusBar1.Panels.Items[0].Text := tab[4] + Sauver.FileName; end; end; /////////////FIN PROCEDURE POUR ENREGISTRER SOUS///////////////// /////////////PROCEDURE DE SAUVEGARDE///////////////// procedure TForm1.Sauvegarder1Click(Sender: TObject); begin if sauvegarder = true then begin sauvegardersous(nom_fichier); end else Sauver.Execute; if Sauver.FileName <> '' then begin StatusBar1.Panels.Items[0].Text := tab[4] + Sauver.FileName; sauvegardersous(Sauver.FileName); end end; /////////////FIN PROCEDURE DE SAUVEGARDE///////////////// ////////////ENREGISTRER SOUS////////////// procedure sauvegardersous(where_file: string); var i : Integer; my_file : Textfile; begin nom_fichier := where_file; AssignFile(my_file,where_file); ReWrite(my_file); sauvegarder := true; For i:=0 To Form1.ComponentCount-1 Do begin If Form1.Components[i] Is TImage Then begin Write(my_file,'#'+Form1.Components[i].Name); Write(my_file,'#'+IntToStr(TImage(Form1.Components[i]).Left)+'#'+IntToStr(TImage(Form1.Components[i]).Top)); end else Write(my_file,'['+Form1.Components[i].Name+']'); Writeln(my_file,''); end; CloseFile(my_file); end; ////////////FIN ENREGISTRER SOUS///////////
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 /////////////PROCEDURE POUR CREER IMAGE DU RESEAU///////////////// procedure TForm1.Imprimer1Click(Sender: TObject); begin ImageBureau.Bitmap.Width := Form1.Width-(ListBox1.Width+6);//la largeur du BitMap sera la même que celle de l'écran ImageBureau.Bitmap.Height := Form1.Height-(StatusBar1.Height+47);// idem pour la hauteur BitBlt(ImageBureau.Bitmap.Canvas.Handle,0,0,Form1.Width-(ListBox1.Width),Form1.Height-(StatusBar1.Height+1), GetDC(GetDesktopWindow),Form1.Left+3,Form1.top+46,SrcCopy);//recopie l'image du desktop vers ImageBureau if ImpEc.Execute then begin ImageBureau.SaveToFile(ImpEc.FileName + '.bmp'); StatusBar1.Panels.Items[0].Text := tab[6]; end; end; /////////////FIN PROCEDURE POUR CREER IMAGE DU RESEAU/////////////////
Partager