De titel is een beetje cryptisch, maar soit.
Ik heb een eigengemaakt database component, welke als properties 'database' en 'transaction' heeft (resp TIBDatabase en TIBTransaction).
Deze heeft ook een property 'active'. Zodra deze naar true gezet wordt, controleert hij of de database en transaction assigned zijn en of de database verbinding heeft. Zo ja, dan haalt hij z'n dataset op om weer te geven.
Dit werkt allemaal prima zodra ik designtime of runtime active van 'false' naar 'true' zet, doet hij het perfect.
Het enige wat hij niet goed doet.. als ik 'm designtime op active laat staan, en dan de applicatie run, is er geen dataset. Zelfde geldt als ik 'm designtime op active laat staan en dan opsla, sluit en weer laad.
Hoewel dit niet echt cruciaal is, wil ik dit toch goed hebben. Als ik 'm designtime active laat staan, moet hij ook bij runnen de data laten zien, of bij opnieuw laden.
Met een beetje steppen kwam er achter dat in eerste instantie de property 'active' geladen werd voordat hij de property 'database' en 'transaction' geladen had. Dit heb ik opgelost door de Twincontrol.loaded te overriden, en 'm daar te laten kijken wat z'n status is. Indien active --> weergeven dataset.
Dit werkt echter niet. Het blijkt dat op het moment dat hij die loaded krijgt, de database nog niet connected is. Als het form helemaal klaar is met laden, is hij dat uiteraard wel.
Hoe krijg ik dit nu voor elkaar? De volgende twee zaken zijn geen opties:
1) form.loaded, form.onshow, enzovoort. Het moet in de class zelf geregeld worden
2) database.onlogin, database.onconnect, etc. éen database kan meerdere componenten aan zich hebben hangen
Kort.. delphi laadt eerst mijn component helemaal in (bij runnen of bij inladen in IDE) en zet dan pas de database naar connected. Hoe draai ik dit om?
Ik heb een eigengemaakt database component, welke als properties 'database' en 'transaction' heeft (resp TIBDatabase en TIBTransaction).
Deze heeft ook een property 'active'. Zodra deze naar true gezet wordt, controleert hij of de database en transaction assigned zijn en of de database verbinding heeft. Zo ja, dan haalt hij z'n dataset op om weer te geven.
Dit werkt allemaal prima zodra ik designtime of runtime active van 'false' naar 'true' zet, doet hij het perfect.
Het enige wat hij niet goed doet.. als ik 'm designtime op active laat staan, en dan de applicatie run, is er geen dataset. Zelfde geldt als ik 'm designtime op active laat staan en dan opsla, sluit en weer laad.
Hoewel dit niet echt cruciaal is, wil ik dit toch goed hebben. Als ik 'm designtime active laat staan, moet hij ook bij runnen de data laten zien, of bij opnieuw laden.
Met een beetje steppen kwam er achter dat in eerste instantie de property 'active' geladen werd voordat hij de property 'database' en 'transaction' geladen had. Dit heb ik opgelost door de Twincontrol.loaded te overriden, en 'm daar te laten kijken wat z'n status is. Indien active --> weergeven dataset.
Dit werkt echter niet. Het blijkt dat op het moment dat hij die loaded krijgt, de database nog niet connected is. Als het form helemaal klaar is met laden, is hij dat uiteraard wel.
Hoe krijg ik dit nu voor elkaar? De volgende twee zaken zijn geen opties:
1) form.loaded, form.onshow, enzovoort. Het moet in de class zelf geregeld worden
2) database.onlogin, database.onconnect, etc. éen database kan meerdere componenten aan zich hebben hangen
Kort.. delphi laadt eerst mijn component helemaal in (bij runnen of bij inladen in IDE) en zet dan pas de database naar connected. Hoe draai ik dit om?