Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...
Топ:
Оценка эффективности инструментов коммуникационной политики: Внешние коммуникации - обмен информацией между организацией и её внешней средой...
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Эволюция кровеносной системы позвоночных животных: Биологическая эволюция – необратимый процесс исторического развития живой природы...
Интересное:
Влияние предпринимательской среды на эффективное функционирование предприятия: Предпринимательская среда – это совокупность внешних и внутренних факторов, оказывающих влияние на функционирование фирмы...
Средства для ингаляционного наркоза: Наркоз наступает в результате вдыхания (ингаляции) средств, которое осуществляют или с помощью маски...
Мероприятия для защиты от морозного пучения грунтов: Инженерная защита от морозного (криогенного) пучения грунтов необходима для легких малоэтажных зданий и других сооружений...
Дисциплины:
2017-11-28 | 176 |
5.00
из
|
Заказать работу |
WPARAM wParam, LPARAM lParam)
{
Switch (msg)
{ HANDLE_MSG (hwnd, WM_PAINT, GraphOnPaint);
default:
return DefWindowProc (hwnd, msg, wParam, lParam);
}
}
/* --- Обработчик сообщения WM_PAINT окна графики */
Void GraphOnPaint (HWND hwnd)
{
PAINTSTRUCT ps;
HDC hdc=BeginPaint (hwnd, &ps);
MoveToEx (hdc, 10, cos (nFreq * acos((double)-1) +
(double)sinfo.nPos*M_PI/180)*100 + 110, NULL);
SelectPen (hdc, hRedPen);
for (int i=-100; i<100; i++)
LineTo (hdc, i+110, cos (nFreq * acos ((double)i/100) +
(double)sinfo.nPos*M_PI/180)*100 + 110);
for (int i=100; i>=-100; i--)
LineTo (hdc, i+110, cos (-nFreq * acos ((double)i/100) +
(double)sinfo.nPos*M_PI/180)*100 + 110);
EndPaint (hwnd, &ps);
}
/* --- Обработчик сообщения WM_HSCROLL */
Void OnHScroll (HWND, HWND hwndCtl, UINT code, int pos)
{
char szT[10];
if ((hwndCtl==hwndTrack) && (code==TB_ENDTRACK))
nFreq = SendMessage (hwndTrack, TBM_GETPOS, 0, 0);
if (hwndCtl==hwndScroll)
{ switch (code)
{ case SB_LINERIGHT:
sinfo.nPos++;
if (sinfo.nPos > sinfo.nMax)
sinfo.nPos = sinfo.nMax;
SetScrollInfo (hwndScroll, SB_CTL, &sinfo, TRUE);
break;
case SB_LINELEFT:
sinfo.nPos--;
if (sinfo.nPos < sinfo.nMin)
sinfo.nPos = sinfo.nMin;
SetScrollInfo (hwndScroll, SB_CTL, &sinfo, TRUE);
break;
case SB_PAGERIGHT:
sinfo.nPos+=sinfo.nPage;
if (sinfo.nPos > sinfo.nMax)
sinfo.nPos = sinfo.nMax;
SetScrollInfo (hwndScroll, SB_CTL, &sinfo, TRUE);
break;
case SB_PAGELEFT:
sinfo.nPos-=sinfo.nPage;
if (sinfo.nPos < sinfo.nMin)
sinfo.nPos = sinfo.nMin;
SetScrollInfo (hwndScroll, SB_CTL, &sinfo, TRUE);
break;
case SB_THUMBTRACK:
sinfo.nPos = pos;
if (sinfo.nPos > sinfo.nMax)
sinfo.nPos = sinfo.nMax;
if (sinfo.nPos < sinfo.nMin)
sinfo.nPos = sinfo.nMin;
SetScrollInfo (hwndScroll, SB_CTL, &sinfo, TRUE);
break;
}
wsprintf (szT, "%d", sinfo.nPos);
SetWindowText (hwndStatic, szT);
}
// --- Перерисовать график
InvalidateRect (hwndGraph, NULL, TRUE);
}
/* --- Обработчик сообщения WM_GETMINMAXINFO */
Void OnGetMinMaxInfo (HWND, LPMINMAXINFO lpmmi)
{
lpmmi->ptMinTrackSize.x = XSIZE;
lpmmi->ptMinTrackSize.y = YSIZE;
lpmmi->ptMaxTrackSize.x = XSIZE;
lpmmi->ptMaxTrackSize.y = YSIZE;
}
/* --- Обработчик сообщения WM_DESTROY */
Void OnDestroy (HWND)
{
DeleteObject (hGreyBrush);
DeleteObject (hRedPen);
PostQuitMessage(0);
}
// Amper_A.cpp
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
USERES("Amper_A.res");
USEFORM("Amper_1.cpp", Form1);
//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
Try
{
Application->Initialize();
Application->CreateForm(__classid(TForm1), &Form1);
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
return 0;
}
//---------------------------------------------------------------------------
// Amper_1.cpp
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Amper_1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
double u=10, i, r=5;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
//u = StrToFloat (Edit1->Text);
//r = StrToFloat (Edit2->Text);
u = atof (Edit1->Text.c_str());
r = atof (Edit2->Text.c_str());
i = u/r;
Edit1->Text = FloatToStrF (u, ffFixed, 7, 2) + " V";
Edit2->Text = FloatToStrF (r, ffFixed, 7, 1) + " Om";
Label4->Caption = "Ток = " +
FloatToStr (i) + " А";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Form1->Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Edit1->Text = FloatToStr (u) + " V";
Edit2->Text = FloatToStr (r) + " Om";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit2Click(TObject *Sender)
{
u = atof (Edit1->Text.c_str());
Edit1->Text = FloatToStrF (u, ffFixed, 7, 2) + " V";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit1Click(TObject *Sender)
{
r = atof (Edit2->Text.c_str());
Edit2->Text = FloatToStrF (r, ffFixed, 7, 1) + " Om";
}
//---------------------------------------------------------------------------
// Amper1.cpp
//---------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
//---------------------------------------------------------------
USEFORM("amper1_.cpp", Form1);
//---------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
Try
{
Application->Initialize();
Application->CreateForm(__classid(TForm1), &Form1);
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
return 0;
}
//---------------------------------------------------------------
/* Amper1_.cpp
Программа вычисляет силу тока в электрической цепи.
Демонстрирует обработку:
- события KeyPress;
- исключения EZerroDevide (деление на ноль)
при помощи инструкции try … catch.
*/
#include <vcl.h>
#pragma hdrstop
#include "amper1_.h"
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
// щелчок на кнопке Вычислить
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Float u; // напряжение
Float r; // сопротивление
Float i; // ток
// проверим, введены ли данные в поля Напряжение и Сопротивление
if (((Edit1->Text).Length() == 0) || ((Edit2->Text).Length() == 0))
{
MessageDlg("Надо ввести напряжение и сопротивление",
mtInformation, TMsgDlgButtons() << mbOK, 0);
if ((Edit1->Text).Length() == 0)
Edit1->SetFocus(); // курсор в поле Напряжение
Else
Edit2->SetFocus(); // курсор в поле Сопротивление
return;
};
// получить данные из полей ввода
u = StrToFloat(Edit1->Text);
r = StrToFloat(Edit2->Text);
// вычислить ток
Try
{
i = u/r;
}
catch (EZeroDivide &e)
{
ShowMessage("Величина опротивления не должна быть равна нулю");
Edit2->SetFocus(); // курсор в поле Сопротивление
return;
}
// вывести результат в поле Label4
Label4->Caption = "Ток: " +
FloatToStrF(i,ffGeneral,7,2) + " A";
}
// нажатие клавиши в поле Напряжение
// коды запрещенных клавиш заменим нулем, в результате
// символы этих клавиш в поле редактирования не появятся
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
// Key - код нажатой клавиши
// проверим, является ли символ допустимым
if ((Key >= '0') && (Key <= '9')) // цифра
return;
// Глобальная переменная Decimalseparator
// содержит символ, используемый в качестве разделителя
// при записи дробных чисел
if (Key == DecimalSeparator)
{
if ((Edit1->Text).Pos(DecimalSeparator)!= 0)
Key = 0; // разделитель уже введен
return;
}
if (Key == VK_BACK) // клавиша <Backspace>
return;
if (Key == VK_RETURN) // клавиша <Enter>
{
Edit2->SetFocus();
return;
};
// остальные клавиши запрещены
Key = 0; // не отображать символ
}
// нажатие клавиши в поле Сопротивление
void __fastcall TForm1::Edit2KeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
if ((Key >= '0') && (Key <= '9')) // цифра
return;
if (Key == DecimalSeparator) {
if ((Edit2->Text).Pos(DecimalSeparator)!= 0)
Key = 0; // разделитель уже введен
return;
}
if (Key == VK_BACK) // клавиша <Backspace>
return;
if (Key == VK_RETURN) // клавиша <Enter>
{
Button1->SetFocus(); // переход к кнопке Вычислить
// повторное нажатие клавиши <Enter>
// активизирует процесс вычисления тока
// см. Button1Click
return;
};
// остальные клавиши запрещены
Key = 0; // не отображать символ
}
// щелчок на кнопке Завершить
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Form1->Close(); // закрыть форму приложения
}
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...
Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...
Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!