registrye veritabanı yolu kaydı ve regsitry den kayıt okuma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
sarp_halit
Üye
Mesajlar: 241
Kayıt: 17 Ara 2003 04:30
Konum: Cennet Fethiye
İletişim:

registrye veritabanı yolu kaydı ve regsitry den kayıt okuma

Mesaj gönderen sarp_halit »

Merhaba arkadaşlar kolay gelsin. ben veritabanını ayrı bir sunucuda barındırıp programı birden fazla bilgisayarda kullanmak istiyorum ama veritabanının yolunu windowsun kayıt defterine kaydetmek istiyorum. tabi bunu kurulum esnasında kullanıcı ip numarası olarak girecek. ve program başlarken de bunu kayıt defterinden okuyacak. bunu nasıl yapabilirim. ya da böyle bir şey mümkün mü

şimdiden teşekkür ederim. kolay gelsin iyi çalışmalar.
Fethiye den herkese sevgiler ...
X))@:>
Kullanıcı avatarı
proteknikblg
Üye
Mesajlar: 35
Kayıt: 27 Nis 2006 08:39
Konum: Sivas
İletişim:

Mesaj gönderen proteknikblg »

slm
ben aşağıdaki şekilde bu işlemi yaptırıyorum. şimdilik sorunsuz çalışıyor.
bitbtn1 click te registriye bilgiler giriliyor

Kod: Tümünü seç

procedure TForm1.BitBtn1Click(Sender: TObject);
var kyt:tregistry;
begin
    kyt:=tregistry.Create;
    kyt.RootKey:=HKEY_LOCAL_MACHINE;
    kyt.OpenKey('Software\proteknik\takip',True);
    if not kyt.KeyExists('run') then kyt.CreateKey('run');
    kyt.WriteString('run',edit1.Text);
    if not kyt.KeyExists('vt') then kyt.CreateKey('vt');
    kyt.WriteString('vt',edit2.Text);
    if not kyt.KeyExists('rpt') then kyt.CreateKey('rpt');
    kyt.WriteString('rpt',edit3.Text);
    kyt.CloseKey;
    kyt.Free;
    application.MessageBox('Kayıt tamamlandı','Pro-Teknik',Mb_ok)
end;
program çalıştırıldığındada registry deki bilgiler alınıyor.

Kod: Tümünü seç

procedure TForm1.FormCreate(Sender: TObject);
var kyt:tregistry;
begin
    kyt:=tregistry.Create;
    kyt.RootKey:=HKEY_LOCAL_MACHINE;
    kyt.OpenKey('Software\proteknik\takip',True);
    if not kyt.KeyExists('run') then edit1.Text:='' else
    edit1.Text:= kyt.readString('run');
    if not kyt.KeyExists('vt') then edit2.Text:='' else
    edit2.Text:= kyt.readString('vt');
    if not kyt.KeyExists('rpt') then edit3.Text:='' else
    edit3.Text:= kyt.readString('rpt');
    kyt.CloseKey;
    kyt.Free;
end;
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Mesaj gönderen conari »

Kod: Tümünü seç

function TFrmSrv.register_yaz(yol :string;tip: string;deger:variant):boolean;
var
  reg1 : TRegistry;
begin
  reg1 := Tregistry.create;
  Reg1.RootKey:=HKEY_LOCAL_MACHINE;
  Reg1.OpenKey(yol,True);
  reg1.WriteString(tip,deger);
  result := true;
end;
function TFrmSrv.register_oku(yol:string;deger:string) :string;
var
  reg1 : TRegistry;
begin
  reg1 := Tregistry.create;
  Reg1.RootKey:=HKEY_LOCAL_MACHINE;
  Reg1.OpenKey(yol,True);
  result := reg1.readString(deger);
end;
okumak ve yazmak için bunları kullanıyorum.
Kullanım,

Kod: Tümünü seç

FrmSrv.register_yaz('Software\Sayim','pass',EdPas.text);
 FrmSrv.register_yaz('Software\Sayim','user',EdUser.text);

Kod: Tümünü seç

 EdUser.Text:=register_oku('Software\Sayim','user');
             Cmbsrv.Text:=register_oku('Software\Sayim','Srv');
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3077
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

Eğer Registry şart değilse .ini dosyası da kullanılabilir.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
sarp_halit
Üye
Mesajlar: 241
Kayıt: 17 Ara 2003 04:30
Konum: Cennet Fethiye
İletişim:

Mesaj gönderen sarp_halit »

üstadlar teşekkür ederim. ellerinize sağlık. bilgiler süper. yalnız şöyle bir problem yaşadım. ben bu bilgilerin kontrollerini yani okuma işini program başlatılırken yapıcam. ama tregistry değişkeni tanımladığım zaman problem çıkartıyor. bunu nasıl halledebilirim?

kolay gelsin iyi çalışmalar.
Fethiye den herkese sevgiler ...
X))@:>
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Mesaj gönderen conari »

Değişkeni hangi aşamada tanımlıyorsunuz?
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Mesaj gönderen Battosai »

Bu iş için *ini kullanmanı tavsiye ederim...Manuel erişim ve düzenlemede daha kolay olur...
Kullanıcı avatarı
sarp_halit
Üye
Mesajlar: 241
Kayıt: 17 Ara 2003 04:30
Konum: Cennet Fethiye
İletişim:

Mesaj gönderen sarp_halit »

o sorunu buldum. Uses kısmına Registry i eklemediğimden kaynaklanıyormuş ama yeni bir sorun daha var.
kyt.RootKey:=HKEY_LOCAL_MACHINE;
tanımlamasında
[Error] kapalidevre.dpr(25): Undeclared identifier: 'HKEY_LOCAL_MACHINE'
hatasını alıyorum.

bu arada ben bu işi herhangib bir unit içerisinde değil direkt olarak proje kaynak kodunda yapıyorum. buradan kaynaklanan bir sorun olduğunu düşünüyorsanız main form unitinde de işlemi yaptırabilirim. ancak bu işlem veritabanı bilgilerinin alınması esnasında splash formun çıkması ve o esnada yapılan işlerden kullanıcılarn haberdar edilmesi için.

ilgi ve alakadan ötürü teşekkür ederim. iyi seyirler
Fethiye den herkese sevgiler ...
X))@:>
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Mesaj gönderen conari »

hangi fonksiyonu kullandınız bilmiyorum ama.

Kod: Tümünü seç

var 
  kyt : TRegistry; 
begin 
  kyt := Tregistry.create; 
  kyt.RootKey:=HKEY_LOCAL_MACHINE; 
yani create etmeden atama yapıyo olabilirsin.
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Kullanıcı avatarı
CiTiZEN
Üye
Mesajlar: 1163
Kayıt: 06 Oca 2008 04:15

Mesaj gönderen CiTiZEN »

sistemi regedit üzerine kurmamışsan bende .ini öneririm ilerietip kendi kayıt defterin olarak kullanabilirsin
Kullanıcı avatarı
sarp_halit
Üye
Mesajlar: 241
Kayıt: 17 Ara 2003 04:30
Konum: Cennet Fethiye
İletişim:

Mesaj gönderen sarp_halit »

tamam onu hallettim.
şimdi sizin bana verdiğiniz örneklerde sürekli olarak anahtar yazdırma ve anahtar içerisindeki dize değerini okuma falan var. eğer anahtarın içindeki dize değeri yoksa, hani şu readstring ile içeriğini okuduğumuz dize değerleri, bunun kontrolünü nasıl yaparız.

anahtar için keyexist kullandığımız gibi bir değer var mı?

hocam ini oluşturmak da güzel bir fikir ama ilk aklıma gelen bu oldu ve biraz da inat meselesine dönüştü o yüzden yani.

ama fikriniz için teşekkür ederim.
Fethiye den herkese sevgiler ...
X))@:>
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Mesaj gönderen conari »

Değer yoksa boş döner;

Kod: Tümünü seç

if register_oku('Software\Sayim','user') = '' then
.......
Kontrolünü sağlayabilirsiniz.
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Cevapla