Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Interface





Uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls, Grids;

Type

TForm1 = class (TForm)

StringGrid1: TStringGrid;

EdCell: TEdit;

EdSum: TEdit;

SellAgree: TButton;

SumAgree: TButton;

Exit: TButton;

DecCol: TButton;

IncCol: TButton;

DecRow: TButton;

IncRow: TButton;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

procedure FormCreate(Sender: TObject);

procedure DecColClick(Sender: TObject);

procedure IncColClick(Sender: TObject);

procedure DecRowClick(Sender: TObject);

procedure IncRowClick(Sender: TObject);

procedure ExitClick(Sender: TObject);

procedure SellAgreeClick(Sender: TObject);

procedure StringGrid1DblClick(Sender: TObject);

procedure SumAgreeClick(Sender: TObject);

Private

{ Private declarations }

Public

{ Public declarations }

end;

Var

Form1: TForm1;

Implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);

Begin

StringGrid1.ColCount:=6;

StringGrid1.RowCount:=4;

StringGrid1.Cells[0,0]:='Валюта';

StringGrid1.Cells[1,0]:='Курс рубля;

StringGrid1.DefaultColWidth:=78;

StringGrid1.Cells[2,0]:='Сумма выдачи';

StringGrid1.Cells[3,0]:='Комиссия, %';

StringGrid1.Cells[4,0]:='Комиссионные';

StringGrid1.Cells[5,0]:='Взнос, руб.';

StringGrid1.Cells[0,1]:='USA';

StringGrid1.Cells[0,2]:='FST';

StringGrid1.Cells[0,3]:='EUR';

StringGrid1.cells[1,1]:='23.5';

StringGrid1.cells[1,2]:='45';

StringGrid1.cells[1,3]:='37.0';

StringGrid1.cells[3,1]:='2';

StringGrid1.cells[3,2]:='2';

StringGrid1.cells[3,3]:='2';

Label4.Caption:='По состоянию на '+DateToStr(Date);

end;

procedure TForm1.DecColClick(Sender: TObject);

Begin

if StringGrid1.ColCount>2 then StringGrid1.ColCount:=StringGrid1.ColCount-1;

end;

procedure TForm1.IncColClick(Sender: TObject);

Begin

StringGrid1.ColCount:=StringGrid1.ColCount+1;

end;

procedure TForm1.DecRowClick(Sender: TObject);

Begin

if StringGrid1.RowCount>2 then StringGrid1.RowCount:=StringGrid1.RowCount-1;

end;

procedure TForm1.IncRowClick(Sender: TObject);

Begin

StringGrid1.RowCount:=StringGrid1.RowCount+1;

end;

procedure TForm1.ExitClick(Sender: TObject);

Begin

Close;

end;

procedure TForm1.SellAgreeClick(Sender: TObject);

Begin

StringGrid1.Cells[StringGrid1.Col,StringGrid1.Row]:=EdCell.Text;

end;

procedure TForm1.StringGrid1DblClick(Sender: TObject);

Begin

if (StringGrid1.Col=1) and (StringGrid1.Row>0)

then EdCell.Text:=StringGrid1.Cells[StringGrid1.Col,StringGrid1.Row];

end;

procedure TForm1.SumAgreeClick(Sender: TObject);

Var

ResVal, Komis:real;

i:byte;

S:string;

Begin

with form1 do

for i:=1 to StringGrid1.RowCount-1 do

if (StrToFloat(StringGrid1.Cells[1,i])<>0) then

Begin

Komis:=StrToFloat(EdSum.Text)/100*

StrToFloat(StringGrid1.Cells[3,i]);

ResVal:=(StrToFloat(EdSum.Text)-Komis)/

StrToFloat(StringGrid1.Cells[1,i]);

str(Komis:0:2,s);

StringGrid1.Cells[4,i]:=s;

str(ResVal:0:2,s);

StringGrid1.Cells[2,i]:=s;

str(StrToFloat(EdSum.Text):0:2,s);

StringGrid1.Cells[5,i]:=s;

end;

end;

end.

В программе применены следующие методы:

1. FormCreate. Он при создании формы заносит начальные данные в таблицу по координатам ячеек ACol (номер столбца) и ARow (номер строки). Одельным ячейкам компонента StringGrid1 через свойство StringGrid.Cell [ACol, ARow] присваиваются текстовые значения, а свойству Caption метки Label4 значение текущего времени.

2. CellAgreeClick. Он данные из текстового "Редактора ячеек" EdCell при нажатии на кнопку SellAgree (ОК) заносит в таблицу по текущим координатам выделенной ячейки таблицы. Учтите, что данные заносятся, как текстовая информация.

3. StringGrid1DblClick. Он позволяет двойным щелчком мыши по ячейкам таблицы переносить данные из таблицы в окно "Редактора ячеек" EdCell для их дальнейшего быстрого редактирования. Например, при изменении курса или процента комиссионных. Доступ к координатам текущей ячейки обеспечивается с помощью свойств Col и Row компонента StringGrid1. Редактировать надо только курсы валют.

4. SumAgreeClick. С его помощью данные из текстового редактора "Сумма для конвертации" EdSum при нажатии на кнопку SumAgree (Принято) заносятся в таблицу по текущим координатам. Учтите, что данные воспринимаются редактором, как текстовая информация, а вычисления необходимо производить с числами.

5. Для изменения размеров таблицы используются свойства ColCount и RowCount. Следующие 4 метода увеличивают или уменьшают числа столбцов и строк в процессе выполнения программы щелчками (вызывают событие onClick) по кнопкам размеров таблицы:

􀂃 Уменьшение числа столбцов TForm1.DecColClick.

􀂃 Увеличение числа столбцов TForm1.IncColClick.

􀂃 Уменьшение числа строк TForm1.DecRowClick.

􀂃 Увеличение числа строк TForm1.IncRowClick.

6. Для завершения работы с программой использован метод ExitClick, при осуществлении которого закрывается основная форма. Дублируется кнопка закрытия окна Windows.

Запустить проект на выполнение и опробовать действие всех кнопок. Внести в EdSum сумму для конвертации и проконтролировать результат расчетов в соответствующих ячейках. Изменить курс валюты и проконтролировать, как это повлияет на результаты расчетов. Форма при исполнении имеет вид рис. 11.3.

рис. 11.3. Интерфейс проекта в режиме выполнения

Выводы

1. Для создания таблиц используется компонент StringGrid (таблица строк).

2. Для управления используются компоненты Button (кнопка) и их обработчики событий.

3. Для пояснений используются компоненты Label (метка).

4. Для ввода данных используются компоненты Edit (однострочный редактор).

5. Кнопка “Выход” дублирует стандартную кнопку завершения приложения Windows.

 

Пример использования компонентов OpenDialog, SaveDialog и FontDialog

Создадим простой текстовый редактор, который позволил бы с помощью диалого­вых окон сохранять и открывать текстовые файлы, а также изменять характеристики шрифта.

Date: 2015-05-22; view: 588; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию