Gridden Çıkan Takvim
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Gridden Çıkan Takvim
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
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 Ç İ ]
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?
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 Ç İ ]
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.
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.
Merhaba,
grid olarak http://www.devexpress.com Quantum Grid'i tek geçerim
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.
grid olarak http://www.devexpress.com Quantum Grid'i tek geçerim

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.
- mehmet_turecan_cakmak
- Üye
- Mesajlar: 132
- Kayıt: 02 Tem 2003 01:08
- Konum: Afyon
- İletişim:
takvim
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ş
delphi cd sinin içerisinde var...
iyi çalışmalar...

iyi çalışmalar...
En son mehmet_turecan_cakmak tarafından 05 Ağu 2003 12:20 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
- mehmet_turecan_cakmak
- Üye
- Mesajlar: 132
- Kayıt: 02 Tem 2003 01:08
- Konum: Afyon
- İletişim:
component
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
kolay gelsin
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;
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 Ç İ ]
Bu İşini Görür Galiba
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.
Umarım işini Görür
Üff Saat te geç olmuş işe yine geç kalacağım
İyi Geceler Arkadaşlar.
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.
Üff Saat te geç olmuş işe yine geç kalacağım
İyi Geceler Arkadaşlar.
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.
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.