/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
Access violation ved brug af data-modul
Fra : Holger Nielsen


Dato : 29-10-05 14:25

Jeg har lavet to varianet af et testprogram, der i runtime skal indsætte
radioknapper i en DBRadioGroup; teksten takes fra en tabel i en
database. Her følger den centrale kilde:

type
TForm1 = class(TForm)
DBRadioGroupJournals: TDBRadioGroup;
DBGridJournals: TDBGrid;
DataSourceJournals: TDataSource;
ADOConnection1: TADOConnection;
TableJournals: TADOTable;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var i: Integer; J: String;
begin
DBRadioGroupJournals.DataSource:= DataSourceJournals;
DBRadioGroupJournals.DataField:= 'Titel';
TableJournals.First;
for i := 1 to TableJournals.RecordCount do
begin
J:= TableJournals.Fields.Fields[1].AsString;
DBRadioGroupJournals.Items.Add(J);
DBRadioGroupJournals.Values.Add(IntToStr(i));
TableJournals.Next;
end;
DBRadioGroupJournals.ItemIndex:= 0;
end;


Det fungerer udemærket. DBGridJournals er med for at kontrollere
forbindelsen i design-mode.

Men hvis laver en variant af projektet med de tre
dataforbindelseskomponenter anbragt i et datamodul, får jeg en access
violation:

....
uses DataModuleUnit;
{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var i: Integer; J: String;
begin
with DataModule1 do
begin
DBRadioGroupJournals.DataSource:= DataSourceJournals; (* ACCESS
VIOLATION *)
DBRadioGroupJournals.DataField:= 'Titel';
TableJournals.First;
....


Hvis FormCreate kommenteres ud, kører programmet (men der vises
naturligvis intet i radioboksen).

Hvad gør jeg forkert?

Venlig hilsen
Holger Nielsen



 
 
Michael Haase (30-10-2005)
Kommentar
Fra : Michael Haase


Dato : 30-10-05 10:00

Holger Nielsen skrev dette den 29-10-2005 15:24:
[cut]
> Jeg har lavet to varianet af et testprogram, der i runtime skal indsætte
> radioknapper i en DBRadioGroup; teksten takes fra en tabel i en
> database.
>
[cut]
> Det fungerer udemærket. DBGridJournals er med for at kontrollere
> forbindelsen i design-mode.
>
[cut]
> Men hvis laver en variant af projektet med de tre
> dataforbindelseskomponenter anbragt i et datamodul, får jeg en access
> violation:
>
[cut]
>
> Hvis FormCreate kommenteres ud, kører programmet (men der vises
> naturligvis intet i radioboksen).
>
> Hvad gør jeg forkert?
>
Prøv at flytte det som giver problemer fra FormCreate til FormShow.
Det hænder at det kan hjælpe.

--
Michael Haase

Holger Nielsen (30-10-2005)
Kommentar
Fra : Holger Nielsen


Dato : 30-10-05 10:20

Michael Haase wrote:
> Prøv at flytte det som giver problemer fra FormCreate til FormShow.
> Det hænder at det kan hjælpe.
>
Bingo! Det var lige, hvad der skulle til!
Tak for hjælpen.

Holger

Holger Nielsen (30-10-2005)
Kommentar
Fra : Holger Nielsen


Dato : 30-10-05 15:29

Michael Haase wrote:

> Prøv at flytte det som giver problemer fra FormCreate til FormShow.
> Det hænder at det kan hjælpe.
>
Bingo! Det var lige det, der skulle til.
Mange tak for hjælpen!

Holger

Holger Nielsen (30-10-2005)
Kommentar
Fra : Holger Nielsen


Dato : 30-10-05 16:16

Holger Nielsen wrote:

....
> Men hvis laver en variant af projektet med de tre
> dataforbindelseskomponenter anbragt i et datamodul, får jeg en access
> violation:

Tilfældigvis er jeg på "About Delphi" stødt på løsningen: Man skal
ganske enkelt sørge for, at datamodulet indlæses før formen, se
http://delphi.about.com/library/weekly/aa101805a.htm

Holger

Søg
Reklame
Statistik
Spørgsmål : 177458
Tips : 31962
Nyheder : 719565
Indlæg : 6408158
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste