Visual FoxPro   Обзор графических пакетов 3GL   Компьютерная графика к экономической информатике   к 4GL - визуальному программированию

Программирование в VisualFoxPro 7.0

Меню приложения

В соответствии со стандартами Windows в любом приложении рекомендуется иметь строку меню, которая в Visual FoxPro содержит команды, предназначенные для вызова форм, формирования отчетов, запросов и т. д.

При разработке приложения вы можете создать все требуемые объекты (базу данных, входящие в нее таблицы, формы, отчеты, запросы). Затем объединить отдельные объекты с помощью меню. Можно поступить иначе. Сначала разработать и создать меню, а затем по мере создания форм и отчетов включать их запуск в меню. Второй способ более нагляден. Вы в любой момент можете запустить меню и продемонстрировать заказчику, как создаваемая система выглядит, как осуществляется вызов тех или иных программ, запустить уже созданные формы, напечатать подготовленные отчеты.

  Подготовка к созданию меню

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

После этого определяется структура таблиц и совпадающие поля для их связывания. Затем создаются сами таблицы, входящие в базу данных, определяются отношения между ними.

Одновременно с составом информации вы должны определить те средства, которые получит в свое распоряжение пользователь при работе с вашим приложением.

Приложение должно содержать эффективную справочную систему, содержащую информацию о приложении, описание его основных функций и инструкцию по работе. В среде Windows предпочтительнее всего создавать справочную систему в принятом в Windows стандарте, чтобы облегчить пользователю поиск информации в знакомой ему среде.

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

  Действия, необходимые для создания меню

Строкой меню называется горизонтальное меню, располагаемое в верхней части экрана. Примером строки меню является основное меню Visual FoxPro, а также меню программ, работающих в среде Windows. Созданное вами в конструкторе меню может замещать основное меню Visual FoxPro или добавляться к нему.

Для создания меню необходимо выполнить следующие действия:

  1. Открыть окно конструктора меню.
  2. Описать вид меню, текст, пункты меню и его атрибуты.
  3. Определить действия, которые будут выполняться при выборе пунктов меню.
  4. Сгенерировать меню, используя команду Generate (Генерация) из меню Menu (Меню). При этом создается программа, которую вы в результате и запускаете на выполнение.

Замечание

На каждом шаге создания меню приложения вы можете просматривать его с помощью кнопки Preview (Просмотр) конструктора.

Рассмотрим эти этапы более подробно.

  Запуск конструктора меню

Для открытия окна конструктора меню воспользуйтесь одним из следующих способов:

На экране открывается диалоговое окно New Menu (Новое меню), в котором предлагается два варианта меню (рис. 11.1).

gl11-1.jpg

Рис. 11.1. Диалоговое окно New Menu

Выберите тип создаваемого меню, нажав соответствующую кнопку. В результате запускается конструктор меню, а в основное меню Visual FoxPro добавляется новый пункт Menu (Меню) (рис. 11.2). Сначала рассмотрим создание меню в виде строки. Для этого выберите опцию Menu (Меню).

gl11-2.jpg

Рис. 11.2. Конструктор меню

Область конструктора меню, над которой размещены надписи Prompt (Приглашение), Result (Результат) и Options (Опции), предназначена для формирования меню.

В поле Prompt (Приглашение) можно ввести наименования пунктов меню. Раскрывающийся список Result (Результат) используется для указания типа пункта меню. Кнопка Options (Опции) открывает диалоговое окно Prompt Options (Опции элемента меню), в котором можно определить дополнительные параметры данного элемента меню ("горячие" клавиши, сообщение, отображаемое в строке состояния при выборе пункта меню, и т. д.). В списке Menu level (Уровень меню) указывается уровень текущего меню.

Слева в конструкторе меню размещены кнопки (табл. 11.1).

Таблица 11.1. Назначение кнопок конструктора меню

Кнопка Назначение
Insert (Вставить) Добавляет в меню новый пункт
Insert Bar (Вставить команды системного меню) Открывает диалоговое окно Insert System Menu Bar, содержащее команды системного меню Visual FoxPro, позволяя разместить их в создаваемом пользовательском меню
Delete (Удалить) Удаляет текущий пункт меню
Preview (Просмотр) Размещает создаваемое меню на экране, позволяя просмотреть его внешний вид

  Создание меню

После того как вы открыли конструктор, можно приступать к созданию меню. Для этого выполните следующие действия:

  1. В поле Prompt (Приглашение) введите наименования первого пункта меню и нажмите клавишу <Enter> или <ТаЬ> для перехода на следующее поле. Курсор оказывается в списке Result (Результат).
  2. Для определения типа пункта меню (табл. 11.2) нажмите кнопку раскрытия списка и выберите необходимое значение из тех, которые предлагает система.

Таблица 11.2. Типы пунктов меню

Тип меню Назначение
Command (Команда) При выборе пункта меню данного типа будет выполняться связанная с ним команда
Pad Name (Наименование строки меню) При выборе пункта меню никаких действий выполняться не будет. Как правило, используется в качестве дополнительного пояснения к меню
Submenu (Подменю) При выборе пункта меню раскрывается связанное с данным пунктом ниспадающее меню
Procedure (Процедура) При выборе пункта меню вызывается процедура, определенная для данного пункта меню

Замечание

При использовании значения типа Command (Команда) с правой стороны появляется поле для ввода команды, выполняемой при выборе данного пункта меню. Это может быть, например, команда вызова формы или формирования отчета. Если из списка Result (Результат) вы выбрали значение Procedure (Процедура) или Submenu (Подменю), в окне конструктора правее описания типа пункта меню появляется кнопка Create (Создать). При нажатии на эту кнопку вы переходите, соответственно, в окно создания процедуры или в окно создания ниспадающего меню для выбранного пункта меню.

gl11-3.jpg

Рис. 11.3. Основное меню приложения

  1. Указав тип пункта меню, перейдите в следующую строку и введите информацию о втором пункте меню.
  2. Введите наименования остальных пунктов меню и их типы (рис. 11.3).
  3. Для просмотра созданных пунктов меню нажмите кнопку Preview (Просмотр). Основное меню Visual FoxPro будет заменено созданным меню. Пункты меню отображаются на экране в порядке их описания. На экране также появляется диалоговое окно Preview (Просмотр), в котором отображается текст текущего пункта меню, его тип и выполняемое действие (рис. 11.4).
gl11-4.jpg

Рис. 11.4. Просмотр созданного меню приложения

  "Горячие" клавиши

Для выбора пункта меню используются клавиши-стрелки или мышь. Помимо этого, вы можете определить для пункта меню "горячую" клавишу, нажатие которой вместе с клавишей <Alt> активизирует этот пункт.

Для создания "горячей" клавиши, предоставляющей пользователю возможность ускоренного выбора пункта меню, необходимо включить в его имя перед активизирующим символом следующие символы \<. В качестве "горячей" клавиши можно использовать первый символ имени пункта, что, конечно, более предпочтительно, а также и любой другой символ из его имени. Символы, используемые в качестве "горячей" клавиши, выделяются в строке меню подчеркиванием.

"Горячие" клавиши для пунктов меню назначаются Visual FoxPro по умолчанию. Для их создания используются первые буквы элементов строки меню. Если два элемента вашего меню начинаются с одинаковой буквы, то обоим элементам строки меню в качестве "горячей" клавиши назначается одинаковый символ. В этом случае вам нужно переопределить "горячую" клавишу для одного из элементов строки меню.

Для облегчения назначения "горячих" клавиш можно использовать искусственный прием: перед именами пунктов меню разместить цифры и их использовать в качестве "горячих" клавиш (рис. 11.5).

gl11-5.jpg

Рис, 11.5. Создание строки меню с назначенными "горячими" клавишами

  Задание параметров пункта меню в диалоговом окне Prompt Options

Для задания параметров пункта меню используется диалоговое окно Prompt Options (Опции элемента меню) (рис. 11.6). Для открытия этого окна установите в конструкторе курсор на пункт меню и нажмите появившуюся в строке кнопку Options (Опции).

gl11-6.jpg

Рис. 11.6. Диалоговое окно Prompt Options

В диалоговом окне Prompt Options (Опции элемента меню) содержится область Shortcut (Всплывающее меню) для задания клавиш быстрого вызова, а также поля ввода (табл. 11.3).

Таблица 11.3. Назначение полей ввода диалогового окна Prompt Options

Поле ввода Назначение
Skip For {Пропустить для) Позволяет заблокировать пункт меню
Message (Сообщение) Позволяет задать сообщение, которое будет отображаться в строке состояния при выборе пункта меню
Pad Name (Имя пункта меню) Задает имя пункта меню
Comment (Комментарий) Задает комментарий к пункту меню

Область Negotiate (Соглашение) содержит два раскрывающихся списка, имеющих следующее назначение:

  Определение клавиш быстрого вызова пунктов меню

Помимо "горячих" клавиш, в создании которых используются только символы текста меню, в Visual FoxPro можно определить для каждого пункта меню клавиши быстрого вызова пунктов меню. В качестве такой клавиши могут использоваться символы, функциональные клавиши, комбинации клавиш. Примером клавиши ускоренного действия в программе Visual FoxPro является функциональная клавиша <F1>, используемая для вызова справочной системы. При нажатии на клавишу, определенную в качестве клавиши ускоренного действия, активизируется связанный с ней пункт меню без предварительного отображения самого меню.

Рассмотрим последовательность действий по определению клавиши быстрого вызова пункта меню справочной системы приложения.

  1. В конструкторе меню установите курсор на пункт меню Справка.
gl11-7.jpg

Рис. 11.7. Определение клавиши быстрого вызова для пункта меню Справка

  1. Нажмите кнопку Options (Опции).
  2. В открывшемся диалоговом окне Prompt Options (Опции элемента меню) в области Shortcut (Всплывающее меню) поле Key Label (Метка) содержит подсказку press the key (нажмите клавишу). Установите курсор в поле Key Label (Метка) и нажмите клавишу или комбинацию клавиш, используемую в качестве клавиши быстрого вызова, и в поле появится метка, соответствующая нажатию клавиши. В поле ввода Key Text (Пояснение) вы можете ввести краткое пояснение к определяемой клавише. Для пункта меню Справка нажмите клавишу <F1> клавиатуры. В поле Key Text (Пояснение) по умолчанию будет введено F1 (рис. 11.7). Оставьте это значение.
  3. Нажмите кнопку ОК для закрытия диалогового окна.

Формирование сообщения для пункта меню

Используя поле ввода Message (Сообщение) диалогового окна Prompt Options (Опции элемента меню), вы можете определить для пункта меню сообщение, которое будет отображаться в строке состояния при установке на него курсора. В качестве сообщения можно использовать не только строку текста, но и произвольное символьное выражение. В этом случае нажмите кнопку вызова конструктора выражения, расположенную с правой стороны поля, и в открывшемся диалоговом окне Expression Builder (Построитель выражения) создайте необходимое выражение.

Определим сообщение для пункта меню Справка. Для этого выполните следующие действия:

  1. Нажмите кнопку Options (Опции) для пункта меню Справка.
  2. В открывшемся диалоговом окне Prompt Options (Опции элемента меню) нажмите кнопку вызова построителя выражения для поля Message (Сообщение).
  3. В поле Message (Сообщение) построителя выражений введите строку текста "Вызов справочной системы приложения ".

Замечание

Введенную строку текста не забудьте поместить в кавычки.

  1. Нажмите кнопку ОК для закрытия диалогового окна Expression Builder (Построитель выражения). Вы оказываетесь в окне Prompt Options (Опции элемента меню). Введенное вами выражение размещено в поле Message (Сообщение) (рис. 11.8).
  2. Нажмите кнопку ОК.
gl11-8.jpg

Рис. 11.8. Определение сообщения для пункта меню Справка

Аналогичным образом вы можете определить сообщения для остальных пунктов меню. На рис. 11.9 показан результат вывода сообщения в строке состояния.

gl11-9.jpg

Рис. 11.9. Отображение в строке состояния сообщения для пункта меню

Блокирование команд меню

Иногда возникает необходимость сделать какой-либо пункт меню недоступным для пользователя. Например, вы можете использовать условие блокировки для ограничения доступа определенных пользователей к отдельным пунктам меню. Или рассмотрим еще такую ситуацию. Ваша система уже эксплуатируется пользователями, но не все пункты меню завершены. При их выборе на экране появляются сообщения об ошибках. Пользователь начинает нервничать. В этом случае вы можете задать для незавершенных пунктов меню условие блокировки. Чтобы определить условия блокировки, выполните следующие действия:

  1. Нажмите кнопку Options (Опции) для пункта меню, который хотите заблокировать.
  2. В открывшемся диалоговом окне Prompt Options (Опции элемента меню) нажмите кнопку вызова построителя выражения для поля Skip For (Пропустить для).
  3. Введите .71 в поле Skip For (Пропустить для) построителя выражений.
  4. Нажмите кнопку ОК для закрытия диалогового окна Expression Builder (Построитель выражения). Вы оказываетесь в окне Prompt Options (Опции элемента меню).

Замечание

Задавая условия блокировки, вы можете ввести любое допустимое логическое выражение. При вводе простого выражения, не требующего использования функций конструктора выражений, введите формируемое выражение в поле Skip For (Пропустить для) диалогового окна Prompt Options (Опции элемента меню).

  1. Нажмите кнопку ОК для его закрытия.

Когда значение выражения, заданное в условии блокировки, является истинным, пункт меню становится недоступным.

В режиме просмотра вы не увидите, что пункт меню заблокирован. Чтобы убедиться в правильно созданной блокировке, вам необходимо созданное в конструкторе меню сгенерировать и полученную в результате программу запустить на выполнение.

Присвоение имени пункту меню

По умолчанию при генерации программы Visual FoxPro в качестве имен пунктов меню создает уникальные имена. Для повышения читабельности программы можно определить эти имена явным образом, используя поле ввода Pad Name (Имя пункта меню) диалогового окна Prompt Options (Опции элемента меню).

На рис. 11.10 приведено диалоговое окно Prompt Options (Опции элемента меню) для пункта меню Справка с определенным для него именем пункта меню, сообщением в строке состояния и условием блокировки.

gl11-10.jpg

Рис. 11.10. Диалоговое окно Prompt Options для пункта меню Справка

  Действия для пунктов меню

Основное назначение пункта меню — выполнять определенное для него действие. Результат выбора пункта меню задается его типом (табл. 11.4).

Таблица 11.4. Типы пункта меню

Тип пункта меню Действие
Submenu (Подменю) Раскрывается связанное с данным пунктом меню ниспадающее подменю
Procedure (Процедура) Выполняется процедура, определенная в конструкторе меню
Command (Команда) Выполняется команда, расположенная в поле рядом с типом пункта меню

Команда

Чтобы определить команду, которая будет выполняться при выборе пункта меню, необходимо выполнить следующие действия:

  1. В столбце Result (Результат) конструктора меню выбрать из списка значение Command (Команда).
  2. Ввести в поле, расположенное с правой стороны списка, команду Visual FoxPro, которая будет выполняться при выборе данного пункта меню.

Обычно команды используются для вызова форм, отчетов, пользовательских процедур. Например, для запуска формы ввода списка клиентов достаточно ввести следующую команду:

DO FORM Client

Процедура

В том случае, если при выборе пункта меню должна выполняться некоторая последовательность команд, вам необходимо в столбце Result (Результат) окна конструктора выбрать для пункта меню тип Procedure (Процедура) и определить требуемые команды.

gl11-11.jpg

Рис. 11.11. Окно редактирования процедуры для пункта меню Справка

Для этого нажмите кнопку Create (Создать) и в открывшемся окне редактирования процедуры определите фрагмент кода, связанный с элементом строки меню. Например, для пункта меню Справка вы можете указать тип Procedure (Процедура) и в окне создания процедуры задать имя файла справки и команду вызова справочной системы (рис. 11.11).

При вводе процедуры не используйте команду PROCEDURE, т. к. Visual FoxPro генерирует эту команду автоматически.

Во время генерации для каждой процедуры, включенной в меню, Visual FoxPro создает уникальное имя и включает его вместе с указанием местонахождения процедуры в код, связанный с соответствующим элементом строки меню.

Замечание

После определения текста процедуры наименование кнопки Create (Создать) изменяется на Edit (Правка).

Определение подменю

Большинство команд меню создаваемого приложения открывает подменю. Например, пункт меню Покупатели должен содержать команды Ввод данных, Отчеты и Запросы. Для создания данного подменю выполните следующие действия:

  1. Нажмите кнопку Create (Создать) пункта меню Покупатели. На экране появляется пустое окно конструктора меню. Список Menu Level (Уровень меню) нового окна содержит метку текущего пункта меню.
  2. Введите в поле Prompt (Приглашение) первой строки команду Ввод данных. Используя список Result (Результат), задайте тип созданного пункта меню.
  3. Во второй строке введите команду Отчеты и также задайте тип.
  4. Аналогичным образом введите третью команду (рис. 11.12).

Замечание

Параметры пунктов подменю определяются аналогично определению пунктов строки меню. Для перехода в меню верхнего уровня используйте список Menu Level.

gl11-12.jpg

Рис. 11.12. Окно создания подменю

  Разделители элементов меню

Для улучшения внешнего вида, а также для объединения в группы схожие по смыслу команды в меню можно использовать разделительные линии. Разделительные линии представляют собой пункт меню, в котором в поле ввода Prompt (Приглашение) вместо наименования пункта вводятся символы \-. Рассмотрим создание разделительных линий в подменю Покупатели. Для этого выполните следующие действия:

  1. Откройте файл меню в окне конструктора проекта.
  2. Перейдите в режим редактирования пункта меню Покупатели, нажав кнопку Create (Создать).
  3. Вставьте новый элемент меню после пункта меню Ввод данных. Для этого установите курсор на пункт Отчеты и нажмите кнопку Insert (Вставить).
  4. В поле Prompt (Приглашение) образованного подпункта меню New Item (Новый пункт) введите \-. ,
  5. Аналогично вставьте разделительную линию после пункта меню Отчеты.
  6. Нажмите кнопку Preview (Просмотр). Выберите пункт меню Покупатели. На экране появится подменю с разделительными линиями (рис. 11.13).
gl11-13.jpg

Рис. 11.13. Создание разделителей в подменю Покупатели

  Определение параметров меню

Для строки меню вы можете определить процедуры, которые будут выполняться перед запуском меню, а также после выхода из него. Кроме того, вы можете указать месторасположение строки меню. Для этого используется диалоговое окно General Options (Основные параметры) (рис. 11.14), открываемое при выборе команды General Options (Основные параметры) из меню View (Вид).

В группе Location (Размещение) этого диалогового окна можно выбрать один из вариантов размещения строки созданного меню (табл. 11.5). В поле Procedure (Процедура) вы можете ввести фрагмент программы, которая будет выполняться при активизации строки меню.

gl11-14.jpg

Рис. 11.14. Диалоговое окно General Options

Таблица 11.5. Группа переключателей Location диалогового окна General Options

Переключатель Вид размещения
Replace (Замещать) Меню замещает основное меню Visual FoxPro
Append (Добавить) Меню добавляется в основное меню Visual FoxPro
Before (Перед) Меню вставляется перед указанным пунктом основного меню Visual FoxPro
After (После) Меню размещается за указанным пунктом основного меню Visual FoxPro

Флажки Setup (Задать) и Cleanup (Очистить) используются для открытия окна редактирования процедуры, вызываемой при запуске сгенерированной программы с описанием меню, и процедуры, вызываемой перед завершением этой программы.

При установленном флажке Top-Level Form (Форма высокого уровня) меню будет отображаться в отдельном окне. В противном случае меню можно использовать только в окне Visual FoxPro.

  Сохранение, генерация и запуск меню

Для сохранения созданного меню выберите команду Save as (Сохранить как) в меню File (Файл). В открывшемся диалоговом окне Save as (Сохранить как) из списка Папка выберите папку, в которой вы предполагаете сохранить файл, откройте ее, в поле Save Menu (Сохранить меню) введите имя сохраняемого меню. В заключение нажмите кнопку Сохранить.

С помощью кнопки Preview (Просмотр) окна конструктора меню можно просмотреть внешний вид создаваемого меню, но нельзя его активизировать. Чтобы можно было использовать меню в приложениях, его необходимо предварительно сгенерировать. Для этого выполните следующие действия:

  1. В меню Menu (Меню) выберите команду Generate (Генерация). Откроется диалоговое окно Generate Menu (Генерация меню) (рис. 11.15).
  2. В поле Output File (Внешний файл) введите имя файла, который будет создан в результате генерации.
  3. Для запуска генерации описания меню нажмите кнопку Generate (Генерация).
gl11-15.jpg

Рис. 11.15. Диалоговое окно Generate Menu

После завершения генерации можно запустить программу меню на выполнение. Для этого выполните одно из следующих действий.

На экране появится созданное вами меню, которое заменит основное меню Visual FoxPro, если в диалоговом окне General Options (Основные параметры) перед генерацией была установлена опция Replace (Замещать).

Совет

Если вам не удается восстановить на экране системное меню Visual FoxPro, введите в командном окне команду SET SYSMENU то DEFAULT.

  Создание всплывающего меню

В Visual FoxPro 7.0 имеется возможность создания всплывающего меню средствами конструктора меню.

Способ создания меню данного типа аналогичен созданию горизонтального меню в виде строки. Для этого меню, как и для обычного, можно определить оперативные клавиши и опции, устанавливаемые в диалоговом окне Prompt Options (Опции элемента меню).

Чтобы создать всплывающее меню, выполните следующую последовательность действий:

  1. Откройте проект.
  2. Для открытия окна конструктора меню в окне проекта перейдите на вкладку Other (Остальные) и выберите группу Menus (Меню).
  3. Нажмите кнопку New (Новый) окна проекта.
  4. В открывшемся диалоговом окне New Menu (Новое меню) нажмите кнопку Shortcut (Всплывающее меню). Откроется окно конструктора меню.
  5. В поле Prompt (Приглашение) последовательно введите тексты пунктов меню и определите для них выполняемые действия (рис. 10.16).
gl11-16.jpg

Рис. 11.16. Создание меню типа Shortcut

  1. Для генерации выберите команду Generate (Генерация) в меню Menu (Меню).
  2. Запустите меню на выполнение. Вид данного меню при запуске представлен на рис. 11.17.
gl11-17.jpg

Рис. 11.17. Меню типа Shortcut

Visual FoxPro   Обзор графических пакетов 3GL   Компьютерная графика к экономической информатике   к 4GL - визуальному программированию

Знаете ли Вы, как разрешается парадокс Ольберса?
(Фотометрический парадокс, парадокс Ольберса - это один из парадоксов космологии, заключающийся в том, что во Вселенной, равномерно заполненной звёздами, яркость неба (в том числе ночного) должна быть примерно равна яркости солнечного диска. Это должно иметь место потому, что по любому направлению неба луч зрения рано или поздно упрется в поверхность звезды.
Иными словами парадос Ольберса заключается в том, что если Вселенная бесконечна, то черного неба мы не увидим, так как излучение дальних звезд будет суммироваться с излучением ближних, и небо должно иметь среднюю температуру фотосфер звезд. При поглощении света межзвездным веществом, оно будет разогреваться до температуры звездных фотосфер и излучать также ярко, как звезды. Однако в дело вступает явление "усталости света", открытое Эдвином Хабблом, который показал, что чем дальше от нас расположена галактика, тем больше становится красным свет ее излучения, то есть фотоны как бы "устают", отдают свою энергию межзвездной среде. На очень больших расстояниях галактики видны только в радиодиапазоне, так как их свет вовсе потерял энергию идя через бескрайние просторы Вселенной. Подробнее читайте в FAQ по эфирной физике.

НОВОСТИ ФОРУМА

Форум Рыцари теории эфира


Рыцари теории эфира
 10.11.2021 - 12:37: ПЕРСОНАЛИИ - Personalias -> WHO IS WHO - КТО ЕСТЬ КТО - Карим_Хайдаров.
10.11.2021 - 12:36: СОВЕСТЬ - Conscience -> РАСЧЕЛОВЕЧИВАНИЕ ЧЕЛОВЕКА. КОМУ ЭТО НАДО? - Карим_Хайдаров.
10.11.2021 - 12:36: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от д.м.н. Александра Алексеевича Редько - Карим_Хайдаров.
10.11.2021 - 12:35: ЭКОЛОГИЯ - Ecology -> Биологическая безопасность населения - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> Проблема государственного терроризма - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> ПРАВОСУДИЯ.НЕТ - Карим_Хайдаров.
10.11.2021 - 12:34: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вадима Глогера, США - Карим_Хайдаров.
10.11.2021 - 09:18: НОВЫЕ ТЕХНОЛОГИИ - New Technologies -> Волновая генетика Петра Гаряева, 5G-контроль и управление - Карим_Хайдаров.
10.11.2021 - 09:18: ЭКОЛОГИЯ - Ecology -> ЭКОЛОГИЯ ДЛЯ ВСЕХ - Карим_Хайдаров.
10.11.2021 - 09:16: ЭКОЛОГИЯ - Ecology -> ПРОБЛЕМЫ МЕДИЦИНЫ - Карим_Хайдаров.
10.11.2021 - 09:15: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Екатерины Коваленко - Карим_Хайдаров.
10.11.2021 - 09:13: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вильгельма Варкентина - Карим_Хайдаров.
Bourabai Research - Технологии XXI века Bourabai Research Institution