![]() |
Datenbank: Virtual • Version: xx • Zugriff über: UniDac
Keine Daten wenn UniDac TVirtualDataSet in TDataModule
Hallo zusammen,
ich habe ein TVirtualDataSet von UniDac in einem TDataModule definiert und stelle die Daten über TDataSource in einem DBGrid dar. Dem TVirtualDataSet wird eine TObjectList wie folgt zugeordnet.
Delphi-Quellcode:
Das Ganze hat einwandfrei funktioniert, als ich TVirtualDataSet und TDataSource direkt auf dem TForm abgelegt habe. Sobald ich die beiden Komponenten aber in eine DataModule verschiebe, funktioniert es nicht mehr.
type
TSerNr = class private FID: Integer; FSerNr: string; FName: string; public property ID: Integer read FID write FID; property SerNr: string read FSerNr write FSerNr; property Typ: string read FName write FName; constructor Create; destructor Destroy; override; end; TSerNrList = class(TObjectList<TSerNr>) end; procedure TDataModule1.vdsSerNrGetFieldValue(Sender: TObject; Field: TField; RecNo: Integer; out Value: Variant); var SerNr: TSerNr; begin SerNr := TSerNr(SerNrList.Items[RecNo - 1]); case Field.FieldNo of 1: Value := SerNr.ID; 2: Value := SerNr.SerNr; 3: Value := SerNr.Typ; end; end; procedure TDataModule1.vdsSerNrGetRecordCount(Sender: TObject; out Count: Integer); begin Count := SerNrList.Count; end; Die Liste wird korrekt angebunden, d.h. das vdsSerNrGetRecordCount wird aufgerufen und im Grid eine entsprechende Anzahl leerer Zeilen erzeugt. Ein Haltepunkt in vdsSerNrGetFieldValue zeigt aber, dass dieses Event nie aufgerufen wird. Wenn ich TVirtualDataSet und TDataSource wieder ins Form schiebe geht es. Das Vorgehen ist in TForm und TDataModule genau das gleiche
Ich arbeite mit Delphi 10.3.2 und UniDac 7.4.12 Grüße Gerd |
AW: Keine Daten wenn UniDac TVirtualDataSet in TDataModule
In welcher Unit/Klasse ist die Event-Methode deklariert?
|
AW: Keine Daten wenn UniDac TVirtualDataSet in TDataModule
Ganz blöder Fehler: Ohne das geht es natürlich nicht
Delphi-Quellcode:
procedure TDataModule1.DataModuleCreate(Sender: TObject);
begin vdsSerNr.FieldDefs.Add('ID', ftInteger); vdsSerNr.FieldDefs.Add('SerNr', ftString, 20); vdsSerNr.FieldDefs.Add('Typ', ftString, 30); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:27 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