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

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

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.10.2008, 00:49   #1
NavigatorNeba
 
Регистрация: 16.10.2008
Сообщений: 4
По умолчанию Компонент класса BitBtn с двумя Caption.

Помогите защитить честь Delphi. Нужен компонент класса BitBtn с двумя Caption и чтобы у каждого был свой Font. Располагаться Caption-сы должны так: если разделить кнопку пополам по горизонтали то каждый Caption должен находится в средине своей половины, как по горизонтали, так и вертикали (тоже расположение, что и у Caption стандартного компонента). При длине текста, в Caption, больше чем ширина кнопки, текст должен переносится на вторую строку этого Caption, при этом весь текст должен центрироваться как и прежде. Нужна возможность программно, в динамике, влиять на размер, цвет, стиль Caption-ов. Необходима возможность выбора цвета кнопки, необходимо чтобы это был параметр, ну что-то типа ColorBut, в Инспекторе объектов на закладке Properties, который можно изменять как на этапе проектирования, так и во время работы программы, динамически то есть. Еще нужно свойство, в Инспекторе объектов, при установке которого при одном щелчке кнопка бы включала (нажималась), а при повторном нажатии бы возвращалась в исходное состояние, имелась бы возможность отследить текущее состояние кнопки. Данная кнопка должна поддерживать режим множественно выбора, когда помимо ее нажато еще несколько таких кнопок, при этом необходима возможность считывания состояния этих кнопок, было бы здорово считывать, в какой очередности они нажаты.
Также, необходима возможность динамически, во время выполнения программы, менять картинку кнопки.

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

Будет здорово если Вы подробно опишите процедуры и функции данного компонента, я никогда ранее не занимался созданием своих компонентов, как-то все стандартными обходился, а туту такое дело.

А дело заключается в следующем: встретил я тут одного прогера пишущего на ХХХХ (имя языка не указываю, дабы не дискредитировать нормальных прогеров пишущих на этом языке). Мы с ним разговорились о своем, о прогерском. Чувак оказался каким-то неправильным прогером, давай мне доказывать, что, мол, Delphi - это вчерашний день, что, мол, генерит он слишком тяжелый код, будущее, мол, за Веб технологиями, а Delphi вообще не актуальна. Я ему типа говорю, что, мол, каждый прогер выбирает себе язык программирования по себе, по стоящим перед ним задачам, каждый язык имеет свою спецификацию, по этому говорить, что один язык лучшее другого очень сложно и неправильно. А он заладил свое зараза, Delphi маздай мол и все тут. Ну, в общем, занозились мы неслабо на эту тему. И ладно бы просто занозились, но весь этот спор происходил на глазах третьей стороны, людей уважаемых, очень уважаемых, людей старшего возраста. Они нас слушали, слушали, а потом взяли да предложили, для того чтобы выяснить, чей язык программирования лучше, а кто из нас двоих трепло, написать программку на указанную ими тему.
Я прошу помочь мне, у меня осталось мало времени, я ранее никогда не писал компоненты и если я сейчас начну изучать эту тему, я все отведенное время потрачу только на создание вышеописанного компонента. Мне этот компонент нужен для того, чтобы все было в моей программе красиво, можно конечно что-то из стандартных компонентов наляпать, но получится не очень, а мне «не очень» нельзя.
Прошу, помогите защитить честь программиста, и честь, прекрасного языка программирования, Delphi.
NavigatorNeba вне форума Ответить с цитированием
Старый 28.10.2008, 20:32   #2
Rik
Форумчанин
 
Аватар для Rik
 
Регистрация: 28.07.2007
Сообщений: 361
По умолчанию

Хмм.. Когда то я также спорил и выиграл ящик пива. Вот сделал заготовку, кнопка с 2 мя надписями, у каждой надписи свой Gliph. С переносом слов возиться уже терпения нехватило.
Добавил свойства XCaption, XFont, XGliph.
Отрисовка в xBitBtn.DrawItem. Ищите функцию DrawText, она используется при отрисовке текста, переносит слова сама при соответствующих флагах, разбирайтесь и доделывайте остальное, кому охота...
Во вложении пакет xButton, в нем одна кнопка, пакет нужно скомпилировать и установить. TestForm - тестовое приложение
Вложения
Тип файла: zip XButton.zip (16.8 Кб, 25 просмотров)

Последний раз редактировалось Rik; 28.10.2008 в 20:42.
Rik вне форума Ответить с цитированием
Старый 29.10.2008, 15:21   #3
NavigatorNeba
 
Регистрация: 16.10.2008
Сообщений: 4
По умолчанию

Спасибо Вам Rik за компонент, я обязательно его изучу и, основываясь на полученном опыте, попробую решить поставленную передо мной задачу. Еще раз спасибо, а то знаете на большинстве форумах, я вместо помощи получил оскорбление и обвинение в «РАЗВОДЕ нормальных людей».
NavigatorNeba вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Caption в BitBtn!!! rivers Компоненты Delphi 14 11.08.2008 15:36
caption в цыкле nikleb Общие вопросы Delphi 3 18.04.2008 15:23
BitBtn и ее Bitmap Yogik™ Помощь студентам 2 19.11.2007 17:12
Кнопка BitBtn Yurek Общие вопросы Delphi 10 05.11.2007 18:42
Чем можно заменить объект BitBtn? frai Компоненты Delphi 3 14.04.2007 12:42