Кафедра Автоматизации производственных процессов — КиберПедия 

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...

Кафедра Автоматизации производственных процессов

2017-11-28 135
Кафедра Автоматизации производственных процессов 0.00 из 5.00 0 оценок
Заказать работу

Кафедра Автоматизации производственных процессов

 

 

А.Б.Кикин

 

 

ТЕХНОЛОГИЯ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ

ПРИМЕРЫ ПРОГРАММ НА С++

 

 

Файл СОДЕРЖАНИЕ Стр.
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 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.404 с.