TiniFile ve Tstrings

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
MakPRO
Üye
Mesajlar: 251
Kayıt: 31 Eki 2003 05:21
Konum: Antalya
İletişim:

TiniFile ve Tstrings

Mesaj gönderen MakPRO »

mrb.
aşağıdaki kodda bir comba box ın stringine ini filedan bilgi alabiliyorken kendi tanımladığım stringliste inifiledan bilgi aktarmak istediğimde farklı farklı hatalar alıyorum. yardım pls.

benimlisteme bilgiyi aktaramıyorum .

Kod: Tümünü seç

procedure DB_Param_Read;
var
  MyIniFile: TIniFile;
  Mine_DB:TDB_Info;
  benimlistem:TStrings;
  begin

  MyIniFile := TIniFile.Create('C:\usr\MakPRO\dbxconnections.ini');
  loginscr.firmname.Items.Clear;
//  MyIniFile.ReadSections(loginscr.firmname.Items);
  MyIniFile.ReadSections(benimlistem);
  MyIniFile.Free;

end;
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

merhaba;
TStrings yerine TStringList kullanırsan sorun kalmayacaktır.
çünkü TCombobox ın items i bir TStringList tir.
iyi çalışmalar.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
MakPRO
Üye
Mesajlar: 251
Kayıt: 31 Eki 2003 05:21
Konum: Antalya
İletişim:

Mesaj gönderen MakPRO »

TStringList te de aynı hataları veriyor. Ayrıca Combobox.items TStrings görünüyor. şöyleki

Kod: Tümünü seç

benimlistem:=firmname.Items;
yapınca sorun yok aktarıyor . ama inifiledan aktarmayapınca hata veriyor.

Kod: Tümünü seç

MyIniFile.ReadSections(benimlistem); 
bu kodda hata veriyor
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

TStrings sınıfı bircok sınıf icin taban sınıf niteliginde
yalın hali ile kullanılamaz, eger bir bilesen gelistiriyor iseniz bilesene dahil edip ilk basta sadece tanım iceren (Add gibi) metodlarını ezerek kendi metodlarınızı yazarsınız.
Bunun yerine TStringListi gonulrahatlıgı ile kullanabilirsiniz.hicbir sorun cıkartmaz.Bir de hatayı yazarsanız ne olduguna dair tahmin yapmak zorunda kalmayız.
ÜŞENME,ERTELEME,VAZGEÇME
t-hex
Kıdemli Üye
Mesajlar: 531
Kayıt: 18 Mar 2005 02:45
Konum: İstanbul/Antalya
İletişim:

Mesaj gönderen t-hex »

Merhaba,

Kod: Tümünü seç

procedure DB_Param_Read;
var
  MyIniFile: TIniFile;
  Mine_DB:TDB_Info;
  benimlistem:TStrings;
  begin
  benimlistem := TStringlist.Create;
  MyIniFile := TIniFile.Create('C:\usr\MakPRO\dbxconnections.ini');
  loginscr.firmname.Items.Clear;
//  MyIniFile.ReadSections(loginscr.firmname.Items);
  MyIniFile.ReadSections(benimlistem);
  MyIniFile.Free;
  benimlistem.free;
end; 
kodunuzu bu şekilde değiştirirseniz sorun çözülür. benimlistem objesi daha yaratılmadığı için hata alıyorsunuz.

Kod: Tümünü seç

benimlistem:=firmname.Items;
hata vermiyor çünkü sadece pointer ataması yapılıyor.
Kullanıcı avatarı
MakPRO
Üye
Mesajlar: 251
Kayıt: 31 Eki 2003 05:21
Konum: Antalya
İletişim:

Mesaj gönderen MakPRO »

en kısa zamanda kodu deniycem . pazartesi günü durum bilgisi veririm. ilginiz için teşekkürler
Kullanıcı avatarı
MakPRO
Üye
Mesajlar: 251
Kayıt: 31 Eki 2003 05:21
Konum: Antalya
İletişim:

Mesaj gönderen MakPRO »

yardımcı olmaya çalışan tüm arkadaşlara teşekkür ederim t-hex 'in dediği gibi uygulandığı zaman oluyor. Ama benim bir sorum daha olacak sorun şu

Kod: Tümünü seç

Type
  TUsers_Set = class

  private

  User_Pass     : String [32];

  public

  User_Name     : String [20];
  User_Nick     : String [30];
  User_Tables   : TStrings;
  User_Rights   : TStrings;

end;
burdaki tanımlamaya göre

Kod: Tümünü seç

var
Users     : TUsers_Set;


Users       := TUsers_Set.Create;
Users.Free;




fakat burdaki işlemleri yapınca User_Tables : TStrings;
User_Rights : TStrings;

bu değerleri yaratmıyor . bunları
Users := TUsers_Set.Create;

işlemi ile nasıl create ettirmem gerekiyor ?
t-hex
Kıdemli Üye
Mesajlar: 531
Kayıt: 18 Mar 2005 02:45
Konum: İstanbul/Antalya
İletişim:

Mesaj gönderen t-hex »

Kod: Tümünü seç

Type
  TUsers_Set = class

  private

  User_Pass     : String [32];

  public
  User_Name     : String [20];
  User_Nick     : String [30];
  User_Tables   : TStrings;
  User_Rights   : TStrings;
  constructor Create;
  destructor Destroy;
end; 

constructor TUser_Set.Create;
begin
   User_Tables := TStringList.Create;
   User_Rights := TStringList.Create;
end;
destructor Destroy;
begin
  User_Tables.Free;
  User_Rights.Free;
end;
constructor ve destructor içine yazman lazım o kodları..
constructor obje oluşturulurken çalışır, destructor işe yok edilirken çalışır
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

TUsers_Set sınıfına bir constructor ve destructor ekleyeceksin

public altına

Kod: Tümünü seç

    constructor Create; 
    destructor Destroy;
gibi

Create icinde TStrings tipinde olanları Create, Destroy icinde de Free etmelisin.
ÜŞENME,ERTELEME,VAZGEÇME
Kullanıcı avatarı
MakPRO
Üye
Mesajlar: 251
Kayıt: 31 Eki 2003 05:21
Konum: Antalya
İletişim:

Mesaj gönderen MakPRO »

hızır acil servis gibisiniz arkadaşlar teşekkür ederim hemen uyguluyorum :)
Cevapla