Grid double click

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Mesaj gönderen pro_imaj »

slm_sakal yazdı: Programın açılışında son kayda gitmesini istedim (ibtable1.last;) onun için olabilir mi?
Merhaba,

E hocam ya bu kadar büyük bir hatayı nasıl görmediniz kendiniz belirtiyorsunuz. Yukarıdaki yazınıza tekrar bakınız.

Hocam siz formun açılışında (ibtable1.last;) derseniz hayat boyu söylediğiniz işlemi gerçekleştiremezsiniz tabiki. :D

(ibtable1.last;) bunu kaldırırsanız belirttiğim şekilde olucaktır.


Not:Yukarıdaki şekilde olacaktır, @bLue aLonE hocamın değerli yorumlarınıda değerlendirmenizi isterim.

Saygılarımla.
İyi akşamlar
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Kullanıcı avatarı
slm_sakal
Üye
Mesajlar: 24
Kayıt: 09 Ağu 2005 10:03
Konum: İstanbul
İletişim:

Mesaj gönderen slm_sakal »

Artık gülim mi ağliim mi naapıcaamı bende şaşırdım wallaa. İçinizden küfür etmeyin ama bu yine olmadı. Zaten daha önceki denemelerimde de last komutunu kaldırmıştım. Olmadığını görünce ekledim. Tekrar sildim ve show yaptırdım. Bilin bakalım nooldu? İlk kayıtta duruyor. (Yani hiçbir değişiklik yok :( ) Şimdi @bLue aLonE hocamın verdiği kodu ayarlamaya çalışıyorum.
BeLeSCafe.Net IRC Serverları
irc.belescafe.net - http://www.belescafe.net
Kullanıcı avatarı
slm_sakal
Üye
Mesajlar: 24
Kayıt: 09 Ağu 2005 10:03
Konum: İstanbul
İletişim:

Mesaj gönderen slm_sakal »

@bLue aLonE hocamın verdiği kodda da ExecData bölümünde hata verdi. Bu komut kısaltılmış olabilir mi acaba? Execute fln gibi? Bu şekilde çalışmadı çünkü. Belki Delphi versiyonundan da kaynaklanabilir. Benim kullandığım versiyon Delphi 6. Kusura bakmayın bu sorunun üstüne gitmeyi bırakıcam artık. Sizin gibi insanları yeterince yordum. Buna hakkım olduğunu sanmıyorum. Yardımlarınız için çok teşekkürler ama olmuyor işte, bi türlü istediğimi yapamadım. Hepinize iyi akşamlar...

Kod: Tümünü seç

procedure TfrmPresentList.ShowDataScreen (Id : String); 
begin 
  Application.CreateForm  (TfrmPresentCard, frmData); 
  if Assigned (frmData) then 
    frmData.ExecData (TfrmPresentCard, Id); 
end;
BeLeSCafe.Net IRC Serverları
irc.belescafe.net - http://www.belescafe.net
aLonE CoDeR
Kıdemli Üye
Mesajlar: 1223
Kayıt: 26 Nis 2005 04:08

Mesaj gönderen aLonE CoDeR »

Sorununuz çözülmedi ise sormaktan çekinmeyin bence...

ExecData kendi yazdığım bir procedure..Formu show ediyor, ilgili parametreleri kullanarak bazı işlemleri gerçekleştiriyor..Id de gerçekleşen işlemler için verilen parametrelerin birisi zira...

Kolay gelsin..
Kullanıcı avatarı
selman
Üye
Mesajlar: 664
Kayıt: 04 Ara 2003 12:06
Konum: İzmir

Mesaj gönderen selman »

selam
kardeş yanlış anlama bence sen yanlış yolda gidiyosun gibi geldi bana. Şimdi bir kaydın düzenleme mudna geçmesini
Ibtable1.edit;
Ibtable1.post;
diyerek yapabilirsiniz.
Şimdi sizin sorunuzu baştan ele alarak şöyle değerlendirme yapabiliriz:
ilk önce form1 de
2 ad.dbeditimiz olsun.
1.dbedit----------------> Kod

2.dbedit----------------->Ad

diye iki alanımız olsun ve iki ad.te buton koy.

Button1--------------->Kaydet

Buton2---------------->Vazgeç

Kaydet butonuna
---------------------
Ibtable1.append;
Ibtable1.post;

Vazgeç Butonuna
form1.close;


Bir tane de buton koyalım form 2ye bağlanmak için
butonada Form2.show;
yazdım
form 2ye de bir tane edit1 bir tane de dbgrid koyuyorum

editin on key press olayına
if key=#13 then begin
Ibtable1.locate('Kod',edit1.text,[]);
end;
burada edit1 den arama yapıyoruz şimdi dbgride gelelim.
dbgridin properties de Options kısmı var orada
dgrowselect ve dgalwayshow select olan kısımları true yapın birde dbgrid
Ibtable bağlı olsun.
editte yaptığınız arama ile dbgridde konumlanacak

ve dbgridin
on dblclick yordamına
Ibtable1.edit;
form2.close;
diyeceksin
direk o andaki kayıtlar dbeditte gösterilecek
ve düzenleme yapabileceksiniz.Hepsi bu kadar :kendiniizi kıardeş neden o kadar yoruyosunuz ki. Kolay gelsin. :)
Kullanıcı avatarı
slm_sakal
Üye
Mesajlar: 24
Kayıt: 09 Ağu 2005 10:03
Konum: İstanbul
İletişim:

Mesaj gönderen slm_sakal »

Arkadaşlar hepinize önerileriniz için çok teşekkürler. @selman hocam, Locate ile nereye kadar gidebilirim ki? Tablomda şu anda 20000 in üzerinde kayıt var, gün gelecek milyonları geçicek. Günde 1000 civarında kayıt yapılıyor. Bu durum için bana en uygun yol olarak Query (SQL) geldi ve onu kullandım. Ben programı şu anda şöyle kullanıyorum. Form2'den kayıt arıyorum (adını yazdığımda bana ilgili tüm kayıtları gösteriyor) kayıtların başında da numarasını da listeletiyorum. Form1'de de bu kaydı aktif hale getirmek için edit kutusuna numarasını yazıyorum. Bu kutudaki kod locate metodu. Bu şekilde çalışabiliyorum. Ama biraz dolambaçlı oluyor, onun için böyle bir çözüm üretmeyi istiyorum. Ama artık vazgeçtim. Hepinize yardımlarınız için teşekkürler.
BeLeSCafe.Net IRC Serverları
irc.belescafe.net - http://www.belescafe.net
Kullanıcı avatarı
selman
Üye
Mesajlar: 664
Kayıt: 04 Ara 2003 12:06
Konum: İzmir

Mesaj gönderen selman »

selam
slm_sala dedi

Kod: Tümünü seç

 @selman hocam, Locate ile nereye kadar gidebilirim ki? Tablomda şu anda 20000 in üzerinde kayıt var, gün gelecek milyonları geçicek. Günde 1000 civarında kayıt yapılıyor. Bu durum için bana en uygun yol olarak Query (SQL) geldi ve onu kullandım.
ben sadece locate yi size örnek olarak vermiştim.Artı insan eğer şimdiden yapamadım vazheçme oalyına kapılırsa proğramcılık adına hiç bir şey yapamaz.Artı benim de yerine göre proğramlarımda Locate yerine göre de sql kullanım var.
Onun için azmi hiç bir zaman elden bırakmamak lazım.İnternet ,Kitap felan insan delphi hakkında çok döküman bulabilir.Onun içiç hayatta hiç bir şeyden vazgeçmeyin.Neyse Çalışmalarınızda başarılar dilerim.
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

Form1 i cagırdıgında datasete parametre olarak o kayıtın ıd sini ver
ve o sekilde ac.
ornek sql soyle olsun
select * from mytable where id=:id

simdi sen form2 den arama yapıp cift clik yaptıgın kayıtın id sini al bi kere
form1 i ac datasete
ibdataset1.params[0].AsInteger:=MyID;
ile parametreyi aktar
ve dataseti ac,
IbDataset1.Open;
buna baglı datasource un baglı oldugu kontrollerde sadece bu kayıt gorunecek.
bu kadar basit yani,
ÜŞENME,ERTELEME,VAZGEÇME
Cevapla