Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...
Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой...
Топ:
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Проблема типологии научных революций: Глобальные научные революции и типы научной рациональности...
Интересное:
Подходы к решению темы фильма: Существует три основных типа исторического фильма, имеющих между собой много общего...
Наиболее распространенные виды рака: Раковая опухоль — это самостоятельное новообразование, которое может возникнуть и от повышенного давления...
Распространение рака на другие отдаленные от желудка органы: Характерных симптомов рака желудка не существует. Выраженные симптомы появляются, когда опухоль...
Дисциплины:
2017-11-28 | 135 |
5.00
из
|
Заказать работу |
|
|
Кафедра Автоматизации производственных процессов
А.Б.Кикин
ТЕХНОЛОГИЯ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ
ПРИМЕРЫ ПРОГРАММ НА С++
Файл | СОДЕРЖАНИЕ | Стр. |
FIGURES1.CPP | Одна окружность в центре экрана, наследование | |
FIGURES2.CPP | Окружность и треугольник – конструкторы, чистая виртуальная функция, абстрактный класс | |
FIGURES3.CPP | Две окружности и два треугольника | |
FIGURES4.CPP | Использование указателя на базовый класс | |
FIGURES5.CPP | Четыре указателя и цикл для вывода на экран | |
FIGURES6.CPP | Интерфейс: изменение цвета - {Tab}, выход - {Esc} | |
FIGURES7.CPP | Функция движения фигуры и интерфейс | |
FIGURES8.CPP | Головная программа и заголовочный файл | |
FIGURES8.H | Заголовочный файл с описанием классов | |
2-1.CPP | Пустое окно с полной функциональностью (Win API32) | |
8-3.CPP | Фигуры Лиссажу (Win API32) | |
AMPER_A.CPP | Закон Ома: головная программа (C++Builder) | |
AMPER_1.CPP | Закон Ома: обработчики (EXE требует библиотеку) | |
AMPER1.CPP | Закон Ома: головная программа (C++Builder) | |
AMPER1_.CPP | Закон Ома: обработчики с проверкой ввода |
Санкт-Петербург
// ПРОГРАММА FIGURES1
#include <graphics.h>
#include <bios.h>
Class TFigure
{ private:
int color;
int width;
public:
void setcolor (int c);
void setwidth (int w);
};
Void TFigure:: setcolor (int c)
{ color = c; }
Void TFigure:: setwidth (int w)
{ width = w; }
Class Circle: public TFigure
{ private:
int xC;
int yC;
int rad;
public:
void draw (int x, int y, int r);
};
Void Circle:: draw (int x, int y, int r)
{ circle (x, y, r);
}
Main ()
{ Circle c1;
int grmode, grdriver= DETECT;
initgraph (&grdriver, &grmode, "");
c1.setcolor (WHITE);
c1.setwidth (1);
c1.draw (getmaxx()/2, getmaxy()/2, 50);
bioskey(0);
closegraph();
return 0;
}
// ПРОГРАММА FIGURES2
#include <graphics.h>
#include <bios.h>
#define MAX_POINTS 4
Class TFigure
|
{ private:
int color;
int width;
int num_p;
int x[MAX_POINTS];
int y[MAX_POINTS];
public:
virtual void draw (void) = 0;
void setcol (int c);
void setwidth (int w);
void setnum_p (int n);
void setxy (int n, int xn, int yn);
int getcol (void);
int getwidth (void);
int getxn (int n);
int getyn (int n);
};
Void TFigure:: setcol (int c)
{ color = c; }
Void TFigure:: setwidth (int w)
{ width = w; }
void TFigure:: setnum_p (int n)
{ num_p = n; }
Int TFigure:: getwidth (void)
{ return width; }
Int TFigure:: getcol (void)
{ return color; }
Void TFigure:: setxy (int n, int xn, int yn)
{ x[n] = xn;
y[n] = yn;
}
Int TFigure:: getxn (int n)
{ return x[n]; }
Int TFigure:: getyn (int n)
{ return y[n]; }
Class Circle: public TFigure
{ private:
int rad;
public:
Circle (int x, int y, int r);
virtual void draw (void);
};
Circle:: Circle (int a, int b, int r)
{ setnum_p (1);
setxy (0, a, b);
rad = r;
}
Void Circle:: draw (void)
{ setlinestyle (0, 0, getwidth());
setcolor (getcol());
circle (getxn (0), getyn (0), rad);
}
Class Triangle: public TFigure
{ public:
virtual void draw (void);
Triangle (int a1, int b1, int a2, int b2, int a3, int b3);
};
Triangle:: Triangle (int a1, int b1, int a2, int b2, int a3, int b3)
{ setnum_p (3);
setxy (0, a1, b1);
setxy (1, a2, b2);
setxy (2, a3, b3);
}
Void Triangle:: draw (void)
{ setlinestyle (SOLID_LINE, 1, getwidth());
setcolor (getcol());
line (getxn(0), getyn(0), getxn(1), getyn(1));
line (getxn(1), getyn(1), getxn(2), getyn(2));
line (getxn(0), getyn(0), getxn(2), getyn(2));
}
Main ()
{ Circle c1(320, 240, 150);
Triangle t1 = Triangle (100, 100, 400, 150, 250, 300);
int grmode, grdriver=DETECT;
initgraph (&grdriver, &grmode, "");
c1.setcol (MAGENTA);
c1.setwidth (NORM_WIDTH);
c1.draw ();
t1.setcol (YELLOW);
t1.setwidth (THICK_WIDTH);
t1.draw ();
bioskey(0);
closegraph();
return 0;
}
// ПРОГРАММА FIGURES3
#include <graphics.h>
#include <bios.h>
#define MAX_POINTS 4
Class TFigure
{ private:
int color;
int width;
int num_p;
int x[MAX_POINTS];
int y[MAX_POINTS];
public:
virtual void draw (void) = 0;
void setcol (int c);
void setwidth (int w);
void setnum_p (int n);
void setxy (int n, int xn, int yn);
int getcol (void);
int getwidth (void);
int getxn (int n);
int getyn (int n);
};
Void TFigure:: setcol (int c)
{ color = c; }
Void TFigure:: setwidth (int w)
{ width = w; }
void TFigure:: setnum_p (int n)
{ num_p = n; }
Int TFigure:: getwidth (void)
{ return width; }
Int TFigure:: getcol (void)
{ return color; }
Void TFigure:: setxy (int n, int xn, int yn)
{ x[n] = xn;
y[n] = yn;
}
Int TFigure:: getxn (int n)
{ return x[n]; }
Int TFigure:: getyn (int n)
{ return y[n]; }
Class Circle: public TFigure
{ private:
int rad;
public:
Circle (int x, int y, int r);
virtual void draw (void);
};
Circle:: Circle (int a, int b, int r)
{ setnum_p (1);
setxy (0, a, b);
rad = r;
}
Void Circle:: draw (void)
{ setlinestyle (0, 0, getwidth());
setcolor (getcol());
circle (getxn (0), getyn (0), rad);
}
Class Triangle: public TFigure
{ public:
|
virtual void draw (void);
Triangle (int a1, int b1, int a2, int b2, int a3, int b3);
};
Triangle:: Triangle (int a1, int b1, int a2, int b2, int a3, int b3)
{ setnum_p (3);
setxy (0, a1, b1);
setxy (1, a2, b2);
setxy (2, a3, b3);
}
Main ()
{ Circle c1(320, 240, 150);
Circle c2(320, 240, 50);
Triangle t1(100, 100, 400, 150, 250, 300);
Triangle t2(400, 400, 600, 400, 500, 300);
int grmode, grdriver=DETECT;
initgraph (&grdriver, &grmode, "");
c1.setcol (MAGENTA);
c1.setwidth (NORM_WIDTH);
c1.draw ();
c2.setcol (GREEN);
c2.setwidth (THICK_WIDTH);
c2.draw ();
t1.setcol (YELLOW);
t1.setwidth (NORM_WIDTH);
t1.draw ();
t2.setcol (BLUE);
t2.setwidth (THICK_WIDTH);
t2.draw ();
bioskey(0);
closegraph();
return 0;
}
// ПРОГРАММА FIGURES4
#include <graphics.h>
#include <bios.h>
#define MAX_POINTS 4
Class TFigure
{ private:
int color;
int width;
int num_p;
int x[MAX_POINTS];
int y[MAX_POINTS];
public:
virtual void draw (void) = 0;
void setcol (int c);
void setwidth (int w);
void setnum_p (int n);
void setxy (int n, int xn, int yn);
int getcol (void);
int getwidth (void);
int getxn (int n);
int getyn (int n);
};
Main ()
{ Circle c1(320, 240, 150);
Circle c2(320, 240, 50);
Triangle t1(100, 100, 400, 150, 250, 300);
Triangle t2(400, 400, 600, 400, 500, 300);
TFigure *pf=&t2;
int grmode, grdriver=DETECT;
initgraph (&grdriver, &grmode, "");
c1.setcol (MAGENTA);
c1.setwidth (NORM_WIDTH);
c1.draw ();
c2.setcol (GREEN);
c2.setwidth (THICK_WIDTH);
c2.draw ();
t1.setcol (YELLOW);
t1.setwidth (NORM_WIDTH);
t1.draw ();
pf->setcol (BLUE);
pf->setwidth (THICK_WIDTH);
pf->draw ();
bioskey(0);
closegraph();
return 0;
}
// ПРОГРАММА FIGURES5
#include <graphics.h>
#include <bios.h>
#define MAX_POINTS 4
// *************************************
Class TFigure
{ private:
int color;
int width;
int num_p;
int x[MAX_POINTS];
int y[MAX_POINTS];
public:
virtual void draw (void) = 0;
void setcol (int c);
void setwidth (int w);
void setnum_p (int n);
void setxy (int n, int xn, int yn);
int getcol (void);
int getwidth (void);
int getxn (int n);
int getyn (int n);
};
Main ()
{ Circle c1(320, 240, 150);
Circle c2(320, 240, 50);
Triangle t1(100, 100, 400, 150, 250, 300);
Triangle t2(400, 400, 600, 400, 500, 300);
TFigure *pf[4];
int grmode, grdriver=DETECT, i, key;
initgraph (&grdriver, &grmode, "");
pf[0] = &c1;
pf[1] = &c2;
pf[2] = &t1;
pf[3] = &t2;
pf[3]->setcol (BLUE);
pf[3]->setwidth (THICK_WIDTH);
for (i=0; i<4; i++)
{ pf[i]->setcol (MAGENTA + i*2);
pf[i]->setwidth (NORM_WIDTH);
pf[i]->draw ();
}
key = bioskey(0);
closegraph();
return 0;
}
// ПРОГРАММА FIGURES6
#include <graphics.h>
#include <bios.h>
#define MAX_POINTS 4
// *************************************
Class TFigure
{ private:
int color;
int width;
int num_p;
int x[MAX_POINTS];
int y[MAX_POINTS];
public:
virtual void draw (void) = 0;
void setcol (int c);
void setwidth (int w);
void setnum_p (int n);
void setxy (int n, int xn, int yn);
int getcol (void);
int getwidth (void);
int getxn (int n);
int getyn (int n);
};
Main ()
{ Circle c1(320, 240, 150);
Circle c2(320, 240, 50);
Triangle t1(100, 100, 400, 150, 250, 300);
Triangle t2(400, 400, 600, 400, 500, 300);
TFigure *pf[NUM_F];
int grmode, grdriver=DETECT, i, key;
initgraph (&grdriver, &grmode, "");
pf[0] = &c1;
pf[1] = &c2;
pf[2] = &t1;
pf[3] = &t2;
for (i=0; i<NUM_F; i++)
{ pf[i]->setcol (MAGENTA + i*2);
pf[i]->setwidth (NORM_WIDTH);
pf[i]->draw ();
}
i = -1;
do { key = bioskey(0);
if (key == 0x0F09) // Tab
{ i++;
if (i == NUM_F)
i = 0;
pf[i]->setcol (pf[i]->getcol() + 1);
|
pf[i]->setwidth (THICK_WIDTH);
pf[i]->draw ();
}
} while (key!= 0x011B); // Esc
closegraph();
return 0;
}
// ПРОГРАММА FIGURES7
#include <graphics.h>
#include <bios.h>
#define MAX_POINTS 4
#define STEP 10
// *************************************
Class TFigure
{ private:
int color;
int width;
int num_p;
int x[MAX_POINTS];
int y[MAX_POINTS];
public:
virtual void draw (void) = 0;
void move (int k);
void setcol (int c);
void setwidth (int w);
void setnum_p (int n);
void setxy (int n, int xn, int yn);
int getcol (void);
int getwidth (void);
int getxn (int n);
int getyn (int n);
};
Main ()
{ Circle c1(320, 240, 150);
Circle c2(320, 240, 50);
Triangle t1(100, 100, 400, 150, 250, 300);
Triangle t2(400, 400, 600, 400, 500, 300);
TFigure *pf[NUM_F];
int grmode, grdriver=DETECT, i, key, prev, col;
initgraph (&grdriver, &grmode, "");
pf[0] = &c1;
pf[1] = &c2;
pf[2] = &t1;
pf[3] = &t2;
for (i=0; i<NUM_F; i++)
{ pf[i]->setcol (MAGENTA + i*2);
pf[i]->setwidth (NORM_WIDTH);
pf[i]->draw ();
}
i = -1;
do { key = bioskey(0);
if (key == 0x0F09) // Tab
{ if (i == -1)
;
Else
{ col = pf[prev]->getcol();
pf[prev]->setcol (BLACK);
pf[prev]->draw ();
pf[prev]->setcol (col);
pf[i]->setwidth (NORM_WIDTH);
pf[prev]->draw ();
}
i++;
if (i == NUM_F)
i = 0;
pf[i]->setwidth (THICK_WIDTH);
pf[i]->draw ();
prev = i;
}
if (i > -1)
pf[i]->move (key);
} while (key!= 0x011B); // Esc
closegraph();
return 0;
}
// ПРОГРАММА FIGURES8
#include <graphics.h>
#include <bios.h>
#include "figures8.h"
#define NUM_F 4
Main ()
{ Circle c1(320, 240, 150);
Circle c2(320, 240, 50);
Triangle t1(100, 100, 400, 150, 250, 300);
Triangle t2(400, 400, 600, 400, 500, 300);
TFigure *pf[NUM_F];
int grmode, grdriver=DETECT, i, key, prev, col;
initgraph (&grdriver, &grmode, "");
pf[0] = &c1;
pf[1] = &c2;
pf[2] = &t1;
pf[3] = &t2;
for (i=0; i<NUM_F; i++)
{ pf[i]->setcol (MAGENTA + i*2);
pf[i]->setwidth (NORM_WIDTH);
pf[i]->draw ();
}
i = -1;
do { key = bioskey(0);
if (key == 0x0F09) // Tab
{ if (i!= -1)
{ col = pf[prev]->getcol();
pf[prev]->setcol (BLACK);
pf[prev]->draw ();
pf[prev]->setcol (col);
pf[i]->setwidth (NORM_WIDTH);
pf[prev]->draw ();
}
i++;
if (i == NUM_F)
i = 0;
pf[i]->setwidth (THICK_WIDTH);
pf[i]->draw ();
prev = i;
}
if (i > -1)
pf[i]->move (key);
} while (key!= 0x011B); // Esc
closegraph();
return 0;
}
// ФАЙЛ ВКЛЮЧЕНИЯ (ЗАГОЛОВОЧНЫЙ) FIGURES8.H
#include <graphics.h>
#define MAX_POINTS 4
#define STEP 10
// *************************************
Class TFigure
{ private:
int color;
int width;
int num_p;
int x[MAX_POINTS];
int y[MAX_POINTS];
public:
void setcol (int c) { color = c; }
void setwidth (int w) { width = w; }
void setnum_p (int n) { num_p = n; }
int getcol (void) { return color; }
int getwidth (void) { return width; }
int getxn (int n) { return x[n]; }
int getyn (int n) { return y[n]; }
Virtual void draw (void)
{ setlinestyle (0, 0, getwidth());
setcolor (getcol());
circle (getxn (0), getyn (0), rad);
}
};
// ***************************************
Virtual void draw (void)
{ setlinestyle (SOLID_LINE, 1, getwidth());
setcolor (getcol());
line (getxn(0), getyn(0), getxn(1), getyn(1));
line (getxn(1), getyn(1), getxn(2), getyn(2));
line (getxn(0), getyn(0), getxn(2), getyn(2));
}
};
// 2-1.CPP
|
/* --- Простейшая программа с главным окном - 13.01.2003 [К.Г.Финогенов] */
#define STRICT
#include <windows.h>
#include <windowsx.h>
/* --- Прототип оконной функции пользователя */
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM);
/* --- Главная функция */
Switch (msg)
{ case WM_DESTROY:
PostQuitMessage (0);
return 0;
default:
return DefWindowProc (hwnd, msg, wParam, lParam);
}
}
// File 8-3.cpp
#define STRICT
#include <windows.h>
#include <windowsx.h>
#include <commctrl.h>
#include <math.h> // sin(), acos()
#include "8-3.h"
/* --- Глобальные переменные прорграммы */
//int nPhase=0; // Сдвиг фаз
int nFreq=1; // Отношение частот
HINSTANCE hInstance;
HWND hwndGraph, hwndTrack, hwndScroll, hwndStatic;
HPEN hRedPen;
HBRUSH hGreyBrush;
SCROLLINFO sinfo;
/* --- Главная функция */
Switch (msg)
{ HANDLE_MSG (hwnd, WM_CREATE, OnCreate);
HANDLE_MSG (hwnd, WM_HSCROLL, OnHScroll);
HANDLE_MSG (hwnd, WM_GETMINMAXINFO, OnGetMinMaxInfo);
HANDLE_MSG (hwnd, WM_DESTROY, OnDestroy);
default:
return DefWindowProc (hwnd, msg, wParam, lParam);
}
}
/* --- Обработчик сообщения WM_CREATE */
10, 10, 220, 220,
hwnd, NULL, hInstance, NULL);
// --- Линейка с ползунком
hwndTrack = CreateWindowEx (0, TRACKBAR_CLASS, NULL,
WS_CHILD|WS_VISIBLE|TBS_AUTOTICKS,
250, 55, 208, 30,
hwnd, NULL, hInstance, NULL);
SendMessage (hwndTrack, TBM_SETRANGE, TRUE, MAKELPARAM(1,10));
SendMessage (hwndTrack, TBM_SETPAGESIZE, 0, 1);
SendMessage (hwndTrack, TBM_SETPOS, TRUE, 1);
// --- Поясняющие надписи на линейке с ползунком
CreateWindow ("STATIC", "Отношение частот по осям",
WS_CHILD|WS_VISIBLE|SS_LEFT,
260, 25, 220, 22,
hwnd, NULL, hInstance, NULL);
CreateWindow ("STATIC", "1 2 3 4 5 6 7 8 9 10",
WS_CHILD|WS_VISIBLE|SS_LEFT,
260, 85, 220, 22,
hwnd, NULL, hInstance, NULL);
// --- Линейка прокрутки
sinfo.cbSize = sizeof(SCROLLINFO);
sinfo.fMask = SIF_ALL;
sinfo.nMin = 0;
sinfo.nMax = 180;
sinfo.nPage = 15;
sinfo.nPos = 0;
hwndScroll = CreateWindow ("SCROLLBAR", NULL,
WS_CHILD|WS_VISIBLE,
260, 160, 200, 20,
hwnd, NULL, hInstance, NULL);
SetScrollInfo (hwndScroll, SB_CTL,&sinfo, TRUE);
// --- Поясняющие надписи для линейки прокрутки
CreateWindow ("STATIC", "Сдвиг фаз в градусах",
WS_CHILD|WS_VISIBLE|SS_LEFT,
280, 130, 200, 22,
hwnd, NULL, hInstance, NULL);
CreateWindow ("STATIC", "0",
WS_CHILD|WS_VISIBLE|SS_LEFT,
280, 180, 22, 22,
hwnd, NULL, hInstance, NULL);
CreateWindow ("STATIC", "180",
WS_CHILD|WS_VISIBLE|SS_LEFT,
430, 180, 40, 22,
hwnd, NULL, hInstance, NULL);
// --- Статический элемент для вывода сдвига фаз
hwndStatic = CreateWindow ("STATIC", "00",
WS_CHILD|WS_VISIBLE|SS_LEFT,
355, 200, 50, 20,
hwnd, NULL, hInstance, NULL);
return TRUE;
}
Switch (msg)
{ HANDLE_MSG (hwnd, WM_PAINT, GraphOnPaint);
default:
return DefWindowProc (hwnd, msg, wParam, lParam);
}
}
/* --- Обработчик сообщения WM_PAINT окна графики */
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);
//---------------------------------------------------------------------------
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);
//---------------------------------------------------------------
Try
{
Application->Initialize();
Application->CreateForm(__classid(TForm1), &Form1);
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
return 0;
}
//---------------------------------------------------------------
/* Amper1_.cpp
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(); // закрыть форму приложения
}
Кафедра Автоматизации производственных процессов
А.Б.Кикин
|
|
Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...
Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...
Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!