OpenDialog et division par zéro
M'sieurs Dames, Bonjour ;)
Je ne suis pas trop un habitué du forum Lazarus, je viens de commencer à utiliser ce soft. Ayant utilisé pas mal d'autres EDI (y compris Delphi), le "gros" ne m'a pas posé trop de problèmes.
J'ai toutefois un petit soucis. Je fais une petite application d'indexation de fichiers, j'ai quasiment tout implémenté ce que je voulais comme fonctions sans trop de problèmes mais y'en a un que je n'arrive pas à résoudre. Je fais appel à vos expériences pour voir si ça vient de moi qui ne sait plus coder (bah oui, c'est possible) ou du soft.
En effet, j'essaye de mettre un composant OpenDialog sur ma form de base, je compile, j'exécute ce composant (via une option dans un menu) et là, hop,
Code:
1 2
|
Project *** raised exception class 'External: SIGFPE'. |
Bon, je fais OK, je continue :
Code:
1 2
|
Project *** raised exception class 'RunError(200)'. |
Et en gros, après, il me dit division par 0 dans un ènième message.
Quelqu'un a déjà rencontré ce problème ? je n'en ai vu aucune trace dans mes recherches sur le net. Aurais-je oublié quelque chose ?
Voici tout de même le code par lequel j'appelle l'OpenDialog :
Code:
1 2 3 4 5
|
if OpenDialog1.Execute then
begin
//ShowMessage(OpenDialog1.FileName);
end; |
OpenDialog et division par zéro
Je suis moi aussi un débutant sur Lazarus. Je viens du monde Delphi.
J'ai essayé ton code et je ne trouve aucun problème particulier, aucune erreur ni division par zéro. Vérifie la ligne Uses si tu as les bibliothèques nécessaires ... J'ai pris ton code et j'ai rajouté quelques lignes pour ouvrir Unti1.pas sur un TMemo et tout ce passe bien. Voici le code :
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
|
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
EditBtn, StdCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
OpenDialog1: TOpenDialog;
procedure Button1Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
var Texte : String;
Ligne : String;
f : TextFile;
begin
if OpenDialog1.Execute then
begin
ShowMessage(OpenDialog1.FileName);
Memo1.Clear;
AssignFile(F, OpenDialog1.FileName);
{$i-}
Reset(F);
{$i+}
Texte := '';
Repeat
ReadLn(F, Ligne);
Texte := Texte + Ligne + Chr(13)+Chr(10);
Until EOF(F);
CloseFile(F);
Memo1.Text := Texte;
end;
end; |