Fórum month calendar no delphi4 #388061
06/10/2010
0
Yuli Chrysostomo
Curtir tópico
+ 0Posts
06/10/2010
Wesley Batista
Olá, seja bem vinda a este Forum, tenho o prazer de ser o primeiro a lhe responder.
Vamos ver se consigo lhe ajudar.
Sua dúvida é ligar o MonthCalendar com o seu banco de dados, para isso :
MonthCalendar1.date := CLIENTDATASET1.FIELDBYNAME('DATANASCIMENTO').AsDate;
Desta Forma você conseguirá carregar o campo DataNascimento para o MonthCalendar.
Dica , coloque este código no evento affterScrool do seu DataSet, você usa ClientDataSet?Senão procure no seu componente este evento, e implemente o código acima. Toda vez que seu DataSet mudar de registro, este evento será disparado, e a data atualizada no seu MonthCalendar.
Para gravar uma data em um campo você faz ao contrário
CLIENTDATASET1.FIELDBYNAME('DATANASCIMENTO').AsDate :=
MonthCalendar1.date;
Isso lhe ajuda ?
Um abraço
Wesley Batista
Gostei + 0
07/10/2010
Ricardo Araujo
Colega fiz um exemplo básico,
estou enviando os código para estudo, qualquer coisa manda email para mim que envio o source do sistema.
code :
object Form1: TForm1
Left = 237
Top = 121
Width = 525
Height = 480
Caption = 'Form1'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
OnCreate = FormCreate
PixelsPerInch = 96
TextHeight = 13
object Label1: TLabel
Left = 16
Top = 16
Width = 122
Height = 20
Caption = 'COMPROMISSO'
Font.Charset = DEFAULT_CHARSET
Font.Color = clRed
Font.Height = -16
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentFont = False
end
object MonthCalendar1: TMonthCalendar
Left = 320
Top = 16
Width = 162
Height = 153
Date = 40458.436248958340000000
TabOrder = 0
OnClick = MonthCalendar1Click
end
object DBGrid1: TDBGrid
Left = 0
Top = 184
Width = 509
Height = 260
Align = alBottom
DataSource = DataSource1
TabOrder = 1
TitleFont.Charset = DEFAULT_CHARSET
TitleFont.Color = clWindowText
TitleFont.Height = -11
TitleFont.Name = 'MS Sans Serif'
TitleFont.Style = []
end
object mmObs: TMemo
Left = 16
Top = 48
Width = 289
Height = 121
Lines.Strings = (
'...')
TabOrder = 2
end
object CDSFO: TClientDataSet
Aggregates = <>
Params = <>
Left = 232
Top = 256
end
object DataSource1: TDataSource
DataSet = CDSFO
Left = 264
Top = 256
end
end
código do arquivo pas
unit uPrincipal;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBClient, Grids, DBGrids, ComCtrls, StdCtrls;
type
TForm1 = class(TForm)
CDSFO: TClientDataSet;
DataSource1: TDataSource;
MonthCalendar1: TMonthCalendar;
DBGrid1: TDBGrid;
Label1: TLabel;
mmObs: TMemo;
procedure FormCreate(Sender: TObject);
procedure MonthCalendar1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
CDSFO.FieldDefs.Add('CODIGO',ftAutoInc,0, false);
CDSFO.FieldDefs.Add('NOME',ftString,20, false);
CDSFO.FieldDefs.Add('DATA_NASC',ftDate,0, false);
CDSFO.FieldDefs.Add('COMPROMISSO',ftString,20, false);
CDSFO.CreateDataSet;
end;
procedure TForm1.MonthCalendar1Click(Sender: TObject);
begin
mmObs.Clear;
if not CDSFO.Locate('DATA_NASC',DateToStr(MonthCalendar1.Date),[]) then
begin
mmObs.Lines.Add('....');
mmObs.Lines.Add('Nenhum Compromisso hoje')
end else begin
mmObs.Lines.Text := CDSFO.FieldByName('COMPROMISSO').AsString;
end;
end;
end.
amigo esta bem simples blz.
espero ter ajudado, bom estudo.
Gostei + 0
07/10/2010
Yuli Chrysostomo
Gostei + 0
07/10/2010
Yuli Chrysostomo
var
data: Tdatetime;
begin
data:= monthcalendar1.date;
edit1.text:= DateTimetoStr(data);
If table1.locate('Data',edit1.text,[loPartialKey]) then
begin
Edit2.text := table1.fieldbyname('Data').asstring;
Memo1.text := table1.fieldbyname('Descrição').asstring;
end
else
begin
edit2.text:='';
memo1.text:='';
showmessage('Não existe compromisso cadastrado');
end;
end;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)