Onkeypress

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
dakrass
Üye
Mesajlar: 10
Kayıt: 12 May 2005 11:10
Konum: manisa

Onkeypress

Mesaj gönderen dakrass »

Merhabalar...


ben bir CD KAYIT Programı yapmaktayım... ama benim sorunum şu..
yaptığım kayıtlarda ornek cdkodu (1500) herhangi bir oyun adı madi neyse kaydetti sonra aynı oyunun yeni ek paketi çıkınca örnek 1500/1 gibi kaydetmem gerekiyo ama sorun şurda ben sadece sayıları kaydetmesi için kod yazdim oraya

Kod: Tümünü seç

if (Key<'0') or (Key>'9') or [(key..neyazmalıyım?...)] then
begin
suiMessageDialog1.Text:='Sadece Rakam Girmelisiniz!';
suiMessageDialog1.ShowModal;
key:=#0;
end;
end;
Çok uğraştım araştırma falan yaptım bulamadım.. birde burda sql de sorgulama yaparken order by ile altına mi gelir yoksa o işaret bulunuyo diye göstermez mi?
Newbie
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Merhaba...

- Bu tip durumlarda kullandığım çözüm şu şekilde...

Kod: Tümünü seç

const
  Tanimli = ['1'..'9', '0', '/'];
şeklinde bir sabit tanımlıyorum. sonra da sorgumu

Kod: Tümünü seç

IF Key IN Tanimli then
şeklinde yapıyorum...

- SQL ile ilgili sorun için ise, tanımladığın alan neye müsade ediyorsa herpsini gösterir. Sıralama kriterleri ise String alan ise ki "/" işin içinde olduğundan öyle olacak, ASCII sıralamasına göre değerlendirilecek.
Resim
Resim ....Resim
Kullanıcı avatarı
dakrass
Üye
Mesajlar: 10
Kayıt: 12 May 2005 11:10
Konum: manisa

Mesaj gönderen dakrass »

çok saol hocam... eline sağlık hoş oldu tamm da :) ufak bişiy unutmuşum ben... CDKOD bölümü integer di yani number [N] alpha değil [A] hadi dedim alpha yapim bu sefer hata üstüne hata veriyo... değiştirdiğimde bu durum da ne yapacam kafam allak bullak oldu ... cdkod yerine cdkod2 açım çaktırmadan diom oda karışıklık olacak... :(


:? :cry: :roll:
Newbie
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Alan değişikliği çözümü zor geliyorsa önerim, alan veri formatında değişiklik yapman yönünde. Yani veritabanında kayıtlı veri ile ekrana yansıttığın veri farklı olacak. Şöyle örnekleyebilirim...

- Veritabanına CDKodu olarak kaydettiğn veri 1500 olsun. 1500/1 yazman gerekliyse veri hanesini genişleterek çözebilirsin. Hem de doğal sıralı olur.

- Yani 1500 + 0 hane kodu = 15000. Tabii iki haneli bir eklenti olma olasılığı varsa 0 hane sayısı o oranda artar. 0 nolu hane asıl kaydı 1 ve üzeri kayıtlar ek kayıtları içerir.

- Veri yapını bilmediğimden böyle örnekledim ama eğer ek kayıtlarda farklı bilgi girişi yoksa Master Detail olarak ek bir tablo tasarlayıp minimal düzeyde veri alanı tanımlamanı öneririm. Yani AnaTablo + YardımcıTablo Bu sayede AnaTabloda 50 tane alan girerken YardımcıTabloya da 3 alan girişi yapar toplamda 53 alan ve dolaysıyla kapladığı alan ile işi bitirirsin.

- Diğer türlü kayıt tekrarı demek iki kat yer kaybı demektir.
Resim
Resim ....Resim
Cevapla