Delphi Dünyası Facebook'ta

Kodbank İndir

! CODEBANK 2012 !

İNDİRMEK&DETAYLI BİLGİ ALMAK İÇİN BURAYI TIKLAYINIZ.

Gönderen Konu: Veritabanı için DateTimePicker  (Okunma sayısı 5083 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı hayati

  • Administrator
  • *****
  • İleti: 860
  • Rep: +19/-3
  • Cinsiyet: Bay
Veritabanı için DateTimePicker
« : 09 Ocak 2007 14:06:28 »
sorumlarımda çok amatörce ama kusura bakmayın 
query1.post diyince tüm dbeditler VT na otomatik kaydediliyor
ancak maskedit, özellikle DateTimePicker nasıl kullanılır :-[
DataControls yaprağında bu bileşenler yok :-[
« Son Düzenleme: 12 Ocak 2007 20:38:32 by Fatih »
Olsa dahi tenimin kıl biten her yeri bir dil, güçsüzüm şükretmeye,şükrüm binde bir bile değil (İ.R.)

Çevrimdışı Kocaturk

  • Administrator
  • *****
  • İleti: 2.474
  • Rep: +56/-5
  • Cinsiyet: Bay
    • Delphi Dünyası
Ynt: acil değil lütfen yardım etmeyin
« Yanıtla #1 : 09 Ocak 2007 19:19:14 »
sana direk kod göndereyim

DBMaskEdit

Kod: [Seç]
unit DBMaskEdit;
//**********************************************************************
// Written by Essam Eddine ADIB Fox Soft Plus
//   using Borland Delphi Entreprise version 7
//   Copyright 1993, 2002 Borland Software Corporation
//
// EMail  : essam.eddine.adib@wanadoo.net.ma
//
// Date   : 03-03-2003
//
// A simple but reliable databased MaskEdit.
//**********************************************************************

interface

uses
  SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  Forms, Dialogs, StdCtrls, ExtCtrls, DB, DBCtrls, DBTables,Mask;

type
  { DBMaskEdit }

  TDBMaskEdit = class(TMaskEdit)
  private
    { Variables for properties }
    FDataLink: TFieldDataLink;

    { Procedures for setting property values }
    function GetDataField: string;
    function GetDataSource: TDataSource;
    function GetReadOnly: Boolean;
    procedure SetDataField(const Value: string);
    procedure SetDataSource(Value: TDataSource);
    procedure SetReadOnly(Value: Boolean);
    procedure DataChange(Sender: TObject);
    procedure Exit(Sender: TObject);
    procedure KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);


  protected
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  published
    { Field in the database table }
    property DataField: string read GetDataField write SetDataField;
    { Datasource attached to the database table }
    property DataSource: TDataSource read GetDataSource write SetDataSource;
    { ReadOnly }
    property ReadOnly: Boolean read GetReadOnly write SetReadOnly default False;
  end;



procedure Register;

implementation


{ DBMaskEdit }

{ Override the constructor to initialize variables }

constructor TDBMaskEdit.Create(AOwner: TComponent);
begin
  { Inherit original constructor }
  inherited Create(AOwner);
  { Add new initializations }
  FDataLink := TFieldDataLink.Create;
  FDataLink.OnDataChange := DataChange;
  FDataLink.ReadOnly:=ReadOnly;
  OnExit:=Exit;
  OnKeyDown:=KeyDown;
end;

{ Override the destructor to destroy variables }
destructor TDBMaskEdit.Destroy;
begin
  FDataLink.OnDataChange := nil;
  FDataLink.Free;
  inherited Destroy;
end;

{ Get database field }
function TDBMaskEdit.GetDataField: string;
begin
  Result := FDataLink.FieldName;
end;

{ Get datasource }
function TDBMaskEdit.GetDataSource: TDataSource;
begin
  Result := FDataLink.DataSource;
end;

{ Set database field }
procedure TDBMaskEdit.SetDataField(const Value: string);
begin
  FDataLink.FieldName := Value;
end;

{ Set datasource }
procedure TDBMaskEdit.SetDataSource(Value: TDataSource);
begin
  FDataLink.DataSource := Value;
end;

{ Set Date when data changes }
procedure TDBMaskEdit.DataChange(Sender: TObject);
begin
  if not (FDataLink.Field = nil) then
  Begin
    Text:=FDataLink.Field.AsString;
  end;
end;




{ Get ReadOnly }

function TDBMaskEdit.GetReadOnly: Boolean;
begin
  Result := FDataLink.ReadOnly;
end;

{ Set ReadOnly }

procedure TDBMaskEdit.SetReadOnly(Value: Boolean);
begin
  FDataLink.ReadOnly := Value;
end;

{ ----------------------------------------------------------------------------}

{ Register the components }
procedure Register;
begin
  RegisterComponents('Fox Soft Plus', [TDBMaskEdit]);
end;



procedure TDBMaskEdit.Exit(Sender: TObject);
begin
  if not (FDataLink.Field = nil) then
  Begin
     FDataLink.Field.AsString:=text;
  end;

end;


procedure TDBMaskEdit.KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if FDataLink.ReadOnly Then
  Abort;

 IF KEY=13 Then Exit(sender);
end;

end.



DBDateTimePicker


Kod: [Seç]
unit DBDateTimePicker;
//**********************************************************************
// Written by Essam Eddine ADIB Fox Soft Plus
//   using Borland Delphi Entreprise version 7
//   Copyright 1993, 2002 Borland Software Corporation
//
// EMail  : essam.eddine.adib@wanadoo.net.ma
//
// Date   : 02-24-2003
//
// A simple but reliable databased DateTimePicker.
//**********************************************************************

interface

uses
  SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  Forms, Dialogs, StdCtrls, ExtCtrls, DB, DBCtrls, DBTables, ComCtrls;

type
  { DBDateTimePicker }

  TDBDateTimePicker = class(TDateTimePicker)
  private
    { Variables for properties }
    FDataLink: TFieldDataLink;

    { Procedures for setting property values }
    function GetDataField: string;
    function GetDataSource: TDataSource;
    function GetReadOnly: Boolean;
    procedure SetDataField(const Value: string);
    procedure SetDataSource(Value: TDataSource);
    procedure SetReadOnly(Value: Boolean);
    procedure DataChange(Sender: TObject);
    procedure CloseUp(Sender: TObject);
    procedure KeyPress(Sender: TObject; var Key: Char);

  protected
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  published
    { Field in the database table }
    property DataField: string read GetDataField write SetDataField;
    { Datasource attached to the database table }
    property DataSource: TDataSource read GetDataSource write SetDataSource;
    { ReadOnly }
    property ReadOnly: Boolean read GetReadOnly write SetReadOnly default False;
  end;



procedure Register;

implementation

uses DateUtils;

{ DBDateTimePicker }
{ Override the constructor to initialize variables }

constructor TDBDateTimePicker.Create(AOwner: TComponent);
begin
  { Inherit original constructor }
  inherited Create(AOwner);
  { Add new initializations }
  FDataLink := TFieldDataLink.Create;
  FDataLink.OnDataChange := DataChange;
  OnCloseUp:=CloseUp;
  OnKeyPress:=KeyPress;
end;

{ Override the destructor to destroy variables }
destructor TDBDateTimePicker.Destroy;
begin
  FDataLink.OnDataChange := nil;
  FDataLink.Free;
  inherited Destroy;
end;

{ Get database field }
function TDBDateTimePicker.GetDataField: string;
begin
  Result := FDataLink.FieldName;
end;

{ Get datasource }
function TDBDateTimePicker.GetDataSource: TDataSource;
begin
  Result := FDataLink.DataSource;
end;

{ Set database field }
procedure TDBDateTimePicker.SetDataField(const Value: string);
begin
  FDataLink.FieldName := Value;
end;

{ Set datasource }
procedure TDBDateTimePicker.SetDataSource(Value: TDataSource);
begin
  FDataLink.DataSource := Value;
end;

{ Set Date when data changes }
procedure TDBDateTimePicker.DataChange(Sender: TObject);
begin
  if not (FDataLink.Field = nil) then
   IF FDataLink.Field.AsString='' Then
    Begin
     Date:=SysUtils.Date;
     Format:='__________';
    end
   else
    Begin
     Format:='';
     Date := FDataLink.Field.AsDateTime;
    end;
end;

procedure TDBDateTimePicker.CloseUp(Sender: TObject);
begin
 if  FDataLink.ReadOnly Then
  Begin
   Date:=FDataLink.Field.AsDateTime;
  end
 else
  Begin
   if (FDataLink.DataSet.State=dsInsert) or (FDataLink.DataSet.State=dsEdit) then
    FDataLink.Field.AsDateTime:=Date
   Else
    Date:=FDataLink.Field.AsDateTime;
  end;
end;



{ Get ReadOnly }

function TDBDateTimePicker.GetReadOnly: Boolean;
begin
  Result := FDataLink.ReadOnly;
end;

{ Set ReadOnly }

procedure TDBDateTimePicker.SetReadOnly(Value: Boolean);
begin
  FDataLink.ReadOnly := Value;
end;

{ ----------------------------------------------------------------------------}

{ Register the components }
procedure Register;
begin
  RegisterComponents('Fox Soft Plus', [TDBDateTimePicker]);
end;


procedure TDBDateTimePicker.KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 Then
if FDataLink.ReadOnly Then
  Abort
else
  Begin
   if not (FDataLink.DataSet.State=dsInsert) or not (FDataLink.DataSet.State=dsEdit) then   FDataLink.DataSet.Edit;
    Begin
     FDataLink.Field.AsDateTime:=Date;
    end
  end;
end;

end.



Not : kodun yazarı hakkında bilgiler her iki unit in başında bulunmaktadır.

Çevrimdışı HBV

  • Delphi 6 Level 5
  • *****
  • İleti: 298
  • Rep: +11/-7
  • Cinsiyet: Bay
Ynt: acil değil lütfen yardım etmeyin
« Yanıtla #2 : 09 Ocak 2007 19:30:37 »
Selamlar Benim Tavsiyem; JvDBDataTimePickerEdit veya JvDBDataTimePicker kullan!. aynı DataControl Bileşenleri gibi kullanabiliyorsun,ve daha estetik oluyor. Bu Bileşenleri (JEDI bileşenleri) aşağıdaki adresten temin edebilirsin ücretsizdir,ve hemen hemen proğramla uğraşan arkadaşların bir çoğu bilir.

 http://sourceforge.net/project/showfiles.php?group_id=45786

Çevrimdışı hayati

  • Administrator
  • *****
  • İleti: 860
  • Rep: +19/-3
  • Cinsiyet: Bay
Ynt: acil değil lütfen yardım etmeyin
« Yanıtla #3 : 10 Ocak 2007 09:46:19 »
teşekkür ederim arkadaşlar, sayenizde gerçekten gözle görülür bir yol katettiğimi hissedebiliyorum,
minettarım. forum kurallarına aykırımı bilmiyorum, kuralları okuduktan sonra; marco cunti nin kitabını almıştım (CD li) cd deki önekleri rapid e upload etmeyi düşünüyorum, benimde başkalarına faydam olsun istiyorum.. herkese teşekkür, ama benim sorumlarım bitmez karşınıza çıkarım yine
Olsa dahi tenimin kıl biten her yeri bir dil, güçsüzüm şükretmeye,şükrüm binde bir bile değil (İ.R.)

Çevrimdışı Kocaturk

  • Administrator
  • *****
  • İleti: 2.474
  • Rep: +56/-5
  • Cinsiyet: Bay
    • Delphi Dünyası
Ynt: acil değil lütfen yardım etmeyin
« Yanıtla #4 : 10 Ocak 2007 14:43:55 »
Marco Cantu nun kaynak kodlarını rapid e atmana gerek yoktu çünkü kendi sitesinde bütün kitaplarına ait kaynak kodlar mevcut

Çevrimdışı hayati

  • Administrator
  • *****
  • İleti: 860
  • Rep: +19/-3
  • Cinsiyet: Bay
Ynt: acil değil lütfen yardım etmeyin
« Yanıtla #5 : 10 Ocak 2007 18:25:02 »
ya kusura bakmazsanız; linki inceledim bi kaç bişey indirdim kuramadım, sonra  JEDI yi araştırıken TURBOPOWER diye bi setten ve SYSTOOLS paketinden haberdar oldumki tam benim aradığım bileşenler. 2 gündür o kdar araştırdımki, bileşenleri kurmayı kullanmayı örneklerini herşeyi öğrendim sayılır ancak, sanırım hep yanlış bişeyler indiriyorum, olmuyo çünkü.... install.bat dosyasını çalıştır deniyo(JEDI için). ama anlatılanlar gibi seçim yapıp next diyeceğim bir ekran değil DOS (cmd) ekranı çıkıyo karşıma..... mesela arkadaşımın verdiği linkte hangi zip i indirmem lazım
JVCL320CompleteJCL197-Build2172.7z // gibi
tam dosya ismini verebilirmisiniz. XP ve Delphi 6 kullanıyorum

 
 
Olsa dahi tenimin kıl biten her yeri bir dil, güçsüzüm şükretmeye,şükrüm binde bir bile değil (İ.R.)

Çevrimdışı HBV

  • Delphi 6 Level 5
  • *****
  • İleti: 298
  • Rep: +11/-7
  • Cinsiyet: Bay
Ynt: acil değil lütfen yardım etmeyin
« Yanıtla #6 : 10 Ocak 2007 19:49:39 »
   Selam , Daha önce verdiğim adresten Kurulumu için 2 dosya indireceksiniz.ilk çıkan menüde en üstte Klik yapıyorsunuz sonra,
    Biri 14 küsür,diğeri 2 Mb  dosya,JVCL320CompleteNoJCL.zip ve JVCL320CompleteJCL197Build2172.zip diye  çekiyorsunuz!
    JVCL320CompleteNoJCL  kurulurken ekrana sihirbaz çıkar ve "JVCL320CompleteJCL197Build2172" nin yerini sorar bu dosyayı çıkartığınız yeri gösteriyorsunuz okadar.
Not :Delphi kapalı olacak.
Sonu 7z olanlar Linux içindir.
« Son Düzenleme: 10 Ocak 2007 20:13:52 by HBV »

Çevrimdışı Fatih

  • Emekli Yönetici
  • *****
  • İleti: 2.217
  • Rep: +43/-10
  • Cinsiyet: Bay
    • Delphi Dünyası
Ynt: acil değil lütfen yardım etmeyin
« Yanıtla #7 : 10 Ocak 2007 21:20:00 »
Malulen emekli programcı / yazar. Bildiklerini unutmakta olduğundan size cevap veremez.

Çevrimdışı hayati

  • Administrator
  • *****
  • İleti: 860
  • Rep: +19/-3
  • Cinsiyet: Bay
Ynt: acil değil lütfen yardım etmeyin
« Yanıtla #8 : 11 Ocak 2007 11:37:30 »
JVCL320CompleteNoJCL.zip = 14 MB dediğin gibi.. ve içinde "jvcl" klasörü var.
diğeri
JVCL320CompleteJCL197-Build2172.zip  = 18 MB ve içinde "jcl" jvcl" klasörleri var (jvcl "JVCL320CompleteNoJCL.zip = 14 MB" bunun aynısı)
ancak kurulum sihirbazını hiç göremedim, ve dos ekranında

**error 1 ** deleting Installer_nomo
Pres ENTER to continie
hatasını alıyoum, entere basınca cdm ekranı kapanıyor, bu kadar..
bu arada delphiyi kurarken bir çok hata mesajı ile kurmuştum ve makinada deepfreeze kurulu, bunlar etken olabilirmi diye de aklıma geliyor..
fatih hocamın verdiği linki hatmettim, ama kurulum sihirbazı çıkmıyoki devam edeyim...
« Son Düzenleme: 22 Ağustos 2007 11:12:28 by babahayati »
Olsa dahi tenimin kıl biten her yeri bir dil, güçsüzüm şükretmeye,şükrüm binde bir bile değil (İ.R.)

Çevrimdışı Kocaturk

  • Administrator
  • *****
  • İleti: 2.474
  • Rep: +56/-5
  • Cinsiyet: Bay
    • Delphi Dünyası
Ynt: acil değil lütfen yardım etmeyin
« Yanıtla #9 : 11 Ocak 2007 17:10:36 »
babahayati,

şunu söylemeden geçemiyeceğim sadece bir kez veya bir bileşenini kullanacağınız paketleri mecbur kalmadıkça kurmayınız IDE nin geç açılmasına ve ileride bir sürü runtime error message ları almanıza katkıda bulunacaktır, hatta daha önemlisi yazdığınız kodu ileride yeniden derleme ihtiyacı duyduğunuzda bu paket elinizin altında olma zorunluluğu getiriyor, bence delphi nin standart bileşenleri ile halledemediğiniz zaman bu yola baş vurun ama önce öyle halletmeye çalışın.
Şimdi Jedi nin kurulumunu basitçe anlatayım;

öncelikle jedi kurlurken kurulum sihirbazlarını ve bazı paketleri kendini kurarken derler dolayısı ile sizin delihi IDE sine göre delphinin Bin directory si kullandığınız işletim sistemin environment variables( ortam değişkenleri) ne eklenmiş olmalıdır örneğin benim kullandığım IDE ye göre Bin directory yolum

C:\Program Files\Borland\BDS\4.0\Bin

 bunu bilgisayarım->özellikler->Gelişmiş->ortam değişkenleri yolu ile  veya MSDOS komut istemi(cmd) penceresinde "PATH" komutunu vererek görebilirsiniz eğer her iki şekildede sizin Bin directory yolu path değişkeni içinde de göremiyorsanız eklemeniz gerekecek onu da şöyle yapabilirsiniz;

bilgisayarım->özellikler->Gelişmiş->ortam değişkenleri şeklinde ortam değişkenleri pencereseini açtıktan sonra aşağıdaki sistem değişkenleri bölümünden "PATH" i seçip düzenle button ına basın açılan pencerede path e ilk noktalı virgülden sonra( ; )  sizin yolu ekleyiniz ve bir noktalı virgül daha koyunuz( ; ) örneğin benim makina için diyelim ki paht aşağıdaki gibi

C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\;%SystemRoot%\system32;%SystemRoot%;......... ve ben aşağıdaki gibi
benim bin yolunu ekliyorum.
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\;C:\Program Files\Borland\BDS\4.0\Bin;%SystemRoot%\system32;%SystemRoot%;.........

bundan sonrası şu şekilde olacak

JVCL320CompleteJCL197-Build2172.zip indirdin bir yere açtın açtıktan sonra ilgili klasör altında JCL ve JVCL adlarında iki klasör daha olacak önce JCL klasörünü komut isteminde açıyorsun sonra install.bat adlı toplu işlem dosyasını çalıştırıyorsun( eğer bir hata olursa hata mesajlarını görmek için yok sa gerek yok direct fare ile çift tıklyıp ta çalıştırabilirsin)  eğer bir problem yoksa "PROJECT JEDI INSTALLER" penceresi açılacaktır burada install button ına tıkla ve sonlana kadar bekle başarılı bir şekilde kurulduktan sonra bu sfer JVCL klaösüründeki install.bat toplu işlem dosyasını çalıştır karşına JVCL 3 Installation penceresi gelecektir busihirbazı da sonuna kadar tamamla( bu arada bazı gelişmiş ve normal ayarlar var aklının kestiğini ayarla :) ) bu işlem bittikten sonra delphi yi çalıştır ve JEDI bileşenlerini kullan.

kolay gelsin.


« Son Düzenleme: 11 Ocak 2007 18:06:41 by kocaturk »

Çevrimdışı HBV

  • Delphi 6 Level 5
  • *****
  • İleti: 298
  • Rep: +11/-7
  • Cinsiyet: Bay
Ynt: acil değil lütfen yardım etmeyin
« Yanıtla #10 : 11 Ocak 2007 20:06:57 »
Yukarıdaki güzel açıklamaya  ,Bir Eklemede ben yapayım..Bu iki zipli dosyayı direk "C:\" sürücüsüne aç kurulumu oradan yap, ve JVCL320CompleteNoJCL(Klasör ismi Jvcl olacak) Bu isimli klasördeki "install.bat" dosyasını çalıştırdıktan sonra en Alttaki küçük pencerede "JVCL320CompleteJCL197Build2172(Klasör ismi Jcl olacak)" bu klasörün yerini göster yani ikinci klasördeki install.bat dosyasını çalıştırmaya gerek yok(MB'tı Küçük olan) .birinci setup kurulum dosyası gerekli dosyaları ikincisinden alacaktır. Kolay gelsin.
« Son Düzenleme: 11 Ocak 2007 20:33:44 by HBV »

Çevrimdışı Kocaturk

  • Administrator
  • *****
  • İleti: 2.474
  • Rep: +56/-5
  • Cinsiyet: Bay
    • Delphi Dünyası
Ynt: acil değil lütfen yardım etmeyin
« Yanıtla #11 : 11 Ocak 2007 20:33:42 »
Yukarıdaki güzel açıklamaya  ,Bir Eklemede ben yapayım..Bu iki zipli dosyayı direk "C:\" sürücüsüne aç kurulumu oradan yap, ve JVCL320CompleteNoJCL(Klasör ismi Jvcl olacak) Bu isimli klasördeki "install.bat" dosyasını çalıştırdıktan sonra en Alttaki küçük pencerede "JVCL320CompleteJCL197Build2172(Klasör ismi Jcl olacak)" bu klasörün yerini göster yani ikinci klasördeki install.bat dosyasını çalıştırmaya gerek yok(MB'tı Küçük olan) .birinci setup kurulum dosyası gerekli dosyaları ikincisinden alacaktır. Kolay gelsin.

normal de öyle ama JCL yi compile etmeden JVCL 3 Istallation da Next button ı aktif olmaz zaten JCL nin yolunu kendisi otomatik olarak buluyor

Çevrimdışı HBV

  • Delphi 6 Level 5
  • *****
  • İleti: 298
  • Rep: +11/-7
  • Cinsiyet: Bay
Ynt: acil değil lütfen yardım etmeyin
« Yanıtla #12 : 11 Ocak 2007 20:39:50 »
Çok Doğrusun Hocam..o şekildede olur ,bu şekildede ...ama ikinci install.bat dosyasının setup'unuda kurarak devam ediyor.yani ikinci disket gibi....
İkinci klasörü buldurmadaki amaç ikinci bir işlem yapmamak.
« Son Düzenleme: 11 Ocak 2007 20:46:55 by HBV »

Çevrimdışı tarikkoc

  • Delphi 2 Level 2
  • **
  • İleti: 65
  • Rep: +0/-0
Ynt: Veritabanı için DateTimePicker
« Yanıtla #13 : 21 Şubat 2007 21:18:30 »
arkadaşlar
JVCL330CompleteNoJCL
JVCL330CompleteJCL198Build2530
bunları indirdim 330 enson versiyonuydu
yukarıda anlatıldığı gibi kurulumu yapmaya çalıştım fakat JVCL330CompleteJCL198Build2530 daönce jcl deki install.bat dosyasını çift tıklayıp kurulumu yaptım ama jvcl de ve JVCL330CompleteNoJCL de install.bat ı çalıştırmak isteyince delphi6 2 update is not installed dedi ne yapmalıyım

Çevrimdışı HBV

  • Delphi 6 Level 5
  • *****
  • İleti: 298
  • Rep: +11/-7
  • Cinsiyet: Bay
Ynt: Veritabanı için DateTimePicker
« Yanıtla #14 : 22 Şubat 2007 23:25:30 »
ilk defa hüklüyorsanız Update'yi seçmiyeceksiniz!.delphi6 seçeneği işaretlimi?
"JVCL330CompleteNoJCL
JVCL330CompleteJCL198Build2530" Yükleme Dosyaları direk C:'de olacak.ve ordan yüklenecek
« Son Düzenleme: 22 Şubat 2007 23:30:35 by HBV »