bug du programme apres utilisation de dialog
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:
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:
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:
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///////////////// |