- •Стандартты математикалық функциялар
- •Жобаға жаңа форма қосу жолдары қандай?
- •Формаға компоненттерді орналастыру жолдарын атаңыз?
- •Компоненттердің өлшемдерін орнату және ығыстыру тәсілдері қандай
- •Айнымалы деген не
- •Жергілікті және ауқымды айнымалылар
- •Өрнектердегі типтерді түрлендіру. Типтерді келтіру
- •Тармақталу операторлары а) Шартты оператордың жазылу форматын көрсетіңіз б) switch таңдау операторларының жұмыс принципі қандай?
- •TLabel компоненті
- •For(инициализация; өрнек; модификация) операторлар;
- •While (өрнек) оператор
- •Мәтіндік ақпаратты енгізу және бейнелеу компоненттері
- •2) Функциялармен жұмыс. Функция аргументтері
- •Батырмалар, басқарушы элементтер
- •2) Көрсеткіштер және массивтер
- •Билет № __11_
- •1. Меню компоненттері .
- •2. Жолдармен жұмыс
- •Билет № __12_
- •1. Панельдер.
- •TLabel компоненті
- •Edit, MaskEdit компоненттерінде енгізілетін және шығарылатын мәтін AnsiString типті Text қасиетімен анықталады. TEdit компоненті
- •2. Құрылымдар мен біріктірулер
- •Билет 13
- •Билет 14
- •Файлдар. Файлдармен жұмыс
- •1Сурак Графикалық бейнелерді тұрғызу .
- •2Сурак. А)fprintf және fscanf функцияларын сипаттаңыз
- •1Сурак Графика және мультимедиа
- •2Сурак а) fwrite және fread функцияларын сипаттаңыз
- •1. Қолданбадан сыртқы программаларды жүктеу жолдары
- •2. А) Графикалық режимді тағайындау
- •2. Файлдық мәліметтерді өңдеу
- •Fwrite және fread функцияларын пайдалану
- •Fgets және fputs функцияларын пайдалану
- •Айнымалы деген не
- •Жергілікті және ауқымды айнымалылар
- •Өрнектердегі типтерді түрлендіру. Типтерді келтіру
- •Тармақталу операторлары а) Шартты оператордың жазылу форматын көрсетіңіз б) switch таңдау операторларының жұмыс принципі қандай?
Edit, MaskEdit компоненттерінде енгізілетін және шығарылатын мәтін AnsiString типті Text қасиетімен анықталады. TEdit компоненті
Anchors – Жиын типті қасиет. Форма өлшемі өзгергенде компонент ұзындығы қалай өзгеретіндігін анықтайды
BorderStyle – енгізу облысының жиегі
Color – фон түсі.
ReadOnly – енгізілген мәтінді жөндестіруге тыйым салады.
PasswordChar – Енгізілетін мәтін орнына бір түрдегі символдарды бейнелеу
Text - AnsiString типті енгізілген жолды қамтиды
2. Құрылымдар мен біріктірулер
а) Құрылым дегеніміз не?
б) Құрылымды сипаттау форматын көрсетіңіз
в) Біріктірулер
Құрылымның массивтен айырмашылығы: құрылымның элементтері әр типті бола береді. C++ құрылымдық класс түрі болып табылады және оның барлық қасиеттеріне ие.
Құрылымды сипаттау үшін struct қызметші сөзі қолданылады.
Сипатталынуы:
struct [тип аты] {
тип 1 элемент 1;
тип 2 элемент 2;
............................
тип n элемент n ; }
[сипаттау тізімі];
Құрылым элементтері құрылым өрістері деп аталады және осы құрылымның типінен басқа кез келген типті қабылдай береді. Бірақ оған көрсеткіш бола алады. Егер типтің аты болмаса, онда айнымалылардың, көрсеткіштердің немесе массивтердің сипаттау тізімі көрсетілу керек. Бқл жағдайда құрылымды сипаттау осы тізімнің элементтерін анықтау үшін пайдаланылады.
Егер тізім жоқ болса, құрылым сипаттамасы жаңа типті анықтайды. Ол типтің атын кейін стандартты типтермен қатар пайдалануға болады.
Құрылым инициализациясы үшін оның элементтерінің мәнің фигуралы жақша{} ішіне олардың сипатталу реті бойынша жазылады.
Билет 13
1.Жүйелік диалогтар .
а) Диалог компоненттердің жалпы сипаттамасы?
б) Диалог компоненттерің түрлерін ата? .
в) Негізгі қасиеттері. Оқиғалары
Теперь, когда вы оснастили программу Steps созданным из ресурса диалоговым блоком, нужно научиться взаимодействовать с этим
диалоговым блоком. Сначала вы создадите объект, инкапсулирующий все характеристики окна пера, затем используете диалоговый блок для установки и изменения этих характеристик.
В данной главе описаны следующие шаги:
* Определение объекта пера.
* Создание сложного диалогового блока.
* Добавление управляющих объектов.
* Создание буфера передачи.
* Выполнение диалогового блока.
* Чтение результатов.
Шаг 6: Изменение атрибутов пера
-----------------------------------------------------------------
+-----------------------+
| Step 1: Basic App |
| Step 2: Text |
| Step 3: Lines |
| Step 4: Menu |
| Step 5: About Box |
|XStepX6:XPensXXXXXXXXXX|
| Step 7: Painting |
| Step 8: Streams |
| Step 9: Printing |
| Step 10: Palette |
| Step 11: BWCC |
| Step 12: Custom ctrls |
+-----------------------+
Данный шаг охватывает ряд тем, касающихся изобразительных средств Windows, особенно перьевых средств, применяемых для изображения линий. Перья Windows имеют три отдельных атрибута: стиль, ширину и цвет.
Первая часть данного шага - создание объекта для представления пера не является абсолютно необходимой, но позволяет вашему окну работать с пером как единой сущностью, а не отслеживать отдельно все атрибуты перьев. Инкапсулируя перо, вы можете также избежать необходимости иметь дело с некоторыми повторяющимися деталями использования инструментальных средств GDI, аналогично тому, как объекты окон ObjectWindows предохраняют вас от мелких деталей, связанных с созданием окна.
Создание объекта пера
-----------------------------------------------------------------
Хотя Windows ссылается на свои изобразительные средства как на "объекты" (отсюда и имена типа SelectObject и DeleteObject), они не являются объектами в истинном объектно-ориентированном смысле, так как не используют наследование и полиморфизм. Перо на самом деле представляет собой просто группу из трех характеристик отображения, на которые Windows ссылается при изображении линии. Эти характеристики являются просто свойствами контекста дисплея, но полезно рассматривать их, как встроенные в перо.
Характеристики пера
Три характеристики пера - это его стиль, размер и цвет. В шаге 3 вы изменяли размер пера и отслеживали текущий размер пера в поле объекта окна. Вместо реализации трех отдельных полей для отслеживания характеристик пера вы можете инкапсулировать их в единый объект TPen. Описание TPen имеет следующий вид:
type
PPen = ^TPen;
TPen = object(TObject)
Width, Style: Integer;
Color: Longint;
constructor Init(AStyle, AWidth: Integer;
AColor: Longint);
constructor Load(var S: TStream);
procedure ChangePen;
procedure Delete;
procedure Select(ADC: HDC);
procedure SetAttributes(AStyle, AWidth: Integer;
AColor: Longint);
procedure Store(var S: TStream);
private
PenHandle, OldPen: HPen;
TheDC: HDC;
PenData: TPenData;
end;
Примечание: Большую часть исходного кода из данной главы вы можете найти в файле PEN.PAS. Для использования
модуля Pen в STEP06A.PAS и STEP06B.PAS нужно внести минимальные изменения.
Примечание: Тип TPen определен в модуле Pen.
Конструктор Init создает новый объект пера с заданным стилем, размером и цветом. SetAttributes изменяет атрибуты уже соз-
данного объекта пера. ChangePen выводит диалоговое окно, позволяющее пользователю задать атрибуты пера. Load и Store позволяют сохранять объекты пера в потоке.
Выбор и удаление объектов пера
Наиболее интересную работу выполняют процедуры Select и Delete. Select создает изобразительное средство Windows на основе характеристик, записанных в полях атрибутов. Вместо того, чтобы вызывать в графической программе для создания пера, получения его описателя, выбора пера в контексте дисплея, использования пера и его удаления функцию API Windows, вы строите объект пера, а затем можете его использовать, выделять и удалять.
Метод Delete отменяет описатель пера, освобождая ресурс для Windows. Select проверяет, имеется ли уже выделенное перо, и перед созданием и выбором нового отменяет существующее перо. Это полезно использовать, если это же перо предполагается применять повторно, так что вам не понадобиться вызывать Delete при каждом использовании пера. С другой стороны, в шаге 7 вы увидите, как можно сохранять нарисованные линии, и каждая линия будет иметь свой собственный объект пера. Если бы каждый объект пера создавался и сохранялся в пере Windows, Windows скоро исчерпала бы ресурсы. Поэтому важно непосредственно после использования пера вызывать для его отмены метод Delete.
Основное достоинство TPen в том, что вам не нужно больше беспокоиться о получении, сохранении и удалении объекта пера. TPen имеет два частных поля, в одном их которых записывается описатель пера. Объект пера отслеживает описатель и взаимодействия с Windows, а ваша программа просто имеет дело с объектом. Другое частное поле, PenData, содержит используемый на этом шаге буфер передачи.
Файл STEP06A.PAS содержит код программы Steps, модифицированный для использования объекта TPen в модуле Pen. В основном изменения невелики (например, поле ThePen изменяет тип с HPen на PPen, а метод SetPenSize заменяется вызовом метода SetPenAttributes объекта пера, поскольку объект пера может управлять цветом и стилем наряду с размером).
2. Графикалық операторларды өңдеу
Жоспар:
Графикалық режимді тағайындау.
Түстер палитрасы
Графикалық операторлар
Кілттік сөздер: драйвер, экран кеңейтілімі, графикалық режим, графикалық операторлар.
Иллюстрациялық материал: слайд, электрондық оқулық – Алдабергенова А.О. С++ тілінде программалу негіздері
С++ те графикамен жұмыс жасау үшін Graphics.h және conio.h алғашқы файлдарын іске қосамыз және міндетті түрде conio.h құрамына кіретін getch() процедурасы болуы қажет.
Графикалық режимді тағайындау үшін драйвердің режимін анықтайтын және адаптердің жұмыс режимін тағайындайтын бүтін типті екі айнымалы болуы қажет. Графикалық режимді тағайындайтын айнымалыға міндетті түрде бас әріптермен жазылған DETECT мәні меншіктелуі қажет. Осы мәнді меншіктегенде айнымалыға үнсіз келісім бойынша 0 мәні меншіктеледі де, ол EGA.BGI драйверімен жұмыс жасайды. Осы кезде адаптердің жұмыс режимі 640x480x16 режиміне ауысады.
Графикалық режимді тағайындау процедурасы:
initgraph(&драйвер, &режим номері, ‘EGA.BGI файлының жолы’ ) Графикалық режимді жабу процедурасы- closegraph();
putpixel(x,y,c)-putpixel(20,25,2)-нүкте салу. Мұндағы с-түсі, ол 0..15-ке дейінгі мәндерді қабылдайды немесе түстердің ағылшын тіліндегі атын үлкен әріптермен жазу керек. Мысалы putpixel(20,25,RED)- қызыл түсті нүкте шығарады.
line(x1,y1,x2,y2)-line(20,25,45,25)-түзу салу
moveto(x,y)- moveto(20,25)-нүктені қажетті позицияға орналастыру
lineto (x,y)- нүктенің ағымдағы орнынан көрсетілген позицияға дейін сызық сызу
circle(x,y,r)-шеңбер салу
pieslice(x,y,а1,а2,r) – боялған шеңбер немесе сектор салу, мұндағы а1,а2–бастапқы және соңғы бұрыштар –pieslice(40,100,0,360,20)
rectangle(x1,y1,x2,y2)-іші боялмайтын тіктөртбұрыш салу
ellipse(x,y, а1,а2,r1,r2)-элипс салу
bar(x1,y1,x2,y2)-іші боялған тіктөртбұрыш салу
bar3d(x1,y1,x2,y2,а, ontop(onoff))- параллелепипед салу
arc(x,y,a, b, r)- доға салу, мұндағы a, b –бастапқы және соңғы бұрыш - arc(100,50,0,180,50)
fillellipse(x,y,xr,yr)- іші боялған эллипс салу
outtext(“Graphica”)-мәтінді экранның сол жақ жоғарғы бұрышына шығару
outtextxy(x,y,“Graphica”)-мәтінді x,y позициясына шығару
setсolor(c)- осы процедурадан кейін орналасқан объектілердің жиегін берілген с түсімен бояйды. Мысалы setсolor(6); circle(200,150,50)-шеңбердің жиегі қоңыр түске боялады.
setfillstyle(int Стиль, int түс)- бояу стилін және түсін береді. Мұндағы стиль 0.. 12 –ге дейінгі аралықты қабылдайды. Түс 0..15 аралығында. Мысалы, setfillstyle(1, 14) немесе setfillstyle(SOLD_FILL, 14)- Бұл кезде осы процедурадан кейн орналасқан іші боялатын объектілер тұтас сары түске боялады, өйткені стильдің 1 немесе SOLD_FILL мәні тұтас бояу дегенді білдіреді.
