Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Fehlermeldung für TFileStream ändern (https://www.delphipraxis.net/119924-fehlermeldung-fuer-tfilestream-aendern.html)

SaFu 3. Sep 2008 11:27


Fehlermeldung für TFileStream ändern
 
Gutem Morgen

Hatte ja gestern ein Problem wegen dem Exclusiven öffenen einer Datei.

Das funktioniert soweit sehr gut nur wollte ich die Fehlermeldung die mir die Funktion bringt ändern.

Es kommt ja sowas wie: Die Datei C:\\Benutzer\Ordner\Ordner\Ordner\Test.txt wird von einem anderen Prozess bla bla bla

Ich würde gerne eine kürzere Meldung bringen mit Showmessage, hab es schon mit try except versucht aber irgendwie will das net so

Delphi-Quellcode:
procedure TForm7.GridLaden;
var x, y, row, col,len :Word;
    buff :string;
begin
 if FExclusiveStream <> nil then
  FreeAndNil(FExclusiveStream);
  try
   FExclusiveStream:= TFileStream.Create(FileListbox1.FileName, fmShareExclusive);
  except
   Showmessage('Datei wird von einem andrern Benutzer bearbeite');
  end;
  FExclusiveStream.Read(row, SizeOf(Word));
  FExclusiveStream.Read(col, SizeOf(Word));

  for x:= 0 to row do
   for y:= 0 to col do
    begin
     FExclusiveStream.Read(len, SizeOf(Word));
     SetLength(buff, len);
     FExclusiveStream.Read(buff[1], len);
     StringGrid1.Cells[y,x]:= buff;
    end;
end;
Was mach ich da jetzt fals oder wie kann ich die Meldung abfangen.

Wenn ich es so wie oben mache bekomm ich einen Fehler nach dem die Meldung abgefangen wurde

mkinzler 3. Sep 2008 11:30

Re: Fehlermeldung für TFileStream ändern
 
Innerhalb der IDE?

Klaus01 3. Sep 2008 11:32

Re: Fehlermeldung für TFileStream ändern
 
Hallo Sascha,

versuche es mal so:

Delphi-Quellcode:
if FExclusiveStream <> nil then
  FreeAndNil(FExclusiveStream);
  try
   FExclusiveStream:= TFileStream.Create(FileListbox1.FileName, fmShareExclusive);
  except
    on exception do
       Showmessage('Datei wird von einem anderen Benutzer bearbeitet');
  end;
  FExclusiveStream.Read(row, SizeOf(Word));
  FExclusiveStream.Read(col, SizeOf(Word));
Wenn Du die Exception noch besser spezifizieren kannst:

Delphi-Quellcode:
if FExclusiveStream <> nil then
  FreeAndNil(FExclusiveStream);
  try
   FExclusiveStream:= TFileStream.Create(FileListbox1.FileName, fmShareExclusive);
  except
    on E: .... do
       Showmessage('Datei wird von einem anderen Benutzer bearbeitet');
  end;
  FExclusiveStream.Read(row, SizeOf(Word));
  FExclusiveStream.Read(col, SizeOf(Word));
Grüße
Klaus

[edit] Rechtschreibung verbessert

SaFu 3. Sep 2008 11:40

Re: Fehlermeldung für TFileStream ändern
 
Ok Daknegeht mit der Fehlermeldung vom Klaus

Delphi-Quellcode:
procedure TForm7.GridLaden;
var x, y, row, col,len :Word;
    buff :string;
begin
 if FExclusiveStream <> nil then
  FreeAndNil(FExclusiveStream);
  try
   FExclusiveStream:= TFileStream.Create(FileListbox1.FileName, fmShareExclusive);


  FExclusiveStream.Read(row, SizeOf(Word));
  FExclusiveStream.Read(col, SizeOf(Word));

  for x:= 0 to row do
   for y:= 0 to col do
    begin
     FExclusiveStream.Read(len, SizeOf(Word));
     SetLength(buff, len);
     FExclusiveStream.Read(buff[1], len);
     StringGrid1.Cells[y,x]:= buff;
    end;
  except
    on exception do
       Showmessage('Datei wird von einem andrern Benutzer bearbeite');
  end;
end;
Hab es jetzt unten hingeschrieben und dann funktioniert es Danke

DeddyH 3. Sep 2008 11:44

Re: Fehlermeldung für TFileStream ändern
 
Klar, wenn Du trotz der Exception weitermachst...


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:05 Uhr.

Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf