Довольно часто используемый виджет. Аналогично меткам в VCL, они не имеют оконного дескриптора. Для того, чтобы можно было поймать события, получаемые кнопкой, необходимо поместить метку в оконный компонент, например EventBox.
Для работы с метками используются следующие функции:
//Создает новую метку, и устанавливает ее текст в значение str GtkWidget *gtk_label_new( char *str ); //Меняет установленный при создании текст void gtk_label_set_text( GtkLabel *label, char *str ); //Получить текст, отображаемый меткой void gtk_label_get( GtkLabel *label, char **str ); /*. например: char* text; gtk_label_get(label1, но не освобождайте память, занятую возвращенной строкой. */ //Установить выравнивание текста внутри метки: void gtk_label_set_justify( GtkLabel *label, GtkJustification jtype ); /* может принимать значения: GTK_JUSTIFY_LEFT GTK_JUSTIFY_RIGHT GTK_JUSTIFY_CENTER (the default) GTK_JUSTIFY_FILL */ //Устанавливает автоматический перенос текста, если // он не умещается в строку (wrap = TRUE|FALSE): void gtk_label_set_line_wrap (GtkLabel *label, gboolean wrap); //Устанавливает, для каких символов в метке установлено подчеркивание void gtk_label_set_pattern (GtkLabel *label, const gchar *pattern); //Аргумент pattern состоит из символов подчеркивания и пробелов. //Там, где находится символ «_», соответствующий позици символ будет подчеркнут. //Например, маска «__ _ _ » подчеркнет первый, второй, четвертый, шестой символы
Подробно? По-моему, нормально. Виджет легкий, поэтому пример программы приводить не будем.
Что такое UTM метки Как сделать UTM метку и как отслеживать конверсии
Источник: firststeps.ru
Метки и операторы перехода
Рассмотренных операторов вполне достаточно для написания программ любой сложности. Тем не менее, в некоторых случаях использование операторов перехода может упростить программу.
Оператор переходаимеет вид:
Здесь GOTO – зарезервированное слово (перейти на метку).
Метка в Паскале – это произвольный идентификатор, позволяющий именовать некоторый оператор программы и таким образом ссылаться на него. В языке Паскаль допускается в качестве меток использование целых чисел без знака. Метка располагается непосредственно перед помечаемым оператором и отделяется от него двоеточием. Перед тем, как появиться в программе, метка должна бытьописана.Описание меток состоит из зарезервированного слова LABEL (метка), за которым следует список меток.
label 222, a1, met;
Описанной меткойдолжен быть помечен ровноодин операторпрограммы.
Оператор переходауказывает, что дальнейшая работа должна продолжаться в другой части текста программы, а именно с того места, где находится метка.
Пусть программа содержит последовательность операторов:
x :+ 2; a := b; goto 99;
14 : a := 0; x := b; 99 : y := x; write(x)
В этом случае сначала выполняются операторы x := 2 и a := b, затем следует переход к оператору, помеченному меткой 99, то есть к оператору y := x. После оператора y := x будет выполнен оператор write(x).
NFC метки. Запись, чтение и применение в нашей работе
Задача. Выяснить, имеются или не имеются среди чисел cos(i 3 )sin(in), i = 1, . n, меньшие 0.0001. Если имеются, то выводится “есть”, если нет – “нет” (рис. 7).
var i, n : integer;
for i := 1 to n do
Если оказывается, что некоторое число меньше 0.0001, то следующие числа уже не рассматриваются, следует вывод “есть” и переход на конец программы. Перед end расположен помеченный меткой m1 пустой оператор. Основное назначение пустого оператора – дать возможность выхода из середины программы или составного оператора.
Рис. 7. Пример блок-схемы алгоритма
Программу можно написать с двумя операторами перехода:
var i, n : integer;
for i := 1 to n do
write(‘нет’); goto m2;
C помощью оператора перехода, расположенного вне условного оператора или оператора цикла, нельзя перейти внутрь этого условного оператора или оператора цикла. Частое использование оператора GOTO считается дурным тоном. Это затрудняет чтение программы и нарушает принципы структурного программирования.
Работа с массивами
При описании массива необходимо указать общее число входящих в массив элементов и тип этих элементов. Например:
a : array [1..10] of real;
b : array [0..50] of char;
c : array [–3..4] of boolean;
При описании массива используются зарезервированные слова ARRAY и OF (массив из). За словом ARRAY в квадратных скобках указывается тип-диапазон, с помощью которого компилятор определяет общее число элементов массива. Тип-диапазон задается левой и правой границами изменения индекса массива, так что массив а состоит из 10 элементов, массив b – из 51, а массив с – из 8.
Доступ к каждому элементу массива в программе осуществляется с помощью индекса – целого числа (точнее, выражения порядкового типа), служащего своеобразным именем элемента в массиве (если левая граница типа–диапазона равна 1, индекс элемента совпадает с его порядковым номером). При упоминании в программе любого элемента массива сразу за именем массива должен следовать индекс элемента в квадратных скобках, например:
for k := 1 to 10 do a[k] := 0;
В правильно составленной программе индекс не должен выходить за пределы, определенные типом диапазоном. Например, можно использовать элементы a[1], b[38], c[0], но нельзя a[0] или с[38]. Паскаль может контролировать использование индексов в программе на этапе компиляции и на этапе счета.
Проиллюстрируем работу с массивами на примерах.
Задача. Определить количество курсантов в группе, имеющих рост выше среднего.
i, n, k : integer; s : real;
r : array [1..m] of real;
Источник: studfile.net
Инструкции с метками
Метки используются для передачи управления программой непосредственно указанному оператору.
Синтаксис
labeled-statement :
identifier : statement
case constant-expression : statement
default : statement
Область метки — это вся функция, в которой она объявлена.
Комментарии
Существует три типа операторов с метками. Все они используют двоеточие ( : ) для отделения определенного типа метки от оператора . Метки case и default относятся к операторам case.
#include using namespace std; void test_label(int x) < if (x == 1)< goto label1; >goto label2; label1: cout int main() < test_label(1); // in label1 test_label(2); // in label2 >
Метки и goto оператор
Внешний identifier вид метки в исходной программе объявляет метку. goto Только оператор может передавать управление метку identifier . В следующем фрагменте кода показано использование goto оператора и метки identifier :
Метка не может отображаться сама по себе, но всегда должна быть прикреплена к оператору . Если необходимо использовать метку самостоятельно, поместите оператор null после метки.
Метка имеет функцию область и не может быть повторно объявлена в функции. Однако одно и то же имя может использоваться как метка в разных функциях.
// labels_with_goto.cpp // compile with: /EHsc #include int main() < using namespace std; goto Test2; cout //Output: At Test2 label.
Метки в инструкции case
Метки, отображаемые case после ключевое слово, также не могут отображаться за пределами switch оператора . (Это ограничение также применяется к default ключевое слово.) В следующем фрагменте кода показано правильное case использование меток:
// Sample Microsoft Windows message processing loop. switch( msg ) < case WM_TIMER: // Process timer event. SetClassWord( hWnd, GCW_HICON, ahIcon[nIcon++] ); ShowWindow( hWnd, SW_SHOWNA ); nIcon %= 14; Yield(); break; case WM_PAINT: memset( hDC = BeginPaint( hWnd, EndPaint( hWnd, break; case WM_CLOSE: KillTimer( hWnd, TIMER1 ); DestroyWindow( hWnd ); if ( hWnd == hWndMain ) PostQuitMessage( 0 ); // Quit the application. break; default: // This choice is taken for all messages not specifically // covered by a case statement. return DefWindowProc( hWnd, Message, wParam, lParam ); break; >
Источник: learn.microsoft.com