| 
					
							
        
    
        
						
			 | 
			
			
					    
					
        
         
          
         
	
            | 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
            
              |   |   
            
        
 
    
 
					
					 
			 | 
			
				
        
			 |