Sayın hocalar ve arkadaşlar ben bir program yaptım regeditide bagladım regedit kodunu butona atadıgımız zaman programı cıftte tıklıyarak acsak bırlıkde ac desekde calsııyor regedıt kaydını yapıyor bıdefa butona basıldıgında yalnız ben butona basılı kalmak ıstemıyorum her program nasıl kurulum sırasın da kendını regedıt yapıyorsa 1 defa bende yapmak ıstedım olmadı timera atadım sureklı dongu oldu form create ye atadım gene sureklı oldu ben bırdefa kayıt yapsın tıklandıgında yada kuruldugunda ıstıyorum regedıt kodunu yazıyorum ben bu kodu nereye yazmam lazımkı normal program gıbı olsun
procedure TForm1.Button1Click(Sender: TObject);
var DosyaTuru:TDosyaTuru;
begin
DosyaTuru.Uzanti:=edit1.Text;
DosyaTuru.UzantiAciklamasi:=Format('%s Arşivi',[DosyaTuru.Uzanti]);
DosyaTuru.SimgeDosyasi:=Format('%s,0',[Application.ExeName]);
DosyaTuru.ProgramAdi:=Application.ExeName;
DosyaTuru.SagTusMenusu:='MenudenAkmanAc';
DosyaTuru.SagTusMenuParam:='/msg';
DosyaTuru.SagTusMenuAciklamasi:='Htn Player İle Aç.';
if DosyaTuruKaydet(DosyaTuru,True) then ShowMessage('Dosya tipi kayıt edildi')
else MessageBox(Handle,'Tür kayıt işlemi yapılamadı','Uyarı',MB_ICONWARNING);
end;
ben buton ıcındekı kodu nereye yazacam lutfen yardım edın
Sorunuz çok anlaşılır değil ama anladığım kadarıyla cevaplayayım:
Eğer sadece 1 kez registry'e yazmak istiyorsanız, yazma işleminden önce, daha önce yazılıp yazılmadığını kontrol edersiniz. Eğer yazılmamışsa yazma işlemini yaparsınız. Bunun için TRegistry'nin KeyExists fonksiyonunu kullanabilirsiniz.
ilginiz için çok teşekkür hocam ama benim sorunum kayıt aratmak değil şöyle anlatayım şimdi yukardaki kod ile benkaydı yaptırıyorum yalnız o kaydı bir defa yaptırmak istiyorum örnegin winamp kmplayer gomplayer bu tarz programlar kurulum sırasında regedite tüm uzantıları kayıt ettiriyolar bu kayıt ettirme otomatik gerçekleşiyor birdefalıgına oda kurulum esnasında ama ben butona baglı kalıyorum bende otomtık kayıt yptırmak ıstıyorum ve bır defalıgına ben bu kodu form create ye kopyaladıgımda sureklı kayıt yapıyor onu yapsın ıstemıyorum ıns anlatabılmısımdır
sorun çözüldü.... aynı kodu bir timer a atadım daha sonra timeri 10000 yptım ve mesajla refreshı kapattım sorunsuz calıstı sımawb cok tesekkuredeırm yardımın ıcın .
alyamus yazdı:sorun çözüldü.... aynı kodu bir timer a atadım daha sonra timeri 10000 yptım ve mesajla refreshı kapattım sorunsuz calıstı sımawb cok tesekkuredeırm yardımın ıcın .
Bu çözüm değil işi savsaklamak... Ya kişi mesajı kapatırsa, olumsuz yanıt verirse v.s. Dolayısıyla programlarını -bu gibi konularda- en az kullanıcı etkileşimli şekilde tasarlamalısın.
Doğru çözüm:
SimaWB yazdı:Eğer sadece 1 kez registry'e yazmak istiyorsanız, yazma işleminden önce, daha önce yazılıp yazılmadığını kontrol edersiniz. Eğer yazılmamışsa yazma işlemini yaparsınız.
Dosyalarınızı kendi bulutunuza yedekleyin. Yandex Disk Eyvallah..