Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

TBrush проблемы обновления

249
31 июля 2005 года
DissDoc
639 / / 01.10.2004
Я на форме Form1 разместил Image1, а на второй форме Form2 находится палитра.
Так вотЭ, задумка такая, я кликаю мышкой на палитру и получаю значение цвета, присваиваю его глобальной переменной br (TBrush), которая доступна двум формам.
Проблема вот какая! Когда я кликаю на палитру, то получаю значение цвета кисти! На Form1->Image1 я заливаю всю Image1 полученным цветом! Но стоит мне кликнуть второй раз на палитре но уже на другом цвете, то при клике на Form1->Image1 ничего не происходит (потому что не обновляется кисть). Вопрос: ГДЕ (в каком событии) нужно обновить кисть, чтобы все работало корректно?
2.0K
01 августа 2005 года
WidowMaker
212 / / 05.04.2005
Цитата:
Originally posted by DissDoc
Я на форме Form1 разместил Image1, а на второй форме Form2 находится палитра.
Так вотЭ, задумка такая, я кликаю мышкой на палитру и получаю значение цвета, присваиваю его глобальной переменной br (TBrush), которая доступна двум формам.
Проблема вот какая! Когда я кликаю на палитру, то получаю значение цвета кисти! На Form1->Image1 я заливаю всю Image1 полученным цветом! Но стоит мне кликнуть второй раз на палитре но уже на другом цвете, то при клике на Form1->Image1 ничего не происходит (потому что не обновляется кисть). Вопрос: ГДЕ (в каком событии) нужно обновить кисть, чтобы все работало корректно?


Шо опять:) ?
А ты уверен, что кисть не обновляется?
Попробуй вывести ее значение при изменении.
Может RePaint поможет...

249
01 августа 2005 года
DissDoc
639 / / 01.10.2004
Цитата:
Originally posted by WidowMaker
Шо опять:) ?
А ты уверен, что кисть не обновляется?
Попробуй вывести ее значение при изменении.
Может RePaint поможет...



Вот короче исходник и экзешник.
Вначале делаем "OptionsMap->GenerateMap", затем OptionsMap->Painter (именно здесь траблы)

249
01 августа 2005 года
DissDoc
639 / / 01.10.2004
Цитата:
Originally posted by DissDoc
Вот короче исходник и экзешник.
Вначале делаем "OptionsMap->GenerateMap", затем OptionsMap->Painter (именно здесь траблы)



ОЙ! Забыл файл прикрепить!

249
02 августа 2005 года
DissDoc
639 / / 01.10.2004
Цитата:
Originally posted by DissDoc
ОЙ! Забыл файл прикрепить!



Ну не уже ли никто не может помочь?

406
02 августа 2005 года
vitaly2003s
481 / / 27.07.2004
Цитата:
Originally posted by DissDoc
Ну не уже ли никто не может помочь?



пиши в Visual Studio тогда помогу

2.0K
03 августа 2005 года
WidowMaker
212 / / 05.04.2005
Цитата:
Originally posted by DissDoc
Ну не уже ли никто не может помочь?


Посмотрел проект...
УБИВАТЬ ЗА ТАКОЕ НАДО.

Тут такой бардак (хорошо хоть маленький). Скажи ты примеры
из Архангельского брал? Ну и зря(один дурак написал, а другой-издал).
Половина из них не рабочие
(не пригодны к употреблению).


Совет дна: сноси все к чертям и начинай по новому, по аккуратней.


Ну, это я отвлекся...

Во первых, ты не правильно используешь TBrush:

Note: Setting the Brush property assigns the specified TBrush object, rather than replacing the current TBrush object.

Specifies an external bitmap image that defines a pattern for the brush.

__property TBitmap* Bitmap = {read=GetBitmap, write=SetBitmap};

Description

Bitmap points to a TBitmap object that holds a BMP image. If Bitmap is nonempty, the BMP image (rather than the Style property) defines the brush’s pattern. If the image is larger than eight pixels by eight pixels, only the top left eight-by-eight region is used.

Changing the image does not affect the brush until the TBitmap is reassigned to the Bitmap property. Be sure to free the TBitmap after finishing with the brush, since TBrush will not free it.

Тут все! расписано.
Если ты обращал внимание, то когда ты "снимаешь" кисть, т.е. кликаешь по мэйну
правой кнопкой, а потом заливаешь серым цветом(т.е. еще раз кликаешь, но правой),то
новая картинка для кисти выбирается без проблем.

Это тут описано. Но есть еще одно - картинка-маска должна быть размером 8х8(не помню как в 6, но думаю без изменений), т.е. твои "картЫнкЫ" 32х32 - не у дел.
Мало того, ты зря их загружаешь по сто раз, т.к. это вообще не так делается.
Вот не полный список лишних вещей:

FillRect
Form2->Hide()
Form1->Enable=true // or false
switch(i)
Sender == Image1
Form1->Left = 0;
Form1->Top = 0;
Form1->Width = GetSystemMetrics(SM_CXSCREEN);
Form1->Height = GetSystemMetrics(SM_CYSCREEN);
Form1->Image1->Width = Form1->Width;
Form1->Image1->Height = Form1->Height;
// целый кусок
if (stat_ == true)
{
int sector = 32;

Form1->Image1->Canvas->MoveTo(x, y);
Form1->Image1->Canvas->LineTo(x + sector, y);
Form1->Image1->Canvas->MoveTo(x + sector, y);
Form1->Image1->Canvas->LineTo(x + sector, y + sector);
Form1->Image1->Canvas->MoveTo(x + sector, y + sector);
Form1->Image1->Canvas->LineTo(x, y + sector);
Form1->Image1->Canvas->MoveTo(x, y + sector);
Form1->Image1->Canvas->LineTo(x, y);
}
else if (stat_ == false)return; //при том, что это конец ф-ции :D

И тут полно еще такогО.
//Я еще б критиковал, но опоздаю на "Шпионку".
"Если хочешь сделать хорошо, делай это сам...",но если хочешь я могу помочь...

З.Ы.: если обиделся, то зря:)

249
03 августа 2005 года
DissDoc
639 / / 01.10.2004
Цитата:
Originally posted by WidowMaker
Посмотрел проект...
УБИВАТЬ ЗА ТАКОЕ НАДО.

Тут такой бардак (хорошо хоть маленький). Скажи ты примеры
из Архангельского брал? Ну и зря(один дурак написал, а другой-издал).
Половина из них не рабочие
(не пригодны к употреблению).


Совет дна: сноси все к чертям и начинай по новому, по аккуратней.



Тут все! расписано.
Если ты обращал внимание, то когда ты "снимаешь" кисть, т.е. кликаешь по мэйну
правой кнопкой, а потом заливаешь серым цветом(т.е. еще раз кликаешь, но правой),то
новая картинка для кисти выбирается без проблем.

Это тут описано. Но есть еще одно - картинка-маска должна быть размером 8х8(не помню как в 6, но думаю без изменений), т.е. твои "картЫнкЫ" 32х32 - не у дел.

"Если хочешь сделать хорошо, делай это сам...",но если хочешь я могу помочь...

З.Ы.: если обиделся, то зря:)



Да! Я именно использую советы Архангельского! Вообще я в VisualStudio прогал, а потом как-то постепенно начал в билдер переходить.

Я не обиделся! Если я не знаю, то на что я могу обижаться? На свои ошибки? Ну это я отвлекся!
Вообще я за то, чтоб ты мне помог...

2.0K
03 августа 2005 года
WidowMaker
212 / / 05.04.2005
Цитата:
Originally posted by DissDoc
Да! Я именно использую советы Архангельского! Вообще я в VisualStudio прогал, а потом как-то постепенно начал в билдер переходить.

Я не обиделся! Если я не знаю, то на что я могу обижаться? На свои ошибки? Ну это я отвлекся!
Вообще я за то, чтоб ты мне помог...



:D Всегда рад помочь:D
Хотя урок - это "пинок" в нужном направлении.
Главно запомни - думать за тебя никто не будет
(не то хоби выбрал).
Насчет примера, то я выкладывал в тему:
"Плавное движение" Gangster'у скрин из своего старого редактора карт на фаллоут,
написанный(да не дописанный) на 5 билдере года 2
назад.

406
04 августа 2005 года
vitaly2003s
481 / / 27.07.2004
А че ты забросил visual studio? Оказалась не по зубам?
249
04 августа 2005 года
DissDoc
639 / / 01.10.2004
Цитата:
Originally posted by vitaly2003s
А че ты забросил visual studio? Оказалась не по зубам?



Почему же? Не забросил.. Просто я студию для работы с винапи использую. А в Buildere легко с компонентами работать.
Я сейчас полностью в редактор карт ушел =))

2.0K
05 августа 2005 года
WidowMaker
212 / / 05.04.2005
Так что с редактором :???: А то мэйл, наверно,
не дошел.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог