Erdal,
Isi bastan alsak. Anladigim sen herhangi bir yerden bir form cagirip, orada bir tarih yazmak ve o tarihi cagirdigin yerde kullanmak istiyorsun. Kabaca :
Bir form calistir ve o formda tarih al
ldTarih diye lokal bir degisken yarat
Aldigin tarih degerini ldTarih'e koy
Benim anladigim bu. Simdi gostermeye calisacagim teknik normalde VFP dokumanlarinin gosterdigi bir teknik degil ama cok daha efektif bence (neden dersen o formdan yalnizca bir degil istersen yuzlerce degeri almani sagliyor, hatta daha da ucuk davranip komple database bile alabilirsin).
1) Once bir form yarat. Yarattigin formlarda ve diger objelerde duzgun bir isim vermeyi adet edin. Formun name propertysine frmGetTarih yaz mesela.
2) Bir adet textbox ekle, adini txtTarih yap. Value propertysine {} koy (o zaman VFP otomatikman orada yalnizca tarih girilmesine izin verir).
3) Formun ControlBox'ini .F. olarak ayarla. (Min, Max vs'ye ihtiyacimiz yok)
WindowType: 1 - Modal (bu formun beklemesini sagliyor)
ShowWindow: 1 - In top level (bunu yapmak zorunda degilsin ama yaparsan bu formun kullanim alani genisler)
4) Formu kapatmak icin bir buton ekle ( "Tamam" butonu ). Buton'un click kodunu su sekilde yaz:
(Bu onemli ve bizim yaptigimiz numaranin kalbi - Release degil Hide - ya da thisform.Visible = .F.).
Bundan sonra baska seyler ile susleyebilirsin.
Bu form hazir. Sakla (TarihAl.scx oldugunu farzediyorum asagida).
Simdi test koduna gelelim (ki kod ister bir formun buton.click kodu olsun ister bir prg'nin parcasi, ayni):
Visual Fox Pro
local loTarihForm
do form TarihAl name loTarihForm
* Kod bu satir ve sonrakileri calistirmak icin formun goruntuden kalkmasini bekler - (modal form)
* Yani form Release ya da Hide veya Visible=.F. durumlarindan birisi gerceklestiginde buradan devam edecek
* Biz thisform.Hide() kullandigimizdan form hala hafizada ve biz onu yukarida name loTarihForm diye baslattigimizdan
* loTarihForm degiskeni o formun referansi.
local ldTarih
ldTarih = loTarihForm.txtTarih.Value && formda txtTarih'e girilen degeri al
* Formla isimiz bitti
loTarihForm.Release() && formu release et
release loTarihFOrm && degiskeni release et - sadece bunu kullansak da olabilirdi
Bu kadar. Bu teknige kendini alistirirsan, bir form ile mesela raporlama icin, baslangic, bitis tarihleri, secim kriterleri gibi seyleri rahatlikla alabilirsin.