Вопрос № 93685: Здравствуйте, уважаемые эксперты.
Конкретизирую посланный недавно вопрос, так как ответы мне не очень помогли.
Исходные данные: программа, в которой имеется элемент listbox, содержащий определённый список элементов. Необходимо пройтись по в...Вопрос № 93702: Здравствуйте уважаемые ЭКСПЕРТЫ я пока ещё даже не чайник, а только
начал изучать первый язык программирования С++ до этого я не знал ни
одного языка купил книги, но дело вот в чём есть уроки, но нет пояснений
какие заголовки и для чего о...
Вопрос № 93.685
Здравствуйте, уважаемые эксперты.
Конкретизирую посланный недавно вопрос, так как ответы мне не очень помогли.
Исходные данные: программа, в которой имеется элемент listbox, содержащий определённый список элементов. Необходимо пройтись по всем элементам списка и выбрать каждый элемент. То есть необходимо нажать клавишу вниз и ентер. Я реализовал это следующим образом (см. приложение), движение вниз есть, а вот ентер не срабатывает на элементы списка, только на кнопки, если например поэкспериментировать с другими программами. И в Windows'е также на значки, папки и прочее программный ентер не срабатывает, а движение вниз
есть.
Если кто-нибудь с этим сталкивался или знает в чём проблема и как её исправить или как это можно реализовать по другому, пожалуйста помогите.
Заранее спасибо.
Приложение:
Отправлен: 02.07.2007, 20:01
Вопрос задал: Gines (статус: 1-ый класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Зелик Колабухин
Здравствуйте, Gines!
Может вместо VK_EXECUTE нужно использовать VK_RETURN, вроде как она у нас ентер?
Ответ отправил: Зелик Колабухин (статус: 3-ий класс)
Ответ отправлен: 03.07.2007, 14:49 Оценка за ответ: 5 Комментарий оценки: Большое спасибо, помогло.
Вопрос № 93.702
Здравствуйте уважаемые ЭКСПЕРТЫ я пока ещё даже не чайник, а только
начал изучать первый язык программирования С++ до этого я не знал ни
одного языка купил книги, но дело вот в чём есть уроки, но нет пояснений
какие заголовки и для чего они нужны как подключать сторонние заголовки
и библиотеки я вам задавал один вопрос по CONIO библиотеки дело в том
что эта библиотека разработана для Dev C++ но, по какой причине она и там
не работает инструкции выполнил, как указано, но всё равно не работает
потом скопировал, подчёркиваю заголовки и библиотеки в Code::Blocks v1.0
эта среда мне больше нравится она удобней, по крайней мере, для меня хотя
есть и свои недостатки, но не об этом мои переживания, по какой причине они
не работают, подскажите, как их заставить каректно работать в Code::Blocks
и можно ли с теми средствами которые устанавливаются при установке
программы выполнить те же действие что и с библиотекой CONIO то есть
чтобы текст выводился цветом и в любой позиции, и вообще, какими средствами
можно это сделать, например, вывести в консоль такой форматированный текст
указан ниже и попросить ввести к примеру имя и все по середине или с другого
краю текст и по середине
пример:
обыкнавенный Миру мир солдату дембель!
Голубым размер шрифта 14 Введите ваше имя: ???????
Синий размер шрифта 16 ??????? спит, служба идет!
Примерно в таком виде ну я, наверное, вас загрузил многословностью одним
словом меня интересуют косметические возможности напишите, пожалуйста
какой нибуть пример, но с каментариями, что за что отвечает.
Вопрос 2: Как пишется программа с параметрами, например калькулятор
к примеру
набираю в командной строке
calculator /? выводится справка о программе
calculator /u программа переходит в режим умножения после умножения нужных
чисел возвращается на исходную
calculator /d соответственно деление далее тоже самое
ну и, к примеру, end выйти из программы.
Примерно по такому шаблону
Или по такому
Ввожу calculator, после чего выдается справка
Нажмите Q, чтобы выйти из программы, U чтобы умножить P продолжить X прервать, D чтобы делить,? вывести справку. Где P продолжает режим, к примеру, деления, а X выходит из режима
деления и передаёт управление в начало программы, где можно перейти к примеру
умножению я вас, наверное, утомил последний вопрос
по какой причине компилятор выдаёт такую ошибку
warning: no newline attend of file
все примеры чтобы можно было спроектировать в IDE Code::Blocks
убедительная просьба по возможности с подробным описанием кода.
примечание: имя установочного файла с библиотекой CONIO
conio-2.0-1mol.DevPak
Отвечает: Maxim V.G.
Здравствуйте, Савин Валерий Николаевич!
По первой части ничего не могу ответить, так как не пользовался названной IDE и не знаю какой компилятор используется (попробуй сменить IDE) :)).
По второму вопросу скажу так:
1) Такой вопрос уже задавался в этой рассылки и его можно найти через поиск!
2) Вкратце расскажу про входные параметры:
Для входных параметров в программу используются переменные argc и argv
Example:
int main(char argc, char argv[]){
return 0;
}
Первая переменная содержит количество входящих в программу параметров, вторая строку параметров.
Дальше разбираешь строку и делаешь и делаешь всё, что хочется.
Example:
#include <stdio.h>
void main(char argc, char * argv[]){
if (argv[0] == '?')
printf(%s, "Copyright Ivanov Ivan");
return;
}
--------- Жить вредно - от неё умирают
Ответ отправил: Maxim V.G. (статус: 2-ой класс)
Ответ отправлен: 03.07.2007, 14:49
Отвечает: Dark Daskin
Здравствуйте, Савин Валерий Николаевич!
conio.h не входит в стандарт с++, т.к. зависит от ОС, поэтому в каждом компиляторе сделан по-своему и имеет разные возможности. В Windows в этом файле поддерживается только функция char getch() - чтение нажатого символа. Остальные (цвет и положение) досрупны через WinApi (при этом теряется кроссплатформенность программы). А Code::Blocks никогда не видел, так что не знаю, будет ли там работать, всё, что я написал, хотя вроде должно.
Насчёт разбора параметров, правильнее будет разбирать их так:
#include <iostream>
using namespace std;
int main (int argc, char* argv[])
{
//Переменные параметров
bool param1 = false;
bool param_count = false;
int param_count_val = 0;
//Программа распознаёт парамерты вида /param1 /count 50 в любом порядке
for (int i = 0; i < argc; i++)
{
if (strcmp(argv[i], "/param1") == 0)
param1 = true;
if (strcmp(argv[i], "/count") == 0)
param_count = true;
if (param_count && argc > i)
param_count_val = atoi(argv[i + 1]);
}
if (param1)
cout << "param1 used" << endl;
if (param_count)
cout << "count is " << param_count_val << endl;
return 0;
}
Насчёт нажатия кнопок:
#include <iostream>
#include <conio.h>
using namespace std;
int main (int argc, char* argv[])
{
char c = 0;
//Цикл пока не нажата клавиша выхода
while (c != 'Q')
{
//Очистка экрана
system("cls");
//Меню
cout << "MenuItem1 - 1" << endl;
cout << "MenuItem2 - 2" << endl;
cout << "Exit - Q" << endl;
//Чтение клавиши
c = toupper(getch());
//Действия
switch (c)
{
case '1':
cout << "MenuItem1 selected" << endl;
getch();
break;
case '2':
cout << "MenuItem2 selected" << endl;
getch();
break;
}
}
return 0;
}
Насчёт conio смотрите в приложении, я там писал класс для работы с консолью, наверное разберётесь.
#include "Console.h"
using namespace std;
int main()
{
//Установка заголовка окна
console.SetTitle("Работа с консолью");
//Ввод имени файла
console.Write("Введите имя файла: ");
string filename = console.ReadLine();
//Установка цвета
console.SetColor(clRed);
console.WriteLine("Вы выбрали файл " + filename);
//Задержка
console.Pause();
return 0;
}
Приложение:
--------- Драконы наступают!
Ответ отправил: Dark Daskin (статус: 1-ый класс)
Ответ отправлен: 04.07.2007, 09:47