| husonet | 05.02.2004 - 04:15:45 |
| Merhaba en sonunda başardım ve sizlerle paylaşmak istedim Delphi'nin Hiyerarşisi mükemmelsin :lol:
DBGrid 0.nci Columns’unda rakam girerken basamaklı girişe izin verir. Alan tipini String olarak tanımlamayı unutmayın. Tabii uğraşırsanız Float tipi veya Currency tipi ile de tanımlayabilirsiniz. Lafı uzatmadan kodu yazıyorum. Fonksiyonumuz. function Isle(str: string): Real; var x: Integer; begin for x := length(str) downto 1 do if str[x] in ['.',','] then delete(str, x, 1); if trim(str) <> '' then result := StrToFloat(str) else result := 0; end; DBGrid OnEnter Eventine procedure TForm1.DBGrid1Enter(Sender: TObject); begin if DBGrid1.SelectedIndex = 0 Then DBGrid1.Columns[0].field.FocusControl; end; Ve son olarak geri kalanı DBGrid KeyPress olayı. procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char); begin if DBGrid1.SelectedIndex = 0 Then Begin Case Key of '0'..'9': begin TInplaceEdit(DBGrid1.Controls[0]).Text := FormatFloat('#,###', Isle(TInplaceEdit(DBGrid1.Controls[0]).Text + Key)); TInplaceEdit(DBGrid1.Controls[0]).SelStart := length(TInplaceEdit(DBGrid1.Controls[0]).Text); Key := chr(0); end; chr(VK_BACK): begin if trim(TInplaceEdit(DBGrid1.Controls[0]).Text) <> '' then begin TInplaceEdit(DBGrid1.Controls[0]).Text := FormatCurr('###,###,###', Isle(copy(TInplaceEdit(DBGrid1.Controls[0]).Text, 1, length(TInplaceEdit(DBGrid1.Controls[0]).Text) - 1))); TInplaceEdit(DBGrid1.Controls[0]).SelStart := length(TInplaceEdit(DBGrid1.Controls[0]).Text); Key := chr(0); end; end; chr(VK_RETURN): Begin if TInplaceEdit(DBGrid1.Controls[0]).Text <> '' Then Begin AdoDataSet1.Edit; AdoDataSet1.FieldByName('Adet').AsString := TInplaceEdit(DBGrid1.Controls[0]).Text; // DBGrid1.Fields[0].Text := TInplaceEdit(DBGrid1.Controls[0]).Text; AdoDataSet1.Post; TInplaceEdit(DBGrid1.Controls[0]).Text := ''; End; End Else Key := chr(0); end; End; end; Arkadaşlar Geliştirdikce buraya yazacağım bu arada komponentini yazmaya düşünüyorum. QuantumHusoGrid olacak. :lol: Görüşlerinizi ve Eleştirilerinizi yazmayı unutmayın lütfen. | |
| husonet | 05.02.2004 - 13:55:05 |
| 5 Şubat 2003 Açılırken Enter Tuşuna basıldığı zaman hata alınıyordu Bug Giderildi.
5 Şubat 2003 Isle fonksiyonu Güncellendi. 5 Şubat 2003 KeyPress Eventi Güncellendi. | |
| mussimsek | 05.02.2004 - 14:06:52 |
| Teşekkürler Hüseyin hocam,
bence düzeltmeleri Edit butonu ile ilk mesajında yaparsan daha iyi olur. Böylelikle yanlışlıkla hatalı kod kullanılmamış olur. Düzeltmeleri mesaj ekleme şeklinde yazarsın. Güncelleme tarihini de mesaj başlığına yazarsan, yeniliği herkes farkeder. Kolay gelsin. | |
| husonet | 05.02.2004 - 14:17:11 |
| Hocam beni yönlendirdiğiniz için teşekkür ediyorum düzenlemeleri yapıyorum.
İyi Çalışmalar. | |