![]() |
@r_kerber:
Innerhalb von FormActivate passieren mehrere Dinge, bevor das Registry-Objekt erzeugt wird. Aber keine einzige Anweisung innerhalb der FormActivate wird ausgeführt! @Luckie: Die Einträge liegen in HKLM, damit sie für jeden eingeloggten User gleichermassen zur Verfügung stehen. Allerdings würde ich - wenn ich denn überhaupt soweit käme - nur lesend auf die Schlüssel zugreifen. Per OpenKeyReadOnly. :| Matthias |
Noch eine Zusatzinfo:
Aus der Registry wird ein Pfad ausgelesen, der vom Benutzer an irgendeiner Stelle gesetzt werden kann... Ich habe jetzt, um die Registry auszuschliessen, mal komplett den gesamten Code, der irgend etwas mit Registry-Zugriffen zu tun hat, auskommentiert (auch die Deklaration des TRegistry-Objektes) und den Pfad fest eingegeben. Der Absturz bleibt der gleiche... :( Matthias |
Jetzt mußt Du feststellen, ob und welches CreateForm den Absturz hervorruft. In der dpr Breakpoint setzen und debuggen.
|
Hast Du Dir jetzt eigentlich meinen Beitrag zu Herzen genommen und Messages zwischen die einzelnen Creates gesetzt? Diese werden alle ausgeführt, bevor das Hauptform aktiviert wird, damit ist der Fehler in einem der anderen Forms bzw. Module zu suchen!
...:cat:... |
@r_kerber und sakura:
Ach, Ihr habt ja so recht... Ich konnte das Problem jetzt sehr stark eingrenzen und die Form finden, in deren Create das Programm abschmiert. Warum es dort abstürzt, weiss ich noch nicht, aber tatsächlich konnte ich das Create ersteinmal auskommentieren, da der Dialog zur Zeit nicht benutzt wird. Das drängendste Problem ist damit beseitigt. Vielen Dank Euch zwei! Der Hinweis war Gold wert!!! :D Matthias |
Sag ich doch :mrgreen: Lade doch mal den Code des Create-Events hier hoch, vielleicht können wir das ja auch noch lösen ;-)
...:cat:... |
Hi, sakura!
Der Witz bei diesem Dialog ist, dass er keinen OnCreate-Code besitzt. Hier passiert ohnehin erstaunlich wenig (und glücklicherweise wird der Dialog - wie es nun aussieht - nicht mehr benötigt). Es gibt ein Query-Objekt und ein Datasource-Objekt. Ansonsten nur ein paar Buttons und ein DBGrid. Nichts dramatisches eigentlich. Zum Reinschauen hier trotzdem mal der Code...
Code:
:)
unit uKorrekrurbelicht;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Grids, DBGrids, StdCtrls, Buttons, Db, DBTables; type TfrmKorrekrurbelicht = class(TForm) DBGrid1: TDBGrid; BitBtn1: TBitBtn; SpeedButton1: TSpeedButton; DataSource1: TDataSource; Query1: TQuery; BitBtn2: TBitBtn; CheckBox1: TCheckBox; Label1: TLabel; procedure SpeedButton1Click(Sender: TObject); procedure FormShow(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var frmKorrekrurbelicht: TfrmKorrekrurbelicht; implementation uses udatModulAusgabe, uLfdNummer, uQRListe, udatModule, uATVConsts; {$R *.DFM} procedure TfrmKorrekrurbelicht.SpeedButton1Click(Sender: TObject); begin with Query1 do begin with SQL do begin Clear; Add('SELECT DISTINCT D.LaufendeNummer, D.SortierBegriff, D.BearbeitungsStatus, D2.VerbindungsArt, D2.VerbindungsDaten, D3.Drucktext '); Add('FROM '+Firmen +' D, '+FirmenAnschriften+' D1, '+FirmenVerbindungen+' D2, '+FirmenDrucktexte+' D3 '); Add('WHERE ((D.BearbeitungsStatus = 1.0) OR (D.BearbeitungsStatus = 2.0)) '); Add('AND (D1.FirmaID = D.IDFirma) '); Add('AND (D2.FirmaID = D1.FirmaID) '); Add('AND (D2.AnschriftID = D1.IDAnschrift) '); Add('AND ((D2.VerbindungsArt = 3.0) OR (D2.VerbindungsArt = 4.0)) '); Add('AND (D3.FirmaID = D.IDFirma) '); D2.VerbindungsDaten, D.BearbeitungsStatus'); If frmLaufendeNummern.RadioButton1.Checked Then Add('ORDER BY D.' + SortierBegriff) else Add('ORDER BY D.' + LaufendeNummer); end; open; end; frmQRListe.Show; If not CheckBox1.Checked Then frmQRListe.Quickrep1.Print else frmQRListe.Quickrep1.Preview; frmQRListe.Close; end; procedure TfrmKorrekrurbelicht.FormShow(Sender: TObject); begin Label1.Caption := IntToStr(datModulAusgabe.qryMKorrekturFirmenAnschriften.RecordCount); end; end. Matthias |
Einfach mal versuchen...
Code:
...:cat:...
procedure TfrmKorrekrurbelicht.FormShow(Sender: TObject);
begin [color=#ff0000]try[/color] Label1.Caption := IntToStr(datModulAusgabe.qryMKorrekturFirmenAnschriften.RecordCount); [color=#ff0000]except end;[/color] end; |
Moin Zusammen,
oder so
Code:
Dann ist klar, dass auch eine Exception erfolgte, und nicht vielleicht zufällig nichts passiert ist.
procedure TfrmKorrekrurbelicht.FormShow(Sender: TObject);
begin [color=#ff0000]try[/color] Label1.Caption := IntToStr(datModulAusgabe.qryMKorrekturFirmenAnschriften.RecordCount); [color=#ff0000]except ShowMessage('HIER'); end;[/color] end; |
Wenn, dann ganz...
Code:
...:cat:...
procedure TfrmKorrekrurbelicht.FormShow(Sender: TObject);
begin [color=#ff0000]try[/color] Label1.Caption := IntToStr(datModulAusgabe.qryMKorrekturFirmenAnschriften.RecordCount); [color=#ff0000]except on E: Exception do ShowMessage('Fehler: ' + E.Message); end;[/color] end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:40 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz