Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.12.2012, 00:58   #11
Shpion007
Пользователь
 
Регистрация: 28.12.2012
Сообщений: 14
По умолчанию

Цитата:
Сообщение от EUGY Посмотреть сообщение
Телепатически так:

Если в каком-то потоке использовать свойства, методы, события объекта
созданного в другом потоке, то нужно быть готовым к любым неожиданностям.
Можно посоветовать рисовать только функциями GDI и с этого момента называть "канву формы" - умным словом Device Context
Хм... попробуем. Только вот немного мороки с ним больше, и исправит ли это глюки?
Shpion007 вне форума Ответить с цитированием
Старый 29.12.2012, 01:01   #12
Shpion007
Пользователь
 
Регистрация: 28.12.2012
Сообщений: 14
По умолчанию

Цитата:
Сообщение от Perchik71 Посмотреть сообщение
нужна синхронизация с формой если вы пишите на bcb
то вам подойдёт TThread у него есть метод синхронизе.. синхронизация с формой и пожалуйста.

Код:
class T: public TThread
{
...
protected:
void __fastcall Execute(); <-- это используем для работы потока
public:
...
};

void __fastcall TThread::Execute()
{
.....
Synchronize(тут метод с чем нужно синхронизировать)
.....
}
Тоже интересно, как я понимаю это позволит мне рисовать на канве и избавиться от глюков?
Только, если можно, код по-подробнее, куда это вообще писать, и что есть что.
Shpion007 вне форума Ответить с цитированием
Старый 29.12.2012, 01:07   #13
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Цитата:
Только вот немного мороки с ним больше, и исправит ли это глюки?
Не знаю. Приведи код с глюками.
А вообще, способ _Bers лучше.
Я вот не знаком с классами в билдере (и честно говоря, не горю желанием узнать),
но наверняка у главного окна есть метод(событие), который вызывается из главного цикла приложения. Вот в него и поместить код приведенный _Bers.
И не надо никаких потоков.
EUGY вне форума Ответить с цитированием
Старый 29.12.2012, 01:15   #14
Shpion007
Пользователь
 
Регистрация: 28.12.2012
Сообщений: 14
По умолчанию

Цитата:
Сообщение от _Bers Посмотреть сообщение
do выполняется всегда, а не по нажатию кнопки.

Внутри цикла опрашиваются кнопки, и определяется, нужно ли рисовать
Всё равно не понял, можно небольшой, но работающий пример?
Shpion007 вне форума Ответить с цитированием
Старый 29.12.2012, 01:18   #15
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Цитата:
Всё равно не понял, можно небольшой, но работающий пример?
Короче, таймер на форму, в таймере код.
EUGY вне форума Ответить с цитированием
Старый 29.12.2012, 01:25   #16
Shpion007
Пользователь
 
Регистрация: 28.12.2012
Сообщений: 14
По умолчанию

Цитата:
Сообщение от EUGY Посмотреть сообщение
Короче, таймер на форму, в таймере код.
Раньше я ещё понимал что-то... )
Подробнее, пожалуйста.
Shpion007 вне форума Ответить с цитированием
Старый 29.12.2012, 01:29   #17
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Perchik71, АУ!

Расскажи, в билдере есть элемент таймер?
Объясни плиз.
EUGY вне форума Ответить с цитированием
Старый 29.12.2012, 01:36   #18
Shpion007
Пользователь
 
Регистрация: 28.12.2012
Сообщений: 14
По умолчанию

Цитата:
Сообщение от EUGY Посмотреть сообщение
Perchik71, АУ!

Расскажи, в билдере есть элемент таймер?
Объясни плиз.
Да, есть, но что с ним делать не знаю.
Shpion007 вне форума Ответить с цитированием
Старый 29.12.2012, 01:39   #19
Perchik71
С++, Delphi
Форумчанин
 
Аватар для Perchik71
 
Регистрация: 24.11.2012
Сообщений: 495
По умолчанию

Ааа чего??? тута я
TTimer в вкладке System там где куча компонентов кидать...
ну как для младенцев в фотошопе понатыкать как можно больше кнопочек.
если BCB 6 версии они все в верху
в кодегире они справа.
как кинешь на форму щёлкни 2 раза левой кнопкой мышки быром.. и воля ты попал в код и тебе сгенерировали функцию собышки... туда пиши всё чё хочешь... каждую секунду оно выполняется.
//-----
для остановки таймера... Enabled гаси на false
что таймер дал газу установи это же свойство на true
так же поглади слева в режиме формы там наверняка будет 1000 написано это скоко тебя ждать р0дной.
//--
для смеха напиши в таймире собышки
Код:
Color = Color + 100;
Если помог, тут весы есть , Вам не сложно, а мне приятно.

Последний раз редактировалось Perchik71; 29.12.2012 в 01:47.
Perchik71 вне форума Ответить с цитированием
Старый 29.12.2012, 01:43   #20
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Ну надо же, и таймер у них есть, и TThread.
Вот, надо где-то в его свойствах задать интервал времени в миллисекундах.
И наверное, подобно тому, как у кнопок есть метод/событие Click (или что там есть)
так и у таймера есть событие которое будет выполнятся каждые N миллисекунд.
В теле его метода рисуем.
Одна кнопка стартует таймер, другая его гасит.
EUGY вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать класс "Фигура", от него наследованием создать 3 класса ("треугольник", "четырехугольник", "окружность") funnyy Помощь студентам 3 17.10.2012 17:40
Вывести название соответствующей карты вида "шестерка бубен", "дама червей","туз треф" и т.п. воваава Помощь студентам 3 01.12.2011 12:50
Как "повесить " передачу данных из формы на событие нажатия кнопки типа "button" ? vedro-compota JavaScript, Ajax 10 14.12.2010 21:05
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04