Delphi Can

Orjinalini görmek için tıklayınız: Access Violation
Şu anda (Arşiv) modunu görüntülemektesiniz. Orjinal Sürümü Görüntüle internal link
Sayfalar: 1 2
merhaba iyi gunler assagideki kod satirinda ** ile baslayan kodu ekleyince yani ini.dosyasindan veri cekince access violation hatasi aliyorum sorun nedir?
procedure TForm1.FormShow(Sender: TObject);
var
iniServer,iniAd:string;
ini1 : TINIFile;
i:integer;
begin
 ini1 := TINIFile.Create(TPath.Combine(TPath.GetDocumentsPath ,'SETTINGS.INI'));
 iniServer:= ini1.readString('DOKTOR','SERVER', '');
 iniAd:=ini1.ReadString('DOKTOR','SERVER','');
 initc:=ini1.readString('DOKTOR','TC','');
 ini1.Free;

  if (iniServer='')or(iniAd='')or (initc='') then
  begin
    ShowMessage('Sunucu Ayarları Eksik Lütfen Doldurun');
    ayarlartab_slide.ExecuteTarget(self);
    exit;
  end;

  SetLength(con_S,2);
  SetLength(Qry_S,2);
  for I := 0 to Length(con_S)-1 do
  Begin
       ini1 := TINIFile.Create(TPath.Combine(TPath.GetDocumentsPath ,'SETTINGS.INI'));
   /
******     con_S[i].Server:=ini1.readString('DOKTOR'+i.ToString,'SERVER', '');
  
  End; 
JV702B.png
Merhaba,
con_S dizisini nerede ve ne tipte tanımladınız? Kullanmadan önce bu dizi boyutunu set ettiniz mi?
 private
  con_S: array of  TUniConnection;
 Qry_S: array of TUniQuery;
   { Private declarations }
 public
   { Public declarations }


tanimladigim yer burasi ve kullanmadan once set ettim android ve win64 te calistirinca hata yok ama win32de hata veriyor.
con_S[i].Server içindeki server nesnelerinden biri ya da birkaçı nil  sanırım.
hayir hepsi dolu
con_S[i] := TUniConnection.Create; şeklinde dizinin her bir elemani için bi tane uniConnection oluşturdunuz mu?

her bir eleman için uniConnection varsa hata vermemesi lazım.
(12-06-2019, Saat: 14:42)arsl01 Adlı Kullanıcıdan Alıntı: [ -> ]
 private
  con_S: array of  TUniConnection;
 Qry_S: array of TUniQuery;
   { Private declarations }
 public
   { Public declarations }


tanimladigim yer burasi ve kullanmadan once set ettim android ve win64 te calistirinca hata yok ama win32de hata veriyor.

Bu tanımlamaya göre, con_S ve Qry_S dizisini kullanmadan önce SetLength metodu ile boyutunu belirlemeniz gerekiyor.
@"Fesih ARSLAN" hocam attigim kod blogunda zatem belirledim
(12-06-2019, Saat: 14:57)arsl01 Adlı Kullanıcıdan Alıntı: [ -> ]@"Fesih ARSLAN"  hocam attigim kod blogunda zatem belirledim

Pardon, o satır gözümden kaçmış. 
Hata veren satıra bir kesme işareti (Break Point) yerleştirin ve debug durumunda iken con_S[i] değişkeninin ilgili dizisinin nil olup olmadığına bakın. 
Nil ise @sadettinpolat beyin belirttiği tanımlamayı yapın.
aynen hocam bende ona bakiyordum bir tane nil varmis onu duzelttim duzeldi tesekkurler
Sayfalar: 1 2