Çalışma zamanı formda yapılan değişiklikleri kaydetmek
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 14
- Kayıt: 02 Oca 2008 04:55
- Konum: İstanbul
Çalışma zamanı formda yapılan değişiklikleri kaydetmek
Bir form tasarladınız ve üzerinde edit, combobox, stringgrid, richedit vb. bileşenler olsun. Kullanıcı bu formda yer alan bilgileri doldurduktan sonra , daha sonra açmak üzere formu bu bilgilerle nasıl kaydedebilir. Buradaki bilgileri bir text dosyasına yazmak değil de, örneğin programın logosu ve forma verdiğiniz adla birlikte, bir exe dosyası gibi kaydetme işlemi nasıl yapılır (yani kullanıcı programa girip sonra kaydettiği yerden dosya bilgilerini çağırmak yerine, kaydettiği formu tıkladığında form kaydedilen veriler ile birlikte açılsın). İlgilenen herkese şimdiden teşekkürler.
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Burada dinamik olarak yapılan bir tasarım söz konusu olduğundan tasarımı .exe ye kayıt etmemek gerekir. Zaten programcı tasarımları da .exe içine kayıt edilmektedir. Nasıl bir tasarım nasıl bir program ve kayıt yapısı söz konusu bilmem ama şu makaleye bir göz atılmasında fayda var diye düşünüyorum.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
-
- Üye
- Mesajlar: 360
- Kayıt: 10 Nis 2006 09:07
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
-
- Üye
- Mesajlar: 14
- Kayıt: 02 Oca 2008 04:55
- Konum: İstanbul
Arkadaşlar, öncelikle gösterdiğiniz ilgiye teşekkür etmek istedim. Yaklaşık 6-7 aydır Delphi ile uğraşıyorum. Çalışma zamanı formu kaydetmekten ne demek istediğimi tam anlatabilmek için somut örnek vermem gerektiğini düşündüm. Örneğin word veya excel dosyası yaptıktan sonra, programdan Save veya Save As şeklinde ve bunlara isim vererek ayrı birer dosya olarak kaydedebiliyoruz. Bunları açmak için tıklandığında ise önce word veya excel açılıyor ve sonra bu bilgiler geri geliyor. Veya başka bir örnek vereyim. Mesela bir form üzerinde Adı-Soyadı, Doğum Tarihi, Mesleği, Yaptığı ödemeler vb. edit, combobox, richedit alanları olduğunu düşünelim. Kullanıcı programı çalıştırdı ve bilgileri girdi. Programda save düğmesine bastı ve bunu bir klasöre Ahmet diye kaydetti. İkinci kayıdı da Mehmet diye kaydetti vb. Bu kayıtlar aynı word, excel'deki veya benzer programlardaki gibi nasıl yapılmalı. Save butonu altındaki ve Load butonu altındaki kod nasıl düşünülmeli. Kaydedilen Ahmet ve Mehmet'i tıklayınca, program kaydedilen veriler ile nasıl açılabilir. Bunu şu şekilde halledebiliriz; verileri bir text veya data dosyasına bir prosedür ile kaydedip okutabiliriz. Ancak okuma işlemi için önce ana programı çalıştırmak, sonra bu program içinden Aç komutu ile dosyanın yerini göstermek vb. işlemler gerekir. Benim istediği kayıtların bulunduğu klasöre giderek kaydettiğim dosyaya tıklayayım ve program bu kayıttaki verilerle açılsın. Belki yanıt çok basittir ama bulamayınca insan deliriyor.
2 ana aşamada işlem gerçekleştirilebilir.
1.si dosyaya verilerin nasıl yazılacağı
2.si dosyaya belirli bir uzantı verip bu uzantının sizin programınıza ait olduğunun windows a kaydettirilmesi
ben kendime ufak bi müzik çalar programı yapmıştım. müzik listesini aslında ini olan ama uzantısını farklı verdiğim bir dosyaya kaydettim. okuma yazma işlemleri ini yapısıyla kolayca halloluyordu.
bu uzantı için de programımı windowsa kayıt ettirdim. hatta ikon tasarlayıp onu da exe ye gömdüm ve dosya ikonu olarak onu kaydettim windowsa.
özetle dosya belirli bir formatta istenilen uzantıda kaydedilir, uzantı ve program windowsa kayıt edilir.
ini size uygunsa yazıp okuma (save-load) işlemleri için ini ye yazma ve okumaya bakabilirsiniz.
isterseniz text bazlı her satırda bir veri olacak şekilde yazar ona göre okursunuz.yok ben verimin direk olarak görünmesini istemem dersenz (text ve ini uzantısı farklı da olsa ntepadde falan açılacağından) binary yazar okursunuz. seçm size kalmış
1.si dosyaya verilerin nasıl yazılacağı
2.si dosyaya belirli bir uzantı verip bu uzantının sizin programınıza ait olduğunun windows a kaydettirilmesi
ben kendime ufak bi müzik çalar programı yapmıştım. müzik listesini aslında ini olan ama uzantısını farklı verdiğim bir dosyaya kaydettim. okuma yazma işlemleri ini yapısıyla kolayca halloluyordu.
bu uzantı için de programımı windowsa kayıt ettirdim. hatta ikon tasarlayıp onu da exe ye gömdüm ve dosya ikonu olarak onu kaydettim windowsa.
özetle dosya belirli bir formatta istenilen uzantıda kaydedilir, uzantı ve program windowsa kayıt edilir.
ini size uygunsa yazıp okuma (save-load) işlemleri için ini ye yazma ve okumaya bakabilirsiniz.
isterseniz text bazlı her satırda bir veri olacak şekilde yazar ona göre okursunuz.yok ben verimin direk olarak görünmesini istemem dersenz (text ve ini uzantısı farklı da olsa ntepadde falan açılacağından) binary yazar okursunuz. seçm size kalmış
Mesela bir form üzerinde Adı-Soyadı, Doğum Tarihi, Mesleği, Yaptığı ödemeler vb. edit, combobox, richedit alanları olduğunu düşünelim. Kullanıcı programı çalıştırdı ve bilgileri girdi.
benim bu cümleden anladığım normal bi veritabanı işlemi @sabanakman hocamın dediği gibi bir kitap alırsan (zirvedeki beyinler hariç) işini görcektir..
yada burda arama kısmını kullanırsan da istediğin bir çok bilgiye ulaşabilirsin ...
Kolay Gelsin ...
amatör küme programcı 

-
- Üye
- Mesajlar: 14
- Kayıt: 02 Oca 2008 04:55
- Konum: İstanbul
İşlem veritabanı işlemi değil. Veritabanı ile de bu kolayca yapılabilir ancak benim istediğim bu değil. unicorn64 doğru yöne yönlenmiş. İstediğim sanırım bu, sadece text veya ini dosyasına değil de, içeriği görünmeyecek ve program logosunu gösterecek şekilde olsun istiyorum. Bu şekilde kaydetme ve okum işlemini biraz daha açarsanız ve dosya yükleme okuma procedure veya fonksiyon örnekleri verebilirseniz çok sevinirim. Windows'a kendi programımız nasıl tanıtılır ve unicorn64'ün dediği gibi işlemler nasıl yapılır. Bu konuyla her arkadaşın eninde sonunda uğraşacağını bildiğimden diğer arkadaşlara da çok faydası olur diye düşünüyorum.
forumda biraz daha arama yaparsan aslında kendinde bulabilirsin.
belirttiğin uzantıyı belirttiğin program için kaydetme:
kullanımı
kullanıma dikkat edersen ben direk exe yolunu verdim. bu mesela program files da kurulmuş olan bi program için doğrudur ancak exe yolu değişirse sıkıntı olacktır ona dikkat et.
binary okuma yazmayla ilgili de forumda bi arama yap. şuan biraz yoğunum 5 dk sigara molasında yazıorum bu mesajı da...
belirttiğin uzantıyı belirttiğin program için kaydetme:
Kod: Tümünü seç
procedure RegisterExtension(const sExt, sDesc, AppPath: string);
begin
with TRegistry.Create do
try
RootKey := HKEY_CLASSES_ROOT;
if OpenKey(sExt, True) then begin
WriteString('', sDesc);
CloseKey;
end;
if OpenKey('\' + sDesc, True) then begin
WriteString('', sDesc);
CloseKey;
end;
if OpenKey('DefaultIcon', True) then begin
WriteString('', AppPath + ',' + IntToStr(0));
CloseKey;
end;
if OpenKey('\' + sDesc + '\Shell\Open\Command', True) then begin
WriteString('', '"' + AppPath + '" "%1"');
CloseKey;
end;
finally
Free;
end;
end;
Kod: Tümünü seç
RegisterExtension('.bmc', 'Boncuk Müzik Çalar, Application.ExeName);
binary okuma yazmayla ilgili de forumda bi arama yap. şuan biraz yoğunum 5 dk sigara molasında yazıorum bu mesajı da...