Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
 Аватар для Vovik_0_1
40 / 40 / 6
Регистрация: 28.07.2011
Сообщений: 431

Прячем,показываем форму.

20.02.2012, 15:03. Показов 1330. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем!!! Создаю программу которая должна скрываться при запуске и раскрываться по зажатию клавиш D и J но она не раскрывается в чём дело??? Как исправить? Заранее спасибо,,,,!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
 if (GetAsyncKeyState('D')== true && GetAsyncKeyState('J')== true)Application->ShowMainForm = true;
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::FormCreate(TObject *Sender)
{
 Application->ShowMainForm = false;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.02.2012, 15:03
Ответы с готовыми решениями:

На всю форму залита картинка как фон, при зажатой левой клавише можно перетаскивать форму по экрану
Подскажите как это можно осущиствить? Как словить момент зажатия и как продумать логику перетаскивания?

На всю форму залита картинка как фон, при зажатой левой клавише можно перетаскивать форму по экрану
Всем доброго времени суток. Пробовал сделать как в простом VSL Application, ничего не получается: void __fastcall...

Прячем адрес сайта, показываем лишь домен
Здравствуйте форумчане. У меня к вам вопрос, как спрятать ссылки на своем сайте. Что бы при заходе на любую страницу человек видел...

12
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
20.02.2012, 15:18
может, HotKey зарегистрировать ?
0
 Аватар для Vovik_0_1
40 / 40 / 6
Регистрация: 28.07.2011
Сообщений: 431
20.02.2012, 15:30  [ТС]
Всё равно не работает.
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
20.02.2012, 15:51
используй в таймере такой анализ (без мэмо, разумеется)__
C++
1
2
 if ((GetAsyncKeyState(VkKeyScan('d'))!=0)&&(GetAsyncKeyState(VkKeyScan('j'))!=0))
   Memo1->Lines->Add("D+J");
1
 Аватар для Vovik_0_1
40 / 40 / 6
Регистрация: 28.07.2011
Сообщений: 431
20.02.2012, 16:01  [ТС]
Не работает может дело в Application->ShowMainForm = true;??????
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
20.02.2012, 18:27
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) {  }
//---------------------------------------------------------------------------
     bool runs;
//---------------------------------------------------------------------------
void __fastcall TForm1::FormPaint(TObject *Sender)
{
   if (!runs++) Form1->Hide();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
   if (GetAsyncKeyState(VkKeyScan('d'))&&
        GetAsyncKeyState(VkKeyScan('j')))  Form1->Show(); 
}
//---------------------------------------------------------------------------
1
 Аватар для Vovik_0_1
40 / 40 / 6
Регистрация: 28.07.2011
Сообщений: 431
20.02.2012, 21:45  [ТС]
Спасибо но
C++
1
2
GetAsyncKeyState(VkKeyScan('d'))&&
        GetAsyncKeyState(VkKeyScan('j'))
Даже если кнопки не зажимить ( Да и в вообще если просто набирать текст то она вылазиет!!!! Как сделать так чтобы оно выскакивало по ЗАЖАТИЮ клавиш "D" "J" "B". Спасибо!
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
20.02.2012, 22:37
Пожалуйста! Вот так сделай__
C++
1
2
   if ((GetAsyncKeyState(VkKeyScan('d'))<0)&&
        (GetAsyncKeyState(VkKeyScan('j'))<0))  Form1->Show();

Не по теме:

Между прочим, мне это не кукушка в зимнем лесу накуковала; учись анализировать и экспериментировать, если, конечно, собираешься программировать.

1
 Аватар для Vovik_0_1
40 / 40 / 6
Регистрация: 28.07.2011
Сообщений: 431
28.02.2012, 01:10  [ТС]
Привет всем!! Прячу и показываю форму так
C++
1
if ((GetAsyncKeyState(VkKeyScan('b'))<0) && (GetAsyncKeyState(VkKeyScan('d'))<0)&&(GetAsyncKeyState(VkKeyScan('j'))<0)){P=1; Form1->Visible = true; }
У меня на компе программа работает, а вот на других компьютерах программа по зажиманию клавиш не показывается( В чём дело.?.. Сама программа работает на всех компах, а вот сочетание клавиш не хочет(( Может для функции GetAsyncKeyState нужно както особо компилить??? Компилю так
C++
1
2
3
чтобы программа работала на компьютерах, на которых не установлен билдер, нужно провести следующие настройки в опциях проекта:
- закладка packages: убрать галочку Build with runtimes packages
- закладка linker: убрать галочку Use dinamyc RTL
0
 Аватар для __bool
288 / 229 / 27
Регистрация: 13.06.2010
Сообщений: 744
28.02.2012, 08:24
Цитата Сообщение от LK Посмотреть сообщение
может, HotKey зарегистрировать ?
Последуйте совету LK.
Используйте сочетания клавиш, которые не используются системой.
Хотя я лепил нечто подобное HotBar'у.. GetKeyState(17)(17 - CTRL) - вроде как везде работает
попробуйте GetKeyState, если RegisterHotKey вам не нравится
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
28.02.2012, 10:26
Да и с логикой малость того, напутано
Это ж переключение в одну из двух позиций - проще надо:
C++
1
2
3
if ("детектировано нажатие комбинации") { // эта строчка - псевдокод... так, если кто вдруг засомневается:)
  Form1->Visible = ! Form1->Visible;
}
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
28.02.2012, 13:46
- а может на других компах "по умолчанию" не английская раскладка клавиатуры установлена? На это внимания не обращали?

Добавлено через 22 минуты
вообще-то регистр не при чём; я ваш вариант пробовал с таймером и Form->Show (вместо Visible) - попробуйте поменять у себя.
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
28.02.2012, 14:51
Вот такой вариант с интернациональными, так сказать, клавишами погонял на семерке и win xp sp3:
C++
1
2
3
4
5
    if ( GetAsyncKeyState( VK_LBUTTON ) && // одновременное удержание лкм + home + end
        GetAsyncKeyState( VK_HOME ) &&
        GetAsyncKeyState( VK_END ) ) {
        Form1->Visible = !Form1->Visible;
    }
Ставим таймер на пару-тройку секунд, чтоб не спешил, держим три кнопки - и вуаля
На семерке при включенном UAC, если в фокусе процесс с повышенными привилегиями, то не срабатывает, естессно.
На ХР работает стабильно при любом раскладе.

Вообще, у вас проблемы могут быть по пунктам, указанным в пометках к возвращаемому значению функции GetAsyncKeyState:
Windows NT/2000/XP: The return value is zero for the following cases:
- The current desktop is not the active desktop
- The foreground thread belongs to another process and the desktop does not allow the hook or the journal record.
А это уже настройки винды.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.02.2012, 14:51
Помогаю со студенческими работами здесь

Прячем Счетчики
Друзья товарищи скажите пожалуйста как поисковые системы относятся к тому что счетчики в footore прячут с помощью CSS: div.stats{ ...

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

прячем ссылки php
Подскажите пожалуйста как спрятать php странице в адресной строке? Идет например ссылка http://site.ru/data/test.php ...

показываем процесс выполнения
Processing (ну, или как-то так). Что умеет: 1. Пишет в RTF (по идее без ограничения размера текста, правда однажды нарвался на...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru