AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Probleme mit Initialisierung (Fehlende Connection)
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme mit Initialisierung (Fehlende Connection)

Ein Thema von BigAl · begonnen am 6. Dez 2009 · letzter Beitrag vom 7. Dez 2009
Antwort Antwort
BigAl

Registriert seit: 6. Sep 2008
Ort: Kehl
504 Beiträge
 
Delphi 12 Athens
 
#1

Probleme mit Initialisierung (Fehlende Connection)

  Alt 6. Dez 2009, 13:01
Datenbank: SQL-Server, Absolute DB • Version: 2008, 6.05 • Zugriff über: ADO, SDAC (devart), Absolute DB
Hallo zusammen,

ich kämpfe seit einigen Tagen (!) mit einem ziemlich heftigen Problem. Habe zuerst an Fehler in Komponenten gedacht. Kann das Ganze aber mit ADO, SDAC oder Absolute DB reproduzieren.

Folgende Situation (Delphi 2010):

1. Hauptformular (main.pas)
2. Datenmodul (dmmain.pas)
3. Formular (edit.pas, wird nicht automatisch initialisiert --> Projekt/Optionen/Verfügbare Formulare)

Das Hauptprogramm ist eigentlich nur da, um das Formular zu initialiseren (Create, ShowModal, Free...).

Das Datenmodul enthält nur eine Connection (TADOConnection, alternativ TMSConnection oder TABSDatabase).

Im Formular ist eine Table-Komponente (TADOTable oder TMSTable oder TABSTable).

Ich setze im Datenmodul die Verbindung sowie die Table auf aktiv. Sobald ich das Programm starte kommt eine Fehlermeldung die besagt, dass die Verbindung fehlt. Bei ADO beispielsweise "Fehlende Connection oder ConnectionString". Bei den anderen Komponenten (SDAC oder ABSDB) kommen in etwa die gleichen Fehlermeldungen. Die Meldung kommt bereits bevor(!) die erste Programmzeile des Hauptprogramms ausgeführt wird.

Bei ADO sieht "Details" wie folgt aus:

Code:
[5067E82C]{dbrtl140.bpl} DB.DatabaseError (Line 2885, "DB.pas" + 3) + $E
[50CFFD65]{adortl140.bpl} ADODB.TADOCommand.OpenConnection (Line 3242, "ADODB.pas" + 10) + $12
[50CFFC7C]{adortl140.bpl} ADODB.TADOCommand.SetConnectionFlag (Line 3217, "ADODB.pas" + 6) + $11
[50D008FD]{adortl140.bpl} ADODB.TCustomADODataSet.SetConnectionFlag (Line 3525, "ADODB.pas" + 1) + $A
[50D00996]{adortl140.bpl} ADODB.InitializeConnection (Line 3547, "ADODB.pas" + 9) + $B
[50D00CAD]{adortl140.bpl} ADODB.TCustomADODataSet.OpenCursor (Line 3592, "ADODB.pas" + 3) + $1
[50690C6D]{dbrtl140.bpl} DB.TDataSet.SetActive (Line 11303, "DB.pas" + 12) + $7
[506907F3]{dbrtl140.bpl} DB.TDataSet.Loaded (Line 11146, "DB.pas" + 3) + $13
[50D008C3]{adortl140.bpl} ADODB.TCustomADODataSet.Loaded (Line 3515, "ADODB.pas" + 2) + $3
[50063410]{rtl140.bpl } Classes.NotifyGlobalLoading (Line 3072, "Classes.pas" + 3) + $B
[20DB9783]{designide140.bpl} ComponentDesigner.TComponentRoot.CreateFromStream (Line 2196, "ComponentDesigner.pas" + 10) + $0
[20DBC8A9]{designide140.bpl} ComponentDesigner.TComponentRoot.Resurrect (Line 3381, "ComponentDesigner.pas" + 11) + $6
[10C2726F]{DataSetManager140.bpl} Dsmclasses.TComponentList.BuildComponentList + $B3
[50010AB0]{rtl140.bpl } System.@IntfClear (Line 21928, "System.pas" + 7) + $0
[10C259C2]{DataSetManager140.bpl} Dsmclasses.TDataSetList.GetDsListFromModule + $BA
[10C1F178]{DataSetManager140.bpl} Dsmclasses.TDataSetList.BuildDataSetList + $25C
[10C1FC25]{DataSetManager140.bpl} Dsmclasses.TDataSetList.Resurrect + $19
[10C545EA]{DataSetManager140.bpl} Dsmtoolwindow.TDsmToolWindow.ChangeDataSetListState + $3E
[10C5349D]{DataSetManager140.bpl} Dsmtoolwindow.TDsmToolWindow.FormShow + $11
[502BEBE9]{vcl140.bpl } Forms.TCustomForm.DoShow (Line 3589, "Forms.pas" + 1) + $14
[502C3175]{vcl140.bpl } Forms.TCustomForm.CMShowingChanged (Line 6211, "Forms.pas" + 11) + $7
[20D806D5]{designide140.bpl} DeskForm.TDesktopForm.CMShowingChanged (Line 791, "DeskForm.pas" + 1) + $0
[50295DFC]{vcl140.bpl } Controls.TControl.WndProc (Line 7062, "Controls.pas" + 91) + $6
[502A2EE0]{vcl140.bpl } Controls.TDockTree.WndProc (Line 15238, "Controls.pas" + 74) + $5
[5032319B]{vcl140.bpl } CaptionedDockTree.TCaptionedDockTree.WndProc (Line 249, "CaptionedDockTree.pas" + 28) + $0
[502A27C8]{vcl140.bpl } Controls.TDockTree.WindowProc (Line 14982, "Controls.pas" + 1) + $6
[50295A20]{vcl140.bpl } Controls.TControl.Perform (Line 6840, "Controls.pas" + 10) + $8
[5029D3B9]{vcl140.bpl } Controls.TWinControl.CMInvalidate (Line 11772, "Controls.pas" + 3) + $13
[50295DFC]{vcl140.bpl } Controls.TControl.WndProc (Line 7062, "Controls.pas" + 91) + $6
[5029A6C0]{vcl140.bpl } Controls.TWinControl.WndProc (Line 9819, "Controls.pas" + 144) + $6
[502BF58C]{vcl140.bpl } Forms.TCustomForm.WndProc (Line 3960, "Forms.pas" + 191) + $5
[50295A20]{vcl140.bpl } Controls.TControl.Perform (Line 6840, "Controls.pas" + 10) + $8
[50299B09]{vcl140.bpl } Controls.TWinControl.UpdateShowing (Line 9463, "Controls.pas" + 19) + $C
[50299A9E]{vcl140.bpl } Controls.TWinControl.UpdateShowing (Line 9454, "Controls.pas" + 10) + $10
[50299C18]{vcl140.bpl } Controls.TWinControl.UpdateControlState (Line 9498, "Controls.pas" + 21) + $3
[5029C7CA]{vcl140.bpl } Controls.TWinControl.CMVisibleChanged (Line 11239, "Controls.pas" + 3) + $2
[50295DFC]{vcl140.bpl } Controls.TControl.WndProc (Line 7062, "Controls.pas" + 91) + $6
[5029D403]{vcl140.bpl } Controls.TWinControl.CMInvalidate (Line 11779, "Controls.pas" + 10) + $4
[50295DFC]{vcl140.bpl } Controls.TControl.WndProc (Line 7062, "Controls.pas" + 91) + $6
[502AE121]{vcl140.bpl } ImgList.TCustomImageList.GetCount (Line 583, "ImgList.pas" + 1) + $E
[5029A6C0]{vcl140.bpl } Controls.TWinControl.WndProc (Line 9819, "Controls.pas" + 144) + $6
[50064180]{rtl140.bpl } Classes.TList.SetCapacity (Line 3597, "Classes.pas" + 5) + $9
[50063F0B]{rtl140.bpl } Classes.TList.Grow (Line 3435, "Classes.pas" + 7) + $4
[50063CFF]{rtl140.bpl } Classes.TList.Add (Line 3343, "Classes.pas" + 3) + $4
[5029A6C0]{vcl140.bpl } Controls.TWinControl.WndProc (Line 9819, "Controls.pas" + 144) + $6
[50295A20]{vcl140.bpl } Controls.TControl.Perform (Line 6840, "Controls.pas" + 10) + $8
[5029443A]{vcl140.bpl } Controls.TControl.SetVisible (Line 5880, "Controls.pas" + 5) + $C
[20D79969]{designide140.bpl} TabDock.TTabDockInfo.SetActive (Line 253, "TabDock.pas" + 1) + $5
[20D7AE88]{designide140.bpl} TabDock.TTabDockHostForm.DockTabClick (Line 956, "TabDock.pas" + 8) + $2
[50296367]{vcl140.bpl } Controls.TControl.Click (Line 7178, "Controls.pas" + 9) + $8
[503266BD]{vcl140.bpl } Tabs.TTabList.Delete (Line 593, "Tabs.pas" + 26) + $7
[20D798C2]{designide140.bpl} TabDock.TTabDockInfo.RemoveTab (Line 217, "TabDock.pas" + 7) + $E
[20D798D5]{designide140.bpl} TabDock.TTabDockInfo.RemoveDockClient (Line 224, "TabDock.pas" + 1) + $2
[20D7A9F1]{designide140.bpl} TabDock.TTabDockHostForm.DoRemoveDockClient (Line 770, "TabDock.pas" + 17) + $2
[50293CA0]{vcl140.bpl } Controls.TControl.Dock (Line 5599, "Controls.pas" + 30) + $D
[502BFF32]{vcl140.bpl } Forms.TCustomForm.Dock (Line 4292, "Forms.pas" + 3) + $4
[502956B5]{vcl140.bpl } Controls.TControl.ManualFloat (Line 6703, "Controls.pas" + 9) + $C
[50293F02]{vcl140.bpl } Controls.TControl.ClientToScreen (Line 5687, "Controls.pas" + 1) + $6
[502954FB]{vcl140.bpl } Controls.TControl.ManualDock (Line 6657, "Controls.pas" + 17) + $5
[5029BCA9]{vcl140.bpl } Controls.TWinControl.GetDockClients (Line 10621, "Controls.pas" + 1) + $E
[20D7DC9E]{designide140.bpl} BaseDock.TBaseDockHostForm.UndockAllClientsAndSelf (Line 319, "BaseDock.pas" + 6) + $F
[207FDF5C]{coreide140.bpl} Desktop.CreateDockHostWindows (Line 1288, "Desktop.pas" + 47) + $2
[50068225]{rtl140.bpl } Classes.TStringList.Create (Line 5789, "Classes.pas" + 2) + $6
[207FBE69]{coreide140.bpl} Desktop.LoadDeskState (Line 609, "Desktop.pas" + 18) + $3
[207FF046]{coreide140.bpl} Desktop.TDesktopState.Load (Line 1688, "Desktop.pas" + 5) + $3
[207FE923]{coreide140.bpl} Desktop.TDesktopStates.LoadDesktop (Line 1515, "Desktop.pas" + 4) + $6
[207FEA84]{coreide140.bpl} Desktop.TDesktopStates.LoadRuntimeDesktop (Line 1572, "Desktop.pas" + 9) + $D
[207FEC5E]{coreide140.bpl} Desktop.TDesktopStates.ProcessCreated (Line 1601, "Desktop.pas" + 4) + $3
[208A2328]{coreide140.bpl} DebuggerMgr.TProcessEvent.Send (Line 663, "DebuggerMgr.pas" + 2) + $14
[208A5BD5]{coreide140.bpl} DebuggerMgr.TDebuggerMgr.ProcessCreated (Line 2074, "DebuggerMgr.pas" + 12) + $7
[206484FA]{dbkdebugide140.bpl} Debug.TDebugger.NotifyProcessCreated (Line 10144, "Debug.pas" + 2) + $18
[20D8CDA5]{designide140.bpl} ToolUtils.ForEach (Line 90, "ToolUtils.pas" + 5) + $F
[206479D5]{dbkdebugide140.bpl} Debug.TDebugger.InitNewProcess (Line 9817, "Debug.pas" + 7) + $22
[2064A31A]{dbkdebugide140.bpl} Debug.TDebugger.DoCreateProcess (Line 10665, "Debug.pas" + 30) + $6
[2064A440]{dbkdebugide140.bpl} Debug.TDebugger.CreateProcess (Line 10685, "Debug.pas" + 6) + $2B
[2064B04A]{dbkdebugide140.bpl} Debug.TDebugger.Run (Line 11109, "Debug.pas" + 51) + $2D
[2064B7F2]{dbkdebugide140.bpl} Debug.TDebugger.Run (Line 11365, "Debug.pas" + 72) + $37
[2064655E]{dbkdebugide140.bpl} Debug.TDebugger.Run (Line 9276, "Debug.pas" + 0) + $2
[208A4CF1]{coreide140.bpl} DebuggerMgr.TDebuggerMgr.Run (Line 1721, "DebuggerMgr.pas" + 4) + $F
[50075663]{rtl140.bpl } Classes.TBasicAction.Execute (Line 12512, "Classes.pas" + 3) + $7
[502B182D]{vcl140.bpl } ActnList.TContainedAction.Execute (Line 448, "ActnList.pas" + 8) + $2C
[502B2608]{vcl140.bpl } ActnList.TCustomAction.Execute (Line 1094, "ActnList.pas" + 7) + $8
[50075527]{rtl140.bpl } Classes.TBasicActionLink.Execute (Line 12441, "Classes.pas" + 2) + $7
[502801B4]{vcl140.bpl } Menus.TMenuItem.Click (Line 2518, "Menus.pas" + 17) + $7
[50281BFF]{vcl140.bpl } Menus.DoClick (Line 3602, "Menus.pas" + 41) + $4
[50281CEB]{vcl140.bpl } Menus.TMenu.IsShortCut (Line 3655, "Menus.pas" + 38) + $6
[0041EEC1]{bds.exe    } bds.bds (Line 200, "" + 8) + $1572
[502C4594]{vcl140.bpl } Forms.TCustomForm.IsShortCut (Line 6902, "Forms.pas" + 2) + $16
[5029CB1C]{vcl140.bpl } Controls.TWinControl.IsMenuKey (Line 11440, "Controls.pas" + 13) + $C
[5029CB69]{vcl140.bpl } Controls.TWinControl.CNKeyDown (Line 11455, "Controls.pas" + 5) + $4
[50295DFC]{vcl140.bpl } Controls.TControl.WndProc (Line 7062, "Controls.pas" + 91) + $6
[502BF58C]{vcl140.bpl } Forms.TCustomForm.WndProc (Line 3960, "Forms.pas" + 191) + $5
[502CA3C5]{vcl140.bpl } Forms.TApplication.DispatchAction (Line 10966, "Forms.pas" + 9) + $A
[50295A20]{vcl140.bpl } Controls.TControl.Perform (Line 6840, "Controls.pas" + 10) + $8
[502CA3C5]{vcl140.bpl } Forms.TApplication.DispatchAction (Line 10966, "Forms.pas" + 9) + $A
[502C7BDA]{vcl140.bpl } Forms.TApplication.WndProc (Line 9371, "Forms.pas" + 97) + $E
[20D7C74E]{designide140.bpl} DeskUtil.SetFocusHook (Line 454, "DeskUtil.pas" + 4) + $C
[50076360]{rtl140.bpl } Classes.StdWndProc (Line 13014, "Classes.pas" + 8) + $0
[5029A6C0]{vcl140.bpl } Controls.TWinControl.WndProc (Line 9819, "Controls.pas" + 144) + $6
[20EB26FF]{vclide140.bpl} IDEInspListBox.TPropInspEdit.WndProc (Line 359, "IDEInspListBox.pas" + 7) + $4
[50299D60]{vcl140.bpl } Controls.TWinControl.MainWndProc (Line 9540, "Controls.pas" + 3) + $6
[50076360]{rtl140.bpl } Classes.StdWndProc (Line 13014, "Classes.pas" + 8) + $0
[502C8464]{vcl140.bpl } Forms.TApplication.IsKeyMsg (Line 9687, "Forms.pas" + 25) + $12
[502C84F2]{vcl140.bpl } Forms.TApplication.IsHintMsg (Line 9707, "Forms.pas" + 2) + $10
[502C8725]{vcl140.bpl } Forms.TApplication.ProcessMessage (Line 9778, "Forms.pas" + 24) + $32
[502C878E]{vcl140.bpl } Forms.TApplication.HandleMessage (Line 9814, "Forms.pas" + 1) + $4
[502C8AB9]{vcl140.bpl } Forms.TApplication.Run (Line 9951, "Forms.pas" + 26) + $3
[0043094A]{bds.exe    } bds.bds (Line 200, "" + 8) + $12FFB
Nachdem das Programm dann beendet wird ist Tabelle dann im Formular nicht mehr aktiv...

Hat irgendeiner eine Idee, was da schief läuft? Bin am Verzweifeln. Habe keine Idee mehr wo ich noch suchen soll.

Wäre für jeden Tipp dankbar.

Alex
Man sollte nie so viel zu tun haben, dass man zum Nachdenken keine Zeit mehr hat. (G.C. Lichtenberg)
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#2

Re: Probleme mit Initialisierung (Fehlende Connection)

  Alt 6. Dez 2009, 13:20
Hallo,

Zitat:
Die Meldung kommt bereits bevor(!) die erste Programmzeile des Hauptprogramms ausgeführt wird.
setze mal die Connection erst zur Laufzeit auf True nachdem alle Properties eingetragen sind welche für die Connection relevant sind.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Probleme mit Initialisierung (Fehlende Connection)

  Alt 6. Dez 2009, 14:56
Hallo,


was wird zuerst erzeugt, das DataModul oder dein Main-Form ?
Stell mal ne angespeckte Version hier rein.


Heiko
Heiko
  Mit Zitat antworten Zitat
BigAl

Registriert seit: 6. Sep 2008
Ort: Kehl
504 Beiträge
 
Delphi 12 Athens
 
#4

Re: Probleme mit Initialisierung (Fehlende Connection)

  Alt 6. Dez 2009, 16:23
Zitat von hoika:
Hallo,


was wird zuerst erzeugt, das DataModul oder dein Main-Form ?
Stell mal ne angespeckte Version hier rein.


Heiko
Hi,

zuerst wird das Datenmodul erzeugt. Ist aber im Prinzip auch egal, da das betreffende Formular erst zur Laufzeit erzeugt wird und vorher nicht auf die Datenbank zugegriffen wird. Das Problem tritt ja bereits auf, ehe das "begin" der Projektdatei aufgerufen wird... Alleine die Tatsache, dass die Anwendung zum Start auf das Formular zugreift ist schon grass - und dass dann noch die Eigenschaften in der IDE geändert werden (Table.Active = False) ist obergrass.

Bin dem Ganzen auf jeden Fall wieder ein Stückchen näher gerückt. Ich kann schon soviel sagen, dass es kein Fehler der Datenbankkomponenten sondern ein Fehler der IDE ist. Bin mittlerweile - fragt mich bitte nicht wie - bei den Dateien *.local angekommen. Da ist der Wurm drin. Sobald ich die Endlösung habe mehr...

Alex
Man sollte nie so viel zu tun haben, dass man zum Nachdenken keine Zeit mehr hat. (G.C. Lichtenberg)
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Probleme mit Initialisierung (Fehlende Connection)

  Alt 6. Dez 2009, 18:14
Bei ALLEN Datenbankkomponenten muss das Property Active im Objektinspektor auf False gesetzt werden!
Wenn man das nicht beachtet, passieren seltsame Dinge.
Mal angenommen auf einem Form wäre eine ADOQuery mit Active=True.
Sobald dieses Formular erzeugt wird, entsteht eine Kettenreaktion:
Die Query braucht eine Connection. Sie kann auch auf einem Datenmodul liegen.
Ist diese Connection geschlossen, wird sie automatisch geöffnet und umgeht so
möglicherweise deinen Code in dem du den ConnectionString setzt.
Ist das Datenmodul noch nicht vorhanden, dann gibt es eine Meldung weil auf die
Connection nicht zugegriffen werden kann.
All das passiert noch vor dem OnCreate-Event.
fork me on Github
  Mit Zitat antworten Zitat
BigAl

Registriert seit: 6. Sep 2008
Ort: Kehl
504 Beiträge
 
Delphi 12 Athens
 
#6

Re: Probleme mit Initialisierung (Fehlende Connection)

  Alt 6. Dez 2009, 18:37
Zitat von sx2008:
Bei ALLEN Datenbankkomponenten muss das Property Active im Objektinspektor auf False gesetzt werden!
Wenn man das nicht beachtet, passieren seltsame Dinge.
Mal angenommen auf einem Form wäre eine ADOQuery mit Active=True.
Sobald dieses Formular erzeugt wird, entsteht eine Kettenreaktion:
Die Query braucht eine Connection. Sie kann auch auf einem Datenmodul liegen.
Ist diese Connection geschlossen, wird sie automatisch geöffnet und umgeht so
möglicherweise deinen Code in dem du den ConnectionString setzt.
Ist das Datenmodul noch nicht vorhanden, dann gibt es eine Meldung weil auf die
Connection nicht zugegriffen werden kann.
All das passiert noch vor dem OnCreate-Event.
Hi sx2008,

ich arbeite seit Delphi 1 (!) mit derartigen Komponenten. Dem was Du schreibst kann ich nicht ganz zustimmen. Was da passiert (ich habe es mittlerweile gelöst) hat nichts mehr mit dem eigentlichen Programm zu tun. Wer da reinspuckt ist die IDE. Den Initialisierungsablauf vom Programm habe ich im Griff (Reihenfolge und Zeitpunkte der Initialisierungen). Wäre ja auch ein ziemlicher Blödsinn, wenn man jedesmal nach dem Öfnnen einer Tabelle oder einer sonstigen Datenverbindung wieder die Connection suchen müsste und die dann schließt, ehe man das Programm startet. Wäre mir persönlich sehr unangenehm und nicht im Sinne von RAD.

Kurzum: Das Problem hängt mit den Projektgruppen der IDE zusammen. Es tritt dann auf, wenn man eine Gruppe definiert hat und dann Abhängigkeiten (Projekt->Abhängigkeiten) definiert. Ich habe fälschlicherweise angenommen, dass die Projektgruppen bei Delphi 2010 endlich mal korrekt funktionieren. Sobald man die Abhängigkeiten wieder deaktiviert läuft alles bestens. Warum das Ganze so Problem bereitet ist mir nach wie vor ein Rätsel. Fakt ist: Die IDE hat am Code herumgefummelt ehe das eigentliche Programm (die EXE) überhaupt gestartet wurde...

Gruß
Alex
Man sollte nie so viel zu tun haben, dass man zum Nachdenken keine Zeit mehr hat. (G.C. Lichtenberg)
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Probleme mit Initialisierung (Fehlende Connection)

  Alt 6. Dez 2009, 20:30
Zitat von BigAl:
Wäre ja auch ein ziemlicher Blödsinn, wenn man jedesmal nach dem Öfnnen einer Tabelle oder einer sonstigen Datenverbindung wieder die Connection suchen müsste und die dann schließt, ehe man das Programm startet. Wäre mir persönlich sehr unangenehm und nicht im Sinne von RAD.
Das ist aber genau das Verhalten, das die ADO-Komponenten in D5,D6, D7 und D2007 haben.
Aktiviert man zur Entwicklungszeit eine ADOQuery, wird auch die ADOConnection aktiv und dies bleibt auch so wenn man das Property Connected nicht im OI von Hand zurücksetzt.
Und mir ist das auch unangenehm (bzw. es nervt gewaltig), denn wenn man nicht aufpasst bekommt man ein Programm, dass nur auf dem Entwicklungsrechner fehlerfrei startet.
fork me on Github
  Mit Zitat antworten Zitat
BigAl

Registriert seit: 6. Sep 2008
Ort: Kehl
504 Beiträge
 
Delphi 12 Athens
 
#8

Re: Probleme mit Initialisierung (Fehlende Connection)

  Alt 6. Dez 2009, 23:58
Wäre schön, wenn man ein auf ein Property (z.B. Active) programmtechnisch beim Start Einfluss nehmen könnte. Also z.B. innerhalb der IDE ist das Teil "True", wird aber beim Start mit "False" initialisiert. Wäre sicher für die Compiler-Bauer keine so riesige Sache bzw. müsste wohl eher mit TPersistent zu tun haben. Hmm... Evtl. könnte man ja eine Komponente von TConnection etc. ableiten und dann da was verbiegen... Muss ich morgen mal testen. Ist jetzt a bisserl spät

Alex
Man sollte nie so viel zu tun haben, dass man zum Nachdenken keine Zeit mehr hat. (G.C. Lichtenberg)
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#9

Re: Probleme mit Initialisierung (Fehlende Connection)

  Alt 7. Dez 2009, 08:16
Hallo,

manche Komponenten haben genauso was schon drin (CloseAtRunTime),
die Original-Ado's aber leider nicht.


Heiko
Heiko
  Mit Zitat antworten Zitat
BigAl

Registriert seit: 6. Sep 2008
Ort: Kehl
504 Beiträge
 
Delphi 12 Athens
 
#10

Re: Probleme mit Initialisierung (Fehlende Connection)

  Alt 7. Dez 2009, 09:34
Zitat von hoika:
Hallo,

manche Komponenten haben genauso was schon drin (CloseAtRunTime),
die Original-Ado's aber leider nicht.


Heiko
Danke für den Tipp . Schaue ich mir mal an...

Alex
Man sollte nie so viel zu tun haben, dass man zum Nachdenken keine Zeit mehr hat. (G.C. Lichtenberg)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:35 Uhr.
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