Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] Определение функций кнопки или TButton::OnClick.Как сделать?

Ответить
Настройки темы
C/C++ - [решено] Определение функций кнопки или TButton::OnClick.Как сделать?

Аватара для Virtyaluk

Старожил


Сообщения: 163
Благодарности: 23


Конфигурация

Профиль | Сайт | Отправить PM | Цитировать


Помогите, пожалуйста
есть несколько кнопок (например, ВЭБ, Справка и Выход)
нада задать им необходимые функции т.е. чтоб:
- при нажатии на кнопку "Выход" закрывалось приложение;
- при нажатии на кнопку "Справка" открывался некоторый help.chm по пути, например, c:\\windows\help;
- при нажатии на кнопку "ВЭБ" открывался браузер на страничке, например, http://mysite.com.

Код программы:
Код: Выделить весь код
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
	: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Label1Click(TObject *Sender)
{

}
//---------------------------------------------------------------------------

void __fastcall TForm2::Button1Click(TObject *Sender)
{

}
//---------------------------------------------------------------------------
использую C++ Builder от CodeGear RAD studio 2007

как, все выше указанное, осуществить?
и можно ли все это осуществить в Делфи и насколько изменится код?

Отправлено: 22:31, 24-01-2010

 

Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


Цитата qE+:
- при нажатии на кнопку "Выход" закрывалось приложение; »
Код: Выделить весь код
void __fastcall TForm2::Button1Click(TObject *Sender)
{
   Close();
}
Цитата qE+:
- при нажатии на кнопку "ВЭБ" открывался браузер на страничке, например, http://mysite.com. »
Код: Выделить весь код
void __fastcall TForm1::Label1Click(TObject *Sender)
{
   ShellExecute(Handle, NULL, "http://mysite.com/", NULL, NULL, SW_SHOWNORMAL);
}
Цитата qE+:
- при нажатии на кнопку "Справка" открывался некоторый help.chm по пути, например, c:\\windows\help; »
Никогда не делал к сожалению, но там есть вроде бы такое - Project - Options - пункт Application - Поле Help file - указать через кнопку Browse... файл помощи. А дальше, без понятия, не ставил себе такую задачу. Нужно будет поэкспериментировать на досуге...

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Отправлено: 22:51, 24-01-2010 | #2



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

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


Аватара для Virtyaluk

Старожил


Сообщения: 163
Благодарности: 23

Профиль | Сайт | Отправить PM | Цитировать


Drongo,
спасибо за коды.

вот нашел для открытия файла:
Код: Выделить весь код
void __fastcall TForm2::Button4Click(TObject *Sender)
{
ShellExecute(Handle, "open", "C:\\help.chm",NULL,NULL,SW_SHOWNORMAL);
}
Это сообщение посчитали полезным следующие участники:

Отправлено: 02:55, 25-01-2010 | #3


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


Цитата qE+:
вот нашел для открытия файла: »
Тогда файл справки help.chm должен быть всегда на диске C:.

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Отправлено: 13:02, 25-01-2010 | #4


Аватара для Virtyaluk

Старожил


Сообщения: 163
Благодарности: 23

Профиль | Сайт | Отправить PM | Цитировать


Цитата Drongo:
Тогда файл справки help.chm должен быть всегда на диске C:. »
Я помещу файл в директорию Windows и буду запускать, типа:
Код: Выделить весь код
void __fastcall TForm2::Button4Click(TObject *Sender)
{
ShellExecute(Handle, "open", "C:\\windows\help\help_zzz.chm",NULL,NULL,SW_SHOWNORMAL);
}
-*---*-
Только, вот проблема в том, что справка не будет запускаться по нажатию кнопки F1!
Вот код для запуска chm-справки:
Код: Выделить весь код
HWND hwnd =
   HtmlHelp(
            GetDesktopWindow(),
            "c:\\Help.chm::/Intro.htm>Mainwin",
            HH_DISPLAY_TOPIC,
            NULL) ;
или это:
Код: Выделить весь код
CHAR buffer[100];
GetCurrentDirectory(sizeof(buffer),buffer);
WideString Help = WideString(buffer) + "\\R11_HELP.chm";
Application->HelpFile = Help;
Application->HelpCommand(HELP_CONTENTS, 0);
Но выдает ошибку о том, что данный файл не является Win-справкой.

Но я не заню "с какой стороны" ЭТО добавить в код моей программы и работает ли оно в самом то деле.
Помогите кто может.

Последний раз редактировалось Virtyaluk, 25-01-2010 в 13:49. Причина: хз


Отправлено: 13:48, 25-01-2010 | #5


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


Цитата qE+:
ShellExecute(Handle, "open", "C:\\windows\help\help_zzz.chm",NULL,NULL,SW_SHOWNORMAL); »
Нет двойных слешей в путях \\, но я бы сделал так(простой способ). Поместил файл help.chm в папку с программой и определял бы каталог запуска данной программы, получая путь к нему цеплял бы файл справки.
Код: Выделить весь код
 String PathCHM = ExtractFilePath(Application->ExeName) + "Builder.chm";
 ShellExecute(Handle, "open", PathCHM.c_str(), NULL, NULL, SW_SHOWNORMAL);
Цитата qE+:
Но выдает ошибку о том, что данный файл не является Win-справкой. »
Сам файл открывается на Windows 7 ?

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Отправлено: 15:10, 25-01-2010 | #6


Аватара для Virtyaluk

Старожил


Сообщения: 163
Благодарности: 23

Профиль | Сайт | Отправить PM | Цитировать


Цитата Drongo:
Поместил файл help.chm в папку с программой и определял бы каталог запуска данной программы, получая путь к нему цеплял бы файл справки.
Код:
String PathCHM = ExtractFilePath(Application->ExeName) + "Builder.chm";
ShellExecute(Handle, "open", PathCHM.c_str(), NULL, NULL, SW_SHOWNORMAL); »
куда это писать??

Цитата Drongo:
Сам файл открывается на Windows 7 ? »
конечно

Отправлено: 13:58, 31-01-2010 | #7


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


Цитата qE+:
куда это писать?? »
В обработчик OnClick, того компонента, на который вы хотите по нажатию запускать файл справки. Например в Label

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Отправлено: 15:36, 31-01-2010 | #8


ИО Капитана Очевидности


Contributor


Сообщения: 5387
Благодарности: 1105

Профиль | Отправить PM | Цитировать


Цитата qE+:
- при нажатии на кнопку "Выход" закрывалось приложение; »
Установить значение ModalResult или Cancel - само закроется

Цитата qE+:
Я помещу файл в директорию Windows и буду запускать, типа: »
Вот так - одни в папку windows всякую хрень кидают, а другие потом с ней разбираются
Правильнее будет считывать файл из текущего каталога программы. Определить текущий каталог очень просто - ExtractFileDir (Application->Exename)

-------
Самое совершенное оружие, которым забиты арсеналы богатых и процветающих наций, может легко уничтожить необразованного, больного, бедного и голодного. Но оно не может уничтожить невежество, болезнь, нищету и голод. (Фидель Кастро)

Почему всех осужденных за измену Родине при Сталине реабилитировали при Горбачёве по отсутствию состава преступления? Потому что при Горбачёве измену Родине перестали считать преступлением.


Отправлено: 04:56, 01-02-2010 | #9



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] Определение функций кнопки или TButton::OnClick.Как сделать?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Debian/Ubuntu - Неправильно работает Numpad: кнопки '+50,' работают как кнопки мыши Viktorr Общий по Linux 0 29-04-2009 20:40
Разное - [решено] Определение легальности Windows XP или просто S/N без интернета. Diseased Head Лицензирование продуктов Microsoft 13 24-03-2008 12:14
[решено] Default User или как сделать относительный путь к нему AppleNTU Автоматическая установка Windows 2000/XP/2003 9 17-08-2007 11:52
Как сделать соответствие кнопки и клавиши fossil Программирование и базы данных 5 29-04-2004 16:00
Диски C ИЛИ D  как сделать общими Guest Microsoft Windows 95/98/Me (архив) 2 13-08-2002 18:17




 
Переход