Рисование экранов и компонентов

Помимо определяемых пользователем кодов событий, вы также можете вызвать вызов процедур рисования, связанных с определенными экранами, которые являются неотъемлемыми компонентами Visual TFT.
Эти процедуры рисуют желаемый экран, определенный параметром.

Из-за различных подходов к рисованию между контроллером FT8xx и остальными поддерживаемыми контроллерами, процедуры рисования организованы следующим образом:

FT8xx рисующие процедуры


Динамические процедуры рисования экрана

Код mikroC

Прототип процедуры Описание Пример
void DrawScreen(TScreen *aScreen); Рисует экран со всеми его компонентами следующим образом:
  • Если текущий экран равен экрану, пропущенному с помощью параметра aScreen (то есть, если тот же экран отображается как текущий), ресурсы GRAM обновляться не будут.
  • Если текущий экран не равен экрану, пропущенному через параметр aScreen (т.е. если нарисованный экран не совпадает с текущим), все ресурсы GRAM будут обновлены.
DrawScreen(&ScreenDemo);
void DrawScreenO(TScreen *aScreen, char aOptions);

Рисует экран со всеми его компонентами со следующими параметрами, передаваемыми в качестве параметра aOptions:

  • LDR_STATIC: Обновите все ресурсы GRAM, используемые компонентами, со статическим свойством, установленным в значение true (т.е. компоненты, которые находятся во флэш-памяти).
  • LDR_DYNAMIC: Обновите все ресурсы GRAM, используемые компонентами, со статическим свойством, установленным в false (т.е. компоненты, которые находятся в ОЗУ).
  • LDR_ALL: Обновите все ресурсы GRAM, используемые компонентами на экране.
  • LDR_NONE: Не обновляйте ресурсы GRAM, используемые компонентами на экране.
Пожалуйста, см. это примечание также.
// Draw all components and refresh all GRAM resources used by the components on the screen
DrawScreenO(&ScreenDemo, LDR_ALL);

// Draw all components and refresh only GRAM resources used by the components that reside in RAM
DrawScreenO(&ScreenDemo, LDR_DYNAMIC);

Код mikroPascal

Прототип процедуры Описание Пример
procedure DrawScreen(aScreen : ^TScreen) Рисует экран со всеми его компонентами следующим образом:
  • Если текущий экран равен экрану, пропущенному с помощью параметра aScreen (то есть, если тот же экран отображается как текущий), ресурсы GRAM обновляться не будут.
  • Если текущий экран не равен экрану, пропущенному через параметр aScreen (т.е. если нарисованный экран не совпадает с текущим), все ресурсы GRAM будут обновлены.
DrawScreen(@ScreenDemo);
procedure DrawScreenO(aScreen : ^TScreen, aOptions : byte);

Рисует экран со всеми его компонентами со следующими параметрами, передаваемыми в качестве параметра aOptions:

  • LDR_STATIC: Обновите все ресурсы GRAM, используемые компонентами, со статическим свойством, установленным в значение true (т.е. компоненты, которые находятся во флэш-памяти).
  • LDR_DYNAMIC: Обновите все ресурсы GRAM, используемые компонентами, со статическим свойством, установленным в false (т.е. компоненты, которые находятся в ОЗУ).
  • LDR_ALL: Обновите все ресурсы GRAM, используемые компонентами на экране.
  • LDR_NONE: Не обновляйте ресурсы GRAM, используемые компонентами на экране.
Пожалуйста, см. это примечание также.
// Draw all components and refresh all GRAM resources used by the components on the screen
DrawScreenO(@ScreenDemo, LDR_ALL);

// Draw all components and refresh only GRAM resources used by the components that reside in RAM
DrawScreenO(@ScreenDemo, LDR_DYNAMIC);

Код mikroBasic

Прототип процедуры Описание Пример
sub procedure DrawScreen(dim aScreen as ^TScreen) Рисует экран со всеми его компонентами следующим образом:
  • Если текущий экран равен экрану, пропущенному с помощью параметра aScreen (то есть, если тот же экран отображается как текущий), ресурсы GRAM обновляться не будут.
  • Если текущий экран не равен экрану, пропущенному через параметр aScreen (т.е. если нарисованный экран не совпадает с текущим), все ресурсы GRAM будут обновлены.
DrawScreen(@ScreenDemo)
sub procedure DrawScreenO(dim aScreen as ^TScreen, dim aOptions as byte)

Рисует экран со всеми его компонентами со следующими параметрами, передаваемыми в качестве параметра aOptions:

  • LDR_STATIC: Обновите все ресурсы GRAM, используемые компонентами, со статическим свойством, установленным в значение true (т.е. компоненты, которые находятся во флэш-памяти).
  • LDR_DYNAMIC: Обновите все ресурсы GRAM, используемые компонентами, со статическим свойством, установленным в false (т.е. компоненты, которые находятся в ОЗУ).
  • LDR_ALL: Обновите все ресурсы GRAM, используемые компонентами на экране.
  • LDR_NONE: Не обновляйте ресурсы GRAM, используемые компонентами на экране.
Пожалуйста, см. это примечание также.
' Draw all components and refresh all GRAM resources used by the components on the screen
DrawScreenO(@ScreenDemo, LDR_ALL)

' Draw all components and refresh only GRAM resources used by the components that reside in RAM
DrawScreenO(@ScreenDemo, LDR_DYNAMIC)

Static Screen Drawing Routines

These routines are used if the static property of the screen has been set to true, i.e. the screen is placed in the FLASH memory :

mikroC Code

Прототип процедуры Описание Пример
void DrawScreen(unsigned int aScreenID); Обратитесь к DrawScreen процедуре, описанной выше. DrawScreen(CScreenDemoScreenID);
void DrawScreenO(unsigned int aScreenID, char aOptions); Обратитесь к DrawScreenO процедуре, описанной выше. // Draw all components and refresh all GRAM resources used by the components on the screen
DrawScreenO(CScreenDemoScreenID, LDR_ALL);

// Draw all components and refresh only GRAM resources used by the components that reside in RAM
DrawScreenO(CScreenDemoScreenID, LDR_DYNAMIC);

mikroPascal Code

Прототип процедуры Описание Пример
procedure DrawScreen(aScreenID : word); Обратитесь к DrawScreen процедуре, описанной выше. DrawScreen(CScreenDemoScreenID);
procedure DrawScreenO(aScreenID : word, aOptions : byte); Обратитесь к DrawScreenO процедуре, описанной выше. // Draw all components and refresh all GRAM resources used by the components on the screen
DrawScreenO(CScreenDemoScreenID, LDR_ALL);

// Draw all components and refresh only GRAM resources used by the components that reside in RAM
DrawScreenO(CScreenDemoScreenID, LDR_DYNAMIC);

mikroBasic Code

Прототип процедуры Описание Пример
sub procedure DrawScreen(dim aScreenID as word) Обратитесь к DrawScreen процедуре, описанной выше. DrawScreen(CScreenDemoScreenID)
sub procedure DrawScreenO(dim aScreenID as word, dim aOptions as byte) Обратитесь к DrawScreenO процедуре, описанной выше. ' Draw all components and refresh all GRAM resources used by the components on the screen
DrawScreenO(CScreenDemoScreenID, LDR_ALL)

' Draw all components and refresh only GRAM resources used by the components that reside in RAM
DrawScreenO(CScreenDemoScreenID, LDR_DYNAMIC)

NoteПримечание

Если пользователь изменяет свойства динамического компоста (то есть компонента, находящегося в ОЗУ), который влияет на ресурс GRAM, то для перекрашивания экрана должна использоваться функция DrawScreenO (для параметра aOptions установлено значение LDR_DYNAMIC).

Другие рисующие процедуры контроллера


Процедуры рисования динамических объектов

Представленные здесь подпрограммы используются, если установлено свойство Dynamic:

Код mikroC

Прототип процедуры Описание Пример
void DrawScreen(TScreen *aScreen); Рисует экран. Пожалуйста, см. это примечание также. DrawScreen(&ScreenDemo);
void DrawLabel(TLabel *ALabel); Рисует метку. DrawLabel(&LabelDemo);
void DrawButton(TButton *AButton); Рисует кнопку. DrawButton(&ButtonDemo);
void DrawRoundButton(TButton_Round *Around_button); Рисует закругленную кнопку. DrawRoundButton(&RoundButtonDemo);
void DrawCircleButton(TCircleButton *ACircle_button); Рисует круглую кнопку. DrawCircleButton(&RoundCircleButtonDemo);
void DrawImage(TImage *AImage); Рисует изображение. DrawImage(&ImageDemo);
void DrawCheckBox(TCheckBox *ACheckBox); Рисует Check Box. DrawCheckBox(&CheckBoxDemo);
void DrawRadioButton(TRadioButton *ARadioButton); Рисует радио кнопку. DrawRadioButton(&RadioButtonDemo);
void DrawProgressBar(TProgressBar *AProgressBar); Рисует индикатор выполнения. DrawProgressBar(&ProgressBarDemo);
void UpdatePBPosition(TProgressBar *AProgressBar); Обновляет позицию индикатора выполнения. UpdatePBPosition(&ProgressBarDemo);
void DrawCircle(TCircle *ACircle); Рисует окружность. DrawCircle(&CircleDemo);
void DrawBox(TBox *ABox); Рисует прямоугольник. DrawBox(&BoxDemo);
void DrawRoundBox(TBox_Round *Around_box); Рисует скругленный прямоугольник. DrawRoundBox(&RoundBoxDemo);
void DrawLine(TLine *Aline); Рисует линию. DrawLine(&LineDemo);

Код mikroPascal

Прототип процедуры Описание Пример
procedure DrawScreen(aScreen : ^TScreen); Рисует экран.Пожалуйста, см. это примечание также. DrawScreen(@ScreenDemo);
procedure DrawLabel(ALabel : ^TLabel); Рисует метку. DrawLabel(@LabelDemo);
procedure DrawButton(Abutton : ^TButton); Рисует кнопку. DrawButton(@ButtonDemo);
procedure DrawRoundButton(Around_button : ^TButton_Round); Рисует закругленную кнопку. DrawRoundButton(@RoundButtonDemo);
procedure DrawCircleButton(ACircle_button : ^TCircleButton); Рисует круглую кнопку. DrawCircleButton(@RoundCircleButtonDemo);
procedure DrawImage(AImage : ^TImage); Рисует изображение. DrawImage(@ImageDemo);
procedure DrawCheckBox(ACheckBox : ^TCheckBox); Рисует Check Box. DrawCheckBox(@CheckBoxDemo);
procedure DrawRadioButton(ARadioButton : ^TRadioButton); Рисует радио кнопку. DrawRadioButton(@RadioButtonDemo);
procedure DrawProgressBar(AProgressBar : ^TProgressBar); Рисует индикатор выполнения. DrawProgressBar(@ProgressBarDemo);
procedure UpdatePBPosition(AProgressBar : ^TProgressBar); Обновляет позицию индикатора выполнения. UpdatePBPosition(@ProgressBarDemo);
procedure DrawCircle(ACircle : ^TCircle); Рисует окружность. DrawCircle(@CircleDemo);
procedure DrawBox(ACircle : ^TCircle); Рисует прямоугольник. DrawBox(@BoxDemo);
procedure DrawRoundBox(Around_box : ^TBox_Round); Рисует скругленный прямоугольник. DrawRoundBox(@RoundBoxDemo);
procedure DrawLine(Aline : ^TLine); Рисует линию. DrawLine(@LineDemo);

Код mikroBasic

Прототип процедуры Описание Пример
sub procedure DrawScreen(dim aScreen as ^TScreen) Рисует экран.Пожалуйста, см. это примечание также. DrawScreen(@ScreenDemo)
sub procedure DrawLabel(dim ALabel as ^TLabel) Рисует метку. DrawLabel(@LabelDemo)
sub procedure DrawButton(dim Abutton as ^TButton) Рисует кнопку. DrawButton(@ButtonDemo)
sub procedure DrawRoundButton(dim Around_button as ^TButton_Round) Рисует закругленную кнопку. DrawRoundButton(@RoundButtonDemo)
sub procedure DrawCircleButton(dim ACircle_button as ^TCircleButton ) Рисует круглую кнопку. DrawCircleButton(@RoundCircleButtonDemo)
sub procedure DrawImage(dim AImage as ^TImage) Рисует изображение. DrawImage(@ImageDemo)
sub procedure DrawCheckBox(dim ACheckBox as ^TCheckBox) Рисует Check Box. DrawCheckBox(@CheckBoxDemo)
sub procedure DrawRadioButton(dim ARadioButton as ^TRadioButton) Рисует радио кнопку. DrawRadioButton(@RadioButtonDemo)
sub procedure DrawProgressBar(dim AProgressBar as ^TProgressBar) Рисует индикатор выполнения. DrawProgressBar(@ProgressBarDemo)
sub procedure UpdatePBPosition(dim TProgressBar as ^AProgressBar) Обновляет позицию индикатора выполнения. UpdatePBPosition(@ProgressBarDemo)
sub procedure DrawCircle(dim ACircle as ^TCircle) Рисует окружность. DrawCircle(@CircleDemo)
sub procedure DrawBox(dim ABox as ^TBox) Рисует прямоугольник. DrawBox(@BoxDemo)
sub procedure DrawRoundBox(dim Around_box as ^TBox_Round) Рисует скругленный прямоугольник. DrawRoundBox(@RoundBoxDemo)
sub procedure DrawLine(dim Aline as ^TLine) Рисует линию. DrawLine(@LineDemo)

Процедуры рисования статических объектов

Представленные здесь подпрограммы используются, если установлено свойство Static:

Код mikroC

Прототип процедуры Описание Пример
void DrawScreen(unsigned int aScreenID); Рисует экран. Пожалуйста, см. это примечание также. DrawScreen(CScreenDemoScreenID);
void DrawCLabel(TCLabel *AClabel); Рисует метку. DrawCLabel(&CLabelDemo);
void DrawCButton(TCButton *ACButton); Рисует кнопку. DrawCButton(&CButtonDemo);
void DrawCRoundButton(TCButton_Round *ACround_button); Рисует закругленную кнопку. DrawCRoundButton(&CRoundButtonDemo);
void DrawCCircleButton(TCCircleButton *ACcircle_button); Рисует круглую кнопку. DrawCCircleButton(&CRoundCircleButtonDemo);
void DrawCImage(TCImage *ACimage); Рисует изображение. DrawCImage(&CImageDemo);
void DrawCCircle(CButton_Round *ACround_button); Рисует окружность. DrawCCircle(&CCircleDemo);
void DrawCBox(TCBox *ACbox); Рисует прямоугольник. DrawCBox(&CBoxDemo);
void DrawCRoundBox(TCBox_Round *ACround_box); Рисует скругленный прямоугольник. DrawCRoundBox(&CRoundBoxDemo);
void DrawCLine(TCLine *ACLine); Рисует линию. DrawCLine(&CLineDemo);

Код mikroPascal

Прототип процедуры Описание Пример
procedure DrawScreen(aScreenID : word); Рисует экран. Пожалуйста, см. это примечание также. DrawScreen(CScreenDemoScreenID);
procedure DrawCLabel(ALabel : ^TCLabel); Рисует метку. DrawCLabel(@CLabelDemo);
procedure DrawCButton(Abutton : ^TCButton); Рисует кнопку. DrawCButton(@CButtonDemo);
procedure DrawCRoundButton(Around_button : ^TCButton_Round); Рисует закругленную кнопку. DrawCRoundButton(@CRoundButtonDemo);
procedure DrawCCircleButton(ACircle_button : ^TCCircleButton); Рисует круглую кнопку. DrawCCircleButton(@CRoundCircleButtonDemo);
procedure DrawCImage(AImage : ^TCImage); Рисует изображение. DrawCImage(@CImageDemo);
procedure DrawCCircle(ACircle : ^TCCircle); Рисует окружность. DrawCCircle(@CCircleDemo);
procedure DrawCBox(ABox : ^TCBox); Рисует прямоугольник. DrawCBox(@CBoxDemo);
procedure DrawCRoundBox(Around_box : ^TCBox_Round); Рисует скругленный прямоугольник. DrawCRoundBox(@CRoundBoxDemo);
procedure DrawCLine(Aline : ^TCLine); Рисует линию. DrawCLine(@CLineDemo);

Код mikroBasic

Прототип процедуры Описание Пример
sub procedure DrawScreen(dim aScreenID as word) Рисует экран. Пожалуйста, см. это примечание также. DrawScreen(CScreenDemoScreenID)
sub procedure DrawCLabel(dim ALabel as ^TCLabel) Рисует метку. DrawCLabel(@CLabelDemo)
sub procedure DrawCButton(dim Abutton as ^TCButton) Рисует кнопку. DrawCButton(@CButtonDemo)
sub procedure DrawCRoundButton(dim Around_button as ^TCButton_Round) Рисует закругленную кнопку. DrawCRoundButton(@CRoundButtonDemo)
sub procedure DrawCCircleButton(dim ACircle_button as ^TCCircleButton) Рисует круглую кнопку. DrawCCircleButton(@CRoundCircleButtonDemo)
sub procedure DrawCImage(dim AImage as ^TCImage) Рисует изображение. DrawCImage(@CImageDemo)
sub procedure DrawCCircle(dim ACircle as ^TCCircle) Рисует окружность. DrawCCircle(@CCircleDemo)
sub procedure DrawCBox(dim ABox as ^TCBox) Рисует прямоугольник. DrawCBox(@CBoxDemo)
sub procedure DrawCRoundBox(dim Around_box as ^TCBox_Round) Рисует скругленный прямоугольник. DrawCRoundBox(@CRoundBoxDemo)
sub procedure DrawCLine(dim Aline as ^TCLine) Рисует линию. DrawCLine(@CLineDemo)

NoteПримечание

Если один из нескольких экранов в проекте объявлен как статический, все экраны должны быть нарисованы с использованием процедуры DrawScreen для статического свойства.