Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Access Violation
#1
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
Muharrem ARSLAN
Cevapla
#2
Merhaba,
con_S dizisini nerede ve ne tipte tanımladınız? Kullanmadan önce bu dizi boyutunu set ettiniz mi?
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#3
 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.
Muharrem ARSLAN
Cevapla
#4
con_S[i].Server içindeki server nesnelerinden biri ya da birkaçı nil  sanırım.
WWW
Cevapla
#5
hayir hepsi dolu
Muharrem ARSLAN
Cevapla
#6
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.
WWW
Cevapla
#7
(12-06-2019, Saat: 14:42)arsl01 Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
 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.
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#8
@Fesih ARSLAN hocam attigim kod blogunda zatem belirledim
Muharrem ARSLAN
Cevapla
#9
(12-06-2019, Saat: 14:57)arsl01 Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.@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.
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#10
aynen hocam bende ona bakiyordum bir tane nil varmis onu duzelttim duzeldi tesekkurler
Muharrem ARSLAN
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Rio External Storage Access Denied mcuyan 13 1.072 11-12-2018, Saat: 13:29
Son Yorum: mcuyan
  Program kapanırken access violation veriyor TDeveloper 7 1.300 12-08-2018, Saat: 14:58
Son Yorum: yhackup



Konuyu Okuyanlar: 1 Ziyaretçi