Gridden Çıkan Takvim

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
FXERKAN
Üye
Mesajlar: 178
Kayıt: 26 Tem 2003 11:06
Konum: Sivas - Konya
İletişim:

Gridden Çıkan Takvim

Mesaj gönderen FXERKAN »

arkadaşlar benim istediğim şey şöyle bir şey

tableda bir alan date tipinde ben buraya bir veri girmek için takvim nesnesini kullanmak istiyorum. kullanıcı gelip gride tıkladığında oradan bir takvim açılacak ve kullanıcının seçtiği tarihi tableye yazacak.

böyle bir komponent var mı?

bi sorum daha oalcak

acaba grid içerisindeki hücreleri nasıl masklı gibi gösterebilirim. ama sadece masklı gibi görünecek. yani para 1,000,000 oysaki tabloda bu kayıt 1000000 gibi görünecek yani
[ F X E R K A N © - E r k a n Ç İ F T Ç İ ]
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

Info Power'in wwDBGrid componenti tarih alanlari icin soylediginiz tarih secim isini yapabiliyor. Tabi Infopower componentleri ucretli.

Maskli gorunmesini istediginiz fieldlari, table icinden secip Display format olarak #,## verirseniz istediginiz olur.
Kullanıcı avatarı
FXERKAN
Üye
Mesajlar: 178
Kayıt: 26 Tem 2003 11:06
Konum: Sivas - Konya
İletişim:

Mesaj gönderen FXERKAN »

peki abicim bunun ücretsiz bir hali yok mudur?

peki biz şöyle bir şey yapabilirmiyiz. seçilen hücrenin koordinatlarını alıp visible ını false yaptığımız bir takvim nesnesini seçilen hücrenin koordinatlarında açıp kayıt girildikten sonra tekrar kapatmak gibi birşey yani?

kısacası seçilen hücrenin koordinatlarını nasıl alırım?
[ F X E R K A N © - E r k a n Ç İ F T Ç İ ]
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

Bu isi gorebilecek ucretsiz bircomponent ben bilmiyorum fakat vardir diye dusunuyorum. Konu ile ilgili diger arkadaslardan bir cevap gelebilir belki.

Zaten infopoer'da aynen dediginiz gibi istenilen bir componenti gridde gomme isini visible'i false olan bir componenti uygun yere konumlandirarak yapiyor. Yapabilirsiniz tabi fakat eger yapilmisi varsa kullanmakta fayda var. Zira ana islevi belki fazla zorlanmadan yaparsiniz ama istisnai durumlarda problemler cikabilir ve sizi ugrastirabilir.
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7588
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Merhaba,

grid olarak http://www.devexpress.com Quantum Grid'i tek geçerim :lol:

Ben hiç araştırmadım ama grid gibi önemli bir bileşen için bildiğiniz, güvendiğiniz bir bileşen kullanmanızı öneririm.

Kolay gelsin.
Kullanıcı avatarı
mehmet_turecan_cakmak
Üye
Mesajlar: 132
Kayıt: 02 Tem 2003 01:08
Konum: Afyon
İletişim:

takvim

Mesaj gönderen mehmet_turecan_cakmak »

ben takvim konusunda infopower ve raise bileşenlerini (raize componenetinde varmıydı tam olarak hatırlamıyorum) kullandım hiçbir sorunda vermedi hemde beleş :lol: delphi cd sinin içerisinde var...

iyi çalışmalar...
En son mehmet_turecan_cakmak tarafından 05 Ağu 2003 12:20 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7588
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Merhaba,

hocam sanırım bir yanlış anlama var. Infopower ve Raize'nin ikisi de para ile satılan 3. parti bileşenlerdir. Başka bileşenlerden bahsediyorsanız bilmiyorum.

İyi günler.
Kullanıcı avatarı
mehmet_turecan_cakmak
Üye
Mesajlar: 132
Kayıt: 02 Tem 2003 01:08
Konum: Afyon
İletişim:

component

Mesaj gönderen mehmet_turecan_cakmak »

mustafa hocam bende şu an bi delphi 5 cd si var ve içerisindede infopower ve raize componentleri var ben buna parada vermedim ama arkadaşımdan aldım.Bu arada galiba cd yi yanlış kopylamışım delphiyi kurmuyor ama infopwer ve raizeyi sorynsuz kuruyor isterseniz size cd nin bir kopyasını göndereyim...

kolay gelsin
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7588
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

sağol hocam,

gerek yok. illegal paylaşım forumda yasak biliyorsun :lol:
Kullanıcı avatarı
FXERKAN
Üye
Mesajlar: 178
Kayıt: 26 Tem 2003 11:06
Konum: Sivas - Konya
İletişim:

Mesaj gönderen FXERKAN »

yani abicim soruma tam bir cevap alamadım galiba

peki o ücretsiz component'ı alabilceğim bir adres biliyormusunuz? tabii beleş olan halini(bende pek beleşçiyim yaw) :-)
[ F X E R K A N © - E r k a n Ç İ F T Ç İ ]
Kullanıcı avatarı
FXERKAN
Üye
Mesajlar: 178
Kayıt: 26 Tem 2003 11:06
Konum: Sivas - Konya
İletişim:

Mesaj gönderen FXERKAN »

arkadaşlar cevaplarınız için teşekkürler.

ama ben kendi çapımda bir tane kendime yaptım gibi. gerçi şu anda component halini hazırlamadım ama olsun.

basitce kod şu şekilde oldu

-----------------------------------------------------------------------------------

procedure TForm1.grdtarihDrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin

if (grdtarih.SelectedField.FieldName = 'TARIH') then
begin
if gdselected in state then
begin

if tbl_tarihTARIH.Text = '' then
begin
takvim.Visible := true;
takvim.Left := rect.Left + 10;
takvim.Top := rect.Top + 10;
takvim.Width := rect.Right - rect.Left;
takvim.Height := rect.Bottom - rect.Top;
takvim.Date := now;
end;

if tbl_tarihTARIH.Text <> '' then
begin
takvim.Visible := true;
takvim.Left := rect.Left + 10;
takvim.Top := rect.Top + 10;
takvim.Width := rect.Right - rect.Left;
takvim.Height := rect.Bottom - rect.Top;
takvim.Date := strtodate(grdtarih.Fields[0].Text);
end;

end;



end;

end;
[ F X E R K A N © - E r k a n Ç İ F T Ç İ ]
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Bu İşini Görür Galiba

Mesaj gönderen husonet »

Merhabalar

Aşağıdaki bileşen, DBGrid bileşeninden türetilmiş olup, Tarih alanına çift tıklandığında, otomatik olarak açılan bir takvimden seçim yapmak suretiyle bilgi girişini sağlamaktadır.

Kod: Tümünü seç


unit ExtDbGrid;
interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Dialogs,Db, DBTables,buttons,  StdCtrls, DBGrids,ComCtrls, WinTypes, 
  WinProcs,  ExtCtrls, Menus, Calendar,DBCtrls;

const
Tdatefieldtype=9;
type
  TExtDbGrd = class(TDBGrid)
  private
    { Private declarations }
    f_message:string;
    f_about:string;
  protected
    { Protected declarations }
  public
    { Public declarations }
  published
    property About:string read f_about write f_about;
    procedure DblClick;override;
    procedure Takvimyap;
    procedure Takvimkapat;
    procedure mybtnclick(sender:tobject);
    constructor create(aowner:tcomponent);override;
    destructor destroy;override;
    { Published declarations }
  end;

implementation

{$R *.RES}
var
takvimform:tform;
takvimpanel:tpanel;
takvim:tcalendar;
takvimbtn:array [1..6] of tspeedbutton;
takvimedit:tedit;
msgid:integer;
oneinstance:boolean;

constructor TExtDbGrd.create(aowner:tcomponent);
begin
   inherited;
   color:=clyellow;
   font.color:=clblue;
   about:='Written by Faruk DEMİREL (fdemirel@kkk.tsk.mil.tr) 01.02.1998 Turkey';
end;

destructor TExtdbgrd.destroy;
begin
     inherited;
end;
procedure TExtDbGrd.dblclick;
begin
     inherited;
     if not oneinstance then
     begin
     if ord(fields[selectedindex].datatype)=11 then
     SHOWMESSAGE('TarihSaat tipindeki alanlarda takvim açılmaz');
     if (ord(fields[selectedindex].datatype)=TdateFieldType) then
     begin
        oneinstance:=true;
        takvimyap;
        takvim.calendardate:=strtodate(fields[selectedindex].asstring);
     end;
     end;
end;

procedure TEXTDBGRD.Takvimyap;
var
i:integer;
begin
        takvimform:=tform.create(self);
        takvimform.width:=267;
        takvimform.height:=195;
        takvimform.borderstyle:=bstoolwindow;
        takvimform.formstyle:=fsstayontop;
        takvimform.visible:=false;
        takvimform.BORDERICONS:=[];

   {takvim paneli}

        takvimpanel:=tpanel.create(self);
        takvimpanel.width:=250;
        takvimpanel.height:=160;
        takvimpanel.parent:=takvimform;
        takvimpanel.left:=5  ;
        takvimpanel.top:=5;

   {takvim}
        takvim:=tcalendar.create(takvimpanel);
        takvim.parent:=takvimpanel;
        takvim.left:=10;
        takvim.top:=10;
        takvim.width:=200;
        takvim.color:=color;
        takvim.font.color:=font.color;
   {takvim butonları}
        for i:=1 to 6 do
        begin
          takvimbtn[i]:=tspeedbutton.create(self);
          takvimbtn[i].parent:=takvimpanel;
          takvimbtn[i].left:=215;
          takvimbtn[i].width:=25;
          takvimbtn[i].height:=22;
          takvimbtn[i].top:=10+25*(i-1);
          takvimbtn[i].onclick:=mybtnclick;
          takvimbtn[i].tag:=i;
          takvimbtn[i].showhint:=true;
        end;

        takvimbtn[1].GLYPH.Handle := LoadBitmap(HInstance,'PY');
        takvimbtn[1].hint:='Önceki Yıl';
        takvimbtn[2].GLYPH.Handle := LoadBitmap(HInstance,'PM');
        takvimbtn[2].hint:='Önceki Ay';
        takvimbtn[3].GLYPH.Handle := LoadBitmap(HInstance,'NM');
        takvimbtn[3].hint:='Sonraki Ay';
        takvimbtn[4].GLYPH.Handle := LoadBitmap(HInstance,'NY');
        takvimbtn[4].hint:='Sonraki Yıl';
        takvimbtn[5].GLYPH.Handle := LoadBitmap(HInstance,'CHOOSE');
        takvimbtn[5].hint:='Seç';
        takvimbtn[6].GLYPH.Handle := LoadBitmap(HInstance,'QUIT');
        takvimbtn[6].hint:='Çık';

      {takvim editi}
        takvimedit:=tedit.create(self);
        takvimedit.parent:=takvimpanel;
        takvimedit.left:=75 ;
        takvimedit.top:=130;
        takvimedit.width:=70;
        takvimedit.text:=datetostr(takvim.calendardate);
        takvimedit.readonly:=true;
        takvimform.formstyle:=fsstayontop;
        takvimform.visible:=true;
        takvimform.show;
end;

procedure TExtDbGrd.Takvimkapat;
var
   i:integer;
begin
   for i:=1 to 5 do takvimbtn[i].free;
   takvim.free;
   takvimedit.free;
   takvimpanel.free;
   takvimform.visible:=false;
   takvimform.Free;
   oneinstance:=false;
end;

procedure TExtDbGrd.mybtnclick(sender:tobject);
begin

  case (sender as tspeedbutton).tag of
  1:{- yıl}begin
           takvim.prevyear;
           takvimedit.text:=FormatDateTime('DD.MM.YYYY',takvim.CalendarDate);
           end;
  2:{- ay}begin
          takvim.prevmonth;
          takvimedit.text:=FormatDateTime('DD.MM.YYYY',takvim.CalendarDate);
          end;
  3:{+ yıl}begin
           takvim.nextmonth;
           takvimedit.text:=FormatDateTime('DD.MM.YYYY',takvim.CalendarDate);
           end;
  4:{+ ay} begin
           takvim.nextyear;
           takvimedit.text:=FormatDateTime('DD.MM.YYYY',takvim.CalendarDate);
           end;
  5:{kapat}begin
           datasource.dataset.edit;
           text:=FormatDateTime('DD.MM.YYYY',takvim.CalendarDate);
           fields[selectedindex].value:=text;
           datasource.dataset.post
           end;
  6:{İptal}begin
           takvimkapat;
           end;
  end;
end;
initialization
oneinstance:=false;
end.

Umarım işini Görür

Üff Saat te geç olmuş işe yine geç kalacağım

İyi Geceler Arkadaşlar.
mahsuni
Üye
Mesajlar: 99
Kayıt: 21 Haz 2003 01:09
Konum: Ankara-Mamak

Mesaj gönderen mahsuni »

http://www.torr.net sitesinde
VolgaDB Controls v.3.3 diye Bedava Bir Bileşen paketi var
oradaki Grid işinizi görür sanırım.

Çalışmalarınızda başarılar dilerim.
Cevapla