Delphi-PRAXiS
Seite 6 von 7   « Erste     456 7      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Windows 8.1 Pro mit Firbird 2.5.3 (https://www.delphipraxis.net/184045-windows-8-1-pro-mit-firbird-2-5-3-a.html)

mkinzler 10. Mär 2015 15:36

AW: Windows 8.1 Pro mit Firbird 2.5.3
 
Wie soll das ohne erzeugtes Datenmodul funktionieren?

TRomano 10. Mär 2015 15:37

AW: Windows 8.1 Pro mit Firbird 2.5.3
 
Auf die Schnelle waren die Quellen nicht so gut zu verstehen. Vielleicht solltest Du ein TDataModule dafür benutzen, wofür es geschaffen wurde: zum Anlegen der Connections, der Tables/Queries, der Transactions und ein paar grundsätzlicher (Datenbank-) Funktionen.
In der DPR vermisse ich das Erzeugen des Datenmoduls (ist auskommentiert) und in jenem gibt es eine Funktion zum Erzeugen der MainForm ?
Wie schon einige Andere geschrieben hatten würde ich das Datenmodul vor der Mainform erzeugen, dort die Verbindung zur DB herstellen und auch beim Schließen der Applikation wieder kappen. Damit solltest Du die Kontrolle behalten. Das Login-Formular bindest Du in die Mainform ein, da ich davon ausgehe, dass Du dort einen Button (oder was auch immer) zum Connecten hast. So lange "leben" auch alle deine Module und Du hast weniger Probleme mit AV´s ....

dataspider 10. Mär 2015 16:13

AW: Windows 8.1 Pro mit Firbird 2.5.3
 
Zitat:

Zitat von mkinzler (Beitrag 1292951)
Wie soll das ohne erzeugtes Datenmodul funktionieren?

Er erzeugt es doch:
Delphi-Quellcode:
function dmMain: TdmMain;
begin
   if FdmMain = nil then
   begin
     FdmMain := TdmMain.Create(Application);
     FdmMain.AfterConstruction;
   end;
   Result := FdmMain;
end;
Walter,
AfterConstruction musst du nicht aufrufen, du vererbst diese Methode und diese wird nach dem Erzeugen automatisch aufgerufen.
Also nimm das raus. Macht zwar nichts (glaub ich), aber ist Quatsch.

Frank

mkinzler 10. Mär 2015 16:26

AW: Windows 8.1 Pro mit Firbird 2.5.3
 
Und wird das irgendwo aufgerufen? Und wenn ja vor dem OnCreate der Hauptform? Denn da wird die LoginForm errzeugt, welche darauf zugreifen will.

Der Code ist die Vollendung von Obfuscation.

Walter Landwehr 10. Mär 2015 16:28

AW: Windows 8.1 Pro mit Firbird 2.5.3
 
OK Frank, habe ich rausgenommen. Jetzt kommen keine Meldungen mehr, aber NatuPrax ist nachdem beenden im Task Manager immer noch zu sehen. NatuPrax verschwindet also nicht aus dem Speicher. Das ist blöd, weil ich ein Mehrfach Start verhindere. Sonst funktioniert alles perfekt man kann damit arbeiten aber wie gesagt beim Beenden.

dataspider 10. Mär 2015 16:36

AW: Windows 8.1 Pro mit Firbird 2.5.3
 
Walter,

möglicherweise ist das Problem ja gar nicht das Datenmodul.

Ich würde mal zum Test folgendes machen:

Im MainForm im OnClose und OnCloseQuery ein Exit; in die erste Zeile, damit der Code nicht ausgeführt wird.
(Du schreibst ja noch in die Registrierung etc.)

Ein Button auf das MainForm und dort dmMain.Free; in den Code.

Vor Beenden des Programmes auf den Button und dmMain bewusst zerstören, dann beenden.

Was passiert dann?

Frank

dataspider 10. Mär 2015 16:41

AW: Windows 8.1 Pro mit Firbird 2.5.3
 
Zitat:

Zitat von mkinzler (Beitrag 1292954)
Und wird das irgendwo aufgerufen? Und wenn ja vor dem OnCreate der Hauptform? Denn da wird die LoginForm errzeugt, welche darauf zugreifen will.

die globale Variable wurde durch eine Funktion ersetzt.
Somit wird das Datenmodul bei der ersten Verwendung von dmMain.WasAuchImmer erzeugt...

Zitat:

Zitat von mkinzler (Beitrag 1292954)
Der Code ist die Vollendung von Obfuscation.

Da hätte selbst die NSA dran zu kauen... :)

Frank

Walter Landwehr 10. Mär 2015 16:48

AW: Windows 8.1 Pro mit Firbird 2.5.3
 
Hallo Frank, habe ich gemacht, aber das Ergebnis ist gleich. Beim beenden steht es weiterhin im Speicher. Ich muss noch dazu sagen das auch der Compiler das Programm nicht richtig beendet.

dataspider 10. Mär 2015 17:09

AW: Windows 8.1 Pro mit Firbird 2.5.3
 
Zitat:

Zitat von Walter Landwehr (Beitrag 1292958)
Hallo Frank, habe ich gemacht, aber das Ergebnis ist gleich. Beim beenden steht es weiterhin im Speicher. Ich muss noch dazu sagen das auch der Compiler das Programm nicht richtig beendet.

Sicher auch meine letzte Idee.
Den Timer tmMedikament würde ich testhalber auch deaktivieren im FormClose.

Hast du noch Code im Finalization irgendeiner Unit?
Die meisten Komponentenbibliotheken machen regen Gebrauch davon. Am Ende liegt es an TMS oder dem Reportgenerator...

Frank

Walter Landwehr 10. Mär 2015 17:54

AW: Windows 8.1 Pro mit Firbird 2.5.3
 
Ok ich mache morgen weiter, bin jetzt fix und fertig.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:08 Uhr.
Seite 6 von 7   « Erste     456 7      

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