Unter LINUX Datei ist vorhanden wird aber nicht gefunden

Für Fragen von Einsteigern und Programmieranfängern...

Re: Unter LINUX Datei ist vorhanden wird aber nicht gefunden

Beitragvon DL3AD » 22. Dez 2017, 10:18 Re: Unter LINUX Datei ist vorhanden wird aber nicht gefunden

... ich verwende aber nicht die mseide. :wink:

Mit diesem Konstrukt der Fehlerbehandlung ploppen drei Fenster auf - eines vom Debugger eines von den Zcomponenten(wennich es richtig sehe)
und dann meine eigentlich gewollte Message.

Ich möchte NUR EINE Nachricht ausgeben und zwar eine die ich festlege.
Wie macht man dass ?

Gruß Frank
DL3AD
 
Beiträge: 371
Registriert: 13. Sep 2013, 11:07
Wohnort: Rügen
OS, Lazarus, FPC: Win7 (L 1.8.0 FPC 3.0.4) und Debian Stretch (L 1.8.0 FPC 3.0.4) | 
CPU-Target: 32Bit/64Bit
Nach oben

Beitragvon wp_xyz » 22. Dez 2017, 10:43 Re: Unter LINUX Datei ist vorhanden wird aber nicht gefunden

Hast du das mit SearchFileInPath schon ausprobiert (mein Post etwas weiter oben)?
wp_xyz
 
Beiträge: 2697
Registriert: 8. Apr 2011, 08:01

Beitragvon mse » 22. Dez 2017, 10:43 Re: Unter LINUX Datei ist vorhanden wird aber nicht gefunden

DL3AD hat geschrieben:... ich verwende aber nicht die mseide. :wink:

So eine Riesenarbeit wäre es für dich ja nicht gewesen, die application.handleexception() Parameter nachzusehen.
Mit diesem Konstrukt der Fehlerbehandlung ploppen drei Fenster auf - eines vom Debugger eines von den Zcomponenten(wennich es richtig sehe)
und dann meine eigentlich gewollte Message.

Die Zusatzfenster macht wohl Lazarus, im normalen Program wirst du sie nicht haben. In MSEide würde man 'Project'-'Options'-'Debbuger'-'Stop on exception' ausschalten, wenn man keine exception Unterstützung in der IDE will.
Ich möchte NUR EINE Nachricht ausgeben und zwar eine die ich festlege.
Wie macht man dass ?

Code: Alles auswählen
 
 
    procedure TForm1.DBOn;
    begin
    [...]
        ZConDB.Connected      := false;
        ZConDB.Database       := Config.ReadString('Setup','Database','');
        ZConDB.LibraryLocation:= 'libsqlite3.so.0';//Ohne die obige Prüfung kann er auf die lib hier zugreifen.
        try
         ZConDB.Connected      := true;
         QueryLog.Active       := true;
        except
         //mache deine Fehlermeldung
        end;
 

oder
Code: Alles auswählen
 
        try
         ZConDB.Connected      := true;
         QueryLog.Active       := true;
        except
         on e: exception do begin
          //werte e aus und mache eine entsprechene Fehlermeldung
         end;
        end;
 
mse
 
Beiträge: 2013
Registriert: 16. Okt 2008, 09:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0) | 
CPU-Target: x86,x64,ARM
Nach oben

Beitragvon mse » 22. Dez 2017, 10:46 Re: Unter LINUX Datei ist vorhanden wird aber nicht gefunden

wp_xyz hat geschrieben:Hast du das mit SearchFileInPath schon ausprobiert (mein Post etwas weiter oben)?

Unter Linux werden libraries gesucht wie hier erklärt:
http://man7.org/linux/man-pages/man3/dlopen.3.html
If filename is NULL, then the returned handle is for the main
program. If filename contains a slash ("/"), then it is interpreted
as a (relative or absolute) pathname. Otherwise, the dynamic linker
searches for the object as follows (see ld.so(8) for further
details):

o (ELF only) If the executable file for the calling program
contains a DT_RPATH tag, and does not contain a DT_RUNPATH tag,
then the directories listed in the DT_RPATH tag are searched.

o If, at the time that the program was started, the environment
variable LD_LIBRARY_PATH was defined to contain a colon-separated
list of directories, then these are searched. (As a security
measure, this variable is ignored for set-user-ID and set-group-
ID programs.)

o (ELF only) If the executable file for the calling program
contains a DT_RUNPATH tag, then the directories listed in that
tag are searched.

o The cache file /etc/ld.so.cache (maintained by ldconfig(8)) is
checked to see whether it contains an entry for filename.

o The directories /lib and /usr/lib are searched (in that order).
mse
 
Beiträge: 2013
Registriert: 16. Okt 2008, 09:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0) | 
CPU-Target: x86,x64,ARM
Nach oben

Beitragvon DL3AD » 22. Dez 2017, 11:19 Re: Unter LINUX Datei ist vorhanden wird aber nicht gefunden

Hallo
@wp_xyz - SearchFileInPath habe ich probiert - brachte aber nicht den erwünschten Erfolg.
Mit
Code: Alles auswählen
 
    try
      ZConDB.Connected      := true;
      QueryLog.Active       := true;
    except
      ShowMessage('library not found');
      Halt;
    end;     
 

Komme ich nun zurecht - Kann so meine eigene Fehlermeldung formulieren.
Compilermeldungen kommen zum Glück nur in der IDE.
Muss nun noch prüfen welche objekte ich freigeben muss vor dem Halt

Danke für eure Hilfe !

Gruß Frank
DL3AD
 
Beiträge: 371
Registriert: 13. Sep 2013, 11:07
Wohnort: Rügen
OS, Lazarus, FPC: Win7 (L 1.8.0 FPC 3.0.4) und Debian Stretch (L 1.8.0 FPC 3.0.4) | 
CPU-Target: 32Bit/64Bit
Nach oben

Beitragvon mse » 22. Dez 2017, 11:35 Re: Unter LINUX Datei ist vorhanden wird aber nicht gefunden

Es kann aber auch aus anderen Gründen eine exception geworfen werden. Warum willst du nicht die Originalmeldung von Zeos verwenden?
mse
 
Beiträge: 2013
Registriert: 16. Okt 2008, 09:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0) | 
CPU-Target: x86,x64,ARM
Nach oben

• Themenende •
Vorherige

Zurück zu Einsteigerfragen



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 9 Gäste

porpoises-institution
accuracy-worried