13.01.2015 Views

Объектно-ориентированное программирование на С++ - eDrive

Объектно-ориентированное программирование на С++ - eDrive

Объектно-ориентированное программирование на С++ - eDrive

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

29<br />

Variant v = Edit3–>Text;<br />

Label3–>Caption = (v.Type () == varString) v : BoolToStr (v.operator bool ());<br />

}<br />

В третьем примере да<strong>на</strong> форма с полями ввода Edit1 и Edit2, кнопкой<br />

Button1 и <strong>на</strong>дписью Label1:<br />

class TForm1 : public TForm {<br />

_ _published:<br />

TEdit *Edit1;<br />

TEdit *Edit2;<br />

TLabel *Label1;<br />

TButton *Button1;<br />

void _ _fastcall Button1Click (TObject *Sender);<br />

public:<br />

AnsiString CalcF (double, double);<br />

AnsiString CalcSF (AnsiString, double);<br />

AnsiString CalcS (AnsiString, AnsiString);<br />

};<br />

При <strong>на</strong>жатии кнопки данные из полей формы преобразуются к нужному<br />

формату, обрабатываются в соответствии с условием конкретной задачи, и<br />

результат возвращается в <strong>на</strong>дпись:<br />

void _ _fastcall TForm1::Button1Click (TObject *Sender) {<br />

AnsiString c = "";<br />

try {<br />

c = CalcF (StrToFloat (Form1–>Edit1–>Text),<br />

StrToFloat (Form1–>Edit2–>Text));<br />

} catch (Exception &EConvertError) {<br />

try {<br />

c = CalcSF (Form1–>Edit1–>Text, StrToFloat(Form1–>Edit2–>Text));<br />

} catch (Exception &EConvertError) {<br />

try {<br />

c = CalcS (Form1–>Edit1–>Text, Form1–>Edit2–>Text);<br />

} catch (...) { c = "Ошибка данных"; }<br />

}<br />

}<br />

Form1–>Label1–>Caption = c;<br />

}<br />

Далее следуют обработчики кнопки Button1, которые выводят в <strong>на</strong>дпись<br />

Label1 решение трех задач:

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!