Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   try? (https://www.delphipraxis.net/149070-try.html)

Sanguis 13. Mär 2010 15:00


try?
 
Hallo,

ich nutze folgenden Code im onClick eines DBNavigator:

Delphi-Quellcode:
bsSkinLabel1.Caption := IntToStr(form1.ASQLite3Table1.RecNo) + ' / ' + IntToStr(form1.ASQLite3Table1.RecordCount);
Jetzt gibt es Situationen, wo ein Button des DBNavigator nicht enabled ist. Geklickt werden, kann darauf aber trotzdem. Dann gibts eine AccessViolation... ich wollte es mit einem try Block abfangen, der wird aber leider ignoriert. Es kommt trotzdem die AccessViolation...

Gruß,
Andreas

DeddyH 13. Mär 2010 15:02

Re: try?
 
Ich kann im Moment nicht erkennen, was der Code mit einem DBNavigator zu tun hat. Und es wäre vielleicht ganz interessant, Deinen "try-Block" einmal zu sehen.

himitsu 13. Mär 2010 15:07

Re: try?
 
Zitat:

ich wollte es mit einem try Block abfangen, der wird aber leider ignoriert. Es kommt trotzdem die AccessViolation...
Wie immer die beliebte und wichtige Frage:
Wird diese Exception NUR vom Debugger angezeigt, oder wird sie wirklich im Programm ausgelöst/ausgegeben?

Sanguis 13. Mär 2010 16:42

Re: try?
 
Hallo,

ich will in einem SkinLabel darstellen welcher Datensatz von wievielen der DBNavigator grad anzeigt. Um dies aktuell zu halten, hab ich es im DBNavigator onClick eingetragen.
Mein Code mit try ist folgender:

Delphi-Quellcode:
try
 bsSkinLabel1.Caption := IntToStr(form1.ASQLite3Table1.RecNo) + ' / ' + IntToStr(form1.ASQLite3Table1.RecordCount);
except
 showmessage('test');
end;
Aber das fängt die AccessViolation leider nicht ab.

Gruß,
Andreas

DeddyH 13. Mär 2010 16:48

Re: try?
 
Dann formuliere ich himitsus Frage mal anders: wird auch dann eine Exception ausgelöst, wenn Du das Programm außerhalb der IDE startest?

Sanguis 13. Mär 2010 16:59

Re: try?
 
Ja, leider... Ich bekomme sie einfach nicht abgefangen.

DeddyH 13. Mär 2010 17:00

Re: try?
 
Dann zeig uns doch einmal die komplette OnClick-Methode.

Sanguis 13. Mär 2010 17:39

Re: try?
 
Hab ich schon. Aber hier nochmal die komplette Procedure:

Delphi-Quellcode:
procedure TForm1.bsSkinDBNavigator1Click(Sender: TObject;
  Button: TbsNavigateBtn);
begin
try
 bsSkinLabel1.Caption := IntToStr(form1.ASQLite3Table1.RecNo) + ' / ' + IntToStr(form1.ASQLite3Table1.RecordCount);
except
 showmessage('test');
end;
Eigentlich nix großes... ich kapier das nicht...

DeddyH 13. Mär 2010 17:46

Re: try?
 
Ich kenne jetzt die SQLite-Komponenten nicht, aber besitzt die Table eine Eigenschaft Active oder so ähnlich? Dann würde ich das einmal so versuchen:
Delphi-Quellcode:
procedure TForm1.bsSkinDBNavigator1Click(Sender: TObject;
  Button: TbsNavigateBtn);
begin
  if ASQLite3Table1.Active then
    if ASQLite3Table1.RecordCount > 0 then
      try
        bsSkinLabel1.Caption := IntToStr({form1.}ASQLite3Table1.RecNo) + ' / ' + IntToStr({form1.}ASQLite3Table1.RecordCount);
      except
        on E: Exception do
          MessageBox(0,PChar('Es ist ein Fehler aufgetreten:' + sLineBreak + E.Message), 'Oops',MB_OK or MB_ICONERROR);
      end;
end;

Sanguis 13. Mär 2010 18:09

Re: try?
 
Danke. Ja, die Table hat ein Active Attribut.
Aber auch so wird leider die AccessViolation ausgelöst. Mit und ohne IDE...


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:16 Uhr.
Seite 1 von 2  1 2      

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