Перейти к содержанию
СофтФорум - всё о компьютерах и не только

Несколько вопросов по С++ 6


Рекомендуемые сообщения

Я учусь программировать. И меня интересует несколько вопросов (может Вам они покажутся легкими но я то только начинаю):

1. Как мне сделать чтобы по нажатию на кнопку запускался файл

2. Как мне сделать чтобы у формы не было рамки но ее можно было перетаскивать

3. Как мне сделать чтобы форма была не стандартная(прямоугольная) а круглая, или другой формы

Всем заранее благодарен за помощь

Ссылка на комментарий
Поделиться на другие сайты

Друг, ты о чем? Я почти не понял не одного твоего вопроса...

1) Если ты о уже готовой программе: то для запуска нужно надать F5 или можно запускать ЕХЕ-файл.

2-3) Если ты имеешь ввиду рабочее поле где ты пишешь программу то - зачем тебе делать ее круглой? А про рамку я вообще не пойму... :blush2:

Ты поясни пожалуйста!

Ссылка на комментарий
Поделиться на другие сайты

Мне нужно чторбы в моуй проге по нажатию на мою кнопку открывался файл!

Мне НАДО сделать форму круглой!

Ссылка на комментарий
Поделиться на другие сайты

Я так понимаю, C++ 6 - это C++ Builder 6? :melkiy:

1) Смотри функцию shellexecute. Надеюсь разберёшься.

2) Это если BorderStyle в None стоит?

Тогда: в .h-файле - переменные:

bool Dragging;

int OldLeft, OldTop;

В событиях на форме:

onmousedown:

if(Button == mbLeft)

{

Dragging = true;

OldLeft = X;

OldTop = Y;

};

onmousemove:

if(Dragging)

{

Left = Left + X - OldLeft;

Top = Top + Y - OldTop;

};

onmouseup:

Dragging = false;

3) Пример овальной формы (на событие oncreate):

HRGN HRegion;

HRegion = CreateEllipticRgn(0, 0, Width, Height);

SetWindowRgn(Handle, HRegion, true);

Изменено пользователем Amsterdam
Ссылка на комментарий
Поделиться на другие сайты

По поводу ShellApi поясню, поскольку полагаю, что не разберешься (ты уж не обижайся - сам написал, что только начинаешь :melkiy: )

Подключаешь ShellAPI:

#include "ShellAPI.h"

В процедуру, которая обрабатывает событие OnClick твоей кнопки, вставляешь:

ShellExecute(0, "open", "ПОЛНЫЙ ПУТЬ К ФАЙЛУ/ПАПКЕ, КОТОРЫЙ НАДО ОТКРЫТЬ", NULL, NULL, SW_SHOWNORMAL);

Ссылка на комментарий
Поделиться на другие сайты

Я так понимаю, C++ 6 - это C++ Builder 6? :D

Это если BorderStyle в None стоит?

Тогда: в .h-файле - переменные:

bool Dragging;

int OldLeft, OldTop;

А как там объявить переменные? :happybirth4:

Ссылка на комментарий
Поделиться на другие сайты

В unit'е (там, где ты код редактируешь) внизу переключаешься со вкладки <название unit'а>.cpp на <название unit'а>.h.

Там в разделе classprivate пишешь эти переменные.

Ссылка на комментарий
Поделиться на другие сайты

Amsterdam: Получилось! Огромное спасибо!

А как сделать чтобы форма была не овальная и не квадратная а какаянибудь другая. Например прямоугольная но только с различными "выпуклостями" или совсем неправильной формы

А как сделать круглые кнопки?

Ссылка на комментарий
Поделиться на другие сайты

А как сделать круглые кнопки?

Написать свой компонент. Или лучше скачать уже готовый.

Вот пару ссылочек, но я их не проверяла:

С++: http://freeprog.spb.ru/sources/roundbutton.phtml

Delphi: http://soft32.ru/delphi.shtml?topic=comps&...=lib_resize_btn

Ссылка на комментарий
Поделиться на другие сайты

А как сделать кнопки в стиле Windows Xp?

А как сделать, чтобы по открытии формы кнопка сеачала была неактивна, а через нескольео секунд (таймер отображался на кнопке) она становилась активной? (Можно и без таймера!)

Ссылка на комментарий
Поделиться на другие сайты

А как сделать, чтобы по открытии формы кнопка сеачала была неактивна, а через нескольео секунд (таймер отображался на кнопке) она становилась активной? (Можно и без таймера!)

Cвойство кнопки Enabled устанавливаешь в false.

Объявляешь в начале юнита int i=0;

Процедура обработки события OnTimer твоего таймера:

if (i<6) // какое количество секунд она должна быть неактивна

{

BitBtn1->Caption=i;

i=i+1;

}

else

{

BitBtn1->Enabled=true;

BitBtn1->Caption="ГОТОВО";

};

Самый незамудреный способ. :bye1:

Ссылка на комментарий
Поделиться на другие сайты

Cвойство кнопки Enabled устанавливаешь в false.

Объявляешь в начале юнита int i=0;

Процедура обработки события OnTimer твоего таймера:

if (i<6) // какое количество секунд она должна быть неактивна

{

BitBtn1->Caption=i;

i=i+1;

}

else

{

BitBtn1->Enabled=true;

BitBtn1->Caption="ГОТОВО";

};

Самый незамудреный способ. :)

А как сделать чтобы был ОБРАТНЫЙ отсчет таймера?

Ссылка на комментарий
Поделиться на другие сайты

А как сделать чтобы был ОБРАТНЫЙ отсчет таймера?

C++; консольное приложение

#include <iostream>

using namespace std;

int i,b = 0;

main()

{

for(int i1 = 0;i1 < 1000000000;i1++)

{

if(i1 == 100000000)

{

i1 = 0;i++;

b = 10 - i;

cout<<b;

if(b == 0)

{

break;

}

}

}

system("pause");

}

Можеш код использовать при создании функции с возвращающим значением " b "

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...