Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Примеры и задачи.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
3.66 Mб
Скачать

Interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, Grids, DBGrids, DBTables, StdCtrls, DBCtrls, ExtCtrls;

type

TForml = class(TForm) Tablel: TTable; DataSourcel: TDataSource; DBGridl: TDBGrid; Queryl: TQuery; Label1: TLabel; Buttonl: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; Label2: TLabel; DBNavigatorl: TDBNavigator;

TObject); TObject) ; TObject) ; TObject) ; TObject); TObject);

procedure procedure procedure procedure procedure procedure

private I Private

public I Public

end;

FormActivate(Sender: ButtonlClick(Sender: Button5Click(Sender: Button2Click(Sender: Button4Click(Sender: Button3Click(Sender:

declarations ) declarations }

var

Forml: TForml;

stDay : array[1..7] of string[ll] =

('воскресенье', 'понедельник','вторник', 'среда','четверг','пятница','суббота');

stMonth : array[1..12] of string[8] =

('января','февраля','марта', 1 апреля', ■мая','июня■,'июля', 1 августа','сентября','октября', 'ноября','декабря');

Implementation

<$R *.dfm} uses DateUtils;

// сегодняшняя дата и день недели

procedure TForml.FormActivate(Sender: TObject);

var

Present: TDateTime; Year, Month, Day : Word; begin Present:= Now; // Wow — функция, возвращает текущую дату

// и время

DecodeDate(Present, Year, Month, Day); Labe11.Caption := 'Сегодня ' + IntToStr(Day)+' ' + StMonth[Month] + ' '+ IntToStr(Year)+' года, ' + stDay[DayOfWeek(Present)]; Forml.Label2.Caption := 'Сегодня и ближайшие дни';

end;

230

Чг

Примеры и задачи

231

// щелчок на кнопке Сегодня

procedure TForml.Button2Click(Sender: TObject);

var

st : string; // критерий запроса begin

Forml.Label2.Caption := 'Сегодня';

st: = FormatDateTime (' dd/rran/yyyy', Now) ;

Forml.Queryl.SQL[3] := '(Data = '''+st+''')';

Forml.Queryl.Open;

if forml.Queryl.RecordCount <> 0 then

forml.DataSourcel.DataSet : = Forml.Queryl else begin

ShowMessage('На сегодня никаких дел не запланировано.1; //forml.DataSourcel.DataSet ;= Tablel; end; end;

// завтра

procedure TForml.Button3Click(Sender: TObject); var

Present, // сегодня .,.»

Tomorrow: TDateTime; // завтра

begin

Forml.Label2.Caption := 'Завтра';

Present:= Now; // Now функция, возвращает текущую дату

// и время Tomorrow := IncDay(Present); // завтра

Forml.Queryl.SQL[3] :=

1(Data = '''+ FormatDateTime('dd/mm/yyyy',Tomorrow)+''') Forml.Queryl.Open; if forml.Queryl.RecordCount <> 0 then

forml.DataSourcel.DataSet := Forml.Queryl else

ShowMessage('На завтра никаких дел не запланировано.'), end;

// на этой неделе

procedure TForml.Button4Click(Sender: TObject);

var

Present: TDateTime;

EndOfWeek: TDateTime;

begin

Forml.Label2.Caption := 'На этой неделе';

Present := Now; // Now — функция, возвращает текущую дату

// и время EndOfWeek := StartOfAWeek(YearOf(Present),WeekOf(Present)+1) ;

Forml.Queryl.SQL[3] :=

1 (Data >= " ' + FormatDateTime;'dd/mm/yyyy1,Present) + '11)' + 'and'+

1(Data < ' ' ' + FormatDateTime (' dd/mm/yyyy1, EndOfWeek) +''')';

Forml.Queryl.Open; ' .

if forml.Queryl.RecordCount <> 0 then

forml.DataSourcel.DataSet := Forml.Queryl

else

ShowMessage('На эту неделю никаких дел не запланировано.');

end;

// на следующей неделе

procedure TForml.ButtonlClick(Sender: TObject);

var

Present: TDateTime;

dl, d2: TDateTime;

begin

Forml.Label2.Caption := 'На следующей неделе';

Present:= Now; // Wow — функция, возвращает текущую дату

// и время

dl := StartOfAWeeklYearOf(Present),WeekOf(Present)+l); d2 := StartOfAWeek(YearOf(Present),WeekOf(Present)+2); Forml.Queryl.SQL[3] :=

'(Data >= •"+ FormatDateTime('dd/mm/yyyy',dl)+''')' +

1 and■ +

1(Data < '''+ FormatDateTime('dd/mm/yyyy•,d2)+''')';

Forml.Queryl.Open;

if forml.Queryl.RecordCount <> 0 then

forml.DataSourcel.DataSet := Forml.Queryl

else

ShowMessage('На следующую неделю никаких дел

LHe запланировано.');

// показать все записи

procedure TForml.Button5Click(Sender: TObject);

232 begin

Часть П

F orml.Label2.Caption :<■ 'Все, что намечено сделать'; DataSourcel.DataSet := Tablel; Tablel.Active := True;

end; end.

Печать щ

Рис. 1.77. Форма программы Счет



68. Напишите программу, используя которую можно подгото­вить и распечатать накладную. Рекомендуемый вид формы про­граммы приведен на рис. 1.77.

Примеры и задачи

{ Программа демонстрирует только вывод на печать. ) unit schet_;

interface

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids, ExtCtrls;

type

TForml = class(TForm)

StringGridl: TStringGrid;

Buttonl: TButton;

Button2: TButton;

Editl: TEdit;

Edit2: TEdit;

procedure FormCreate(Sender: TObject);

procedure Button2Click(Sender: TObject); private

{ Private declarations } public

{ Public declarations } end;

var

Forml: TForml;