-
Помогите защитить честь Delphi. Нужен компонент класса BitBtn с двумя Caption и чтобы у каждого был свой Font. Располагаться Caption-сы должны так: если разделить кнопку пополам по горизонтали то каждый Caption должен находится в средине своей половины, как по горизонтали, так и вертикали (тоже расположение, что и у Caption стандартного компонента). При длине текста, в Caption, больше чем ширина кнопки, текст должен переносится на вторую строку этого Caption, при этом весь текст должен центрироваться как и прежде. Нужна возможность программно, в динамике, влиять на размер, цвет, стиль Caption-ов. Необходима возможность выбора цвета кнопки, необходимо чтобы это был параметр, ну что-то типа ColorBut, в Инспекторе объектов на закладке Properties, который можно изменять как на этапе проектирования, так и во время работы программы, динамически то есть. Еще нужно свойство, в Инспекторе объектов, при установке которого при одном щелчке кнопка бы включала (нажималась), а при повторном нажатии бы возвращалась в исходное состояние, имелась бы возможность отследить текущее состояние кнопки. Данная кнопка должна поддерживать режим множественно выбора, когда помимо ее нажато еще несколько таких кнопок, при этом необходима возможность считывания состояния этих кнопок, было бы здорово считывать, в какой очередности они нажаты. Также, необходима возможность динамически, во время выполнения программы, менять картинку кнопки.
Было бы совсем здорово, но я на это уж рассчитывать не буду и так много прошу, возможность располагать не только одну картинку, а четыре сразу. Пусть они все располагаются в левой части кнопки, как у стандартного компонента, в два ряда по две картинки, необходима возможность динамической замены каждой отдельной картинки во время выполнения программы. Но при этом оставалась бы возможность использования одной картинки вместо этих четырех, как у стандартного компонента.
Будет здорово если Вы подробно опишите процедуры и функции данного компонента, я никогда ранее не занимался созданием своих компонентов, как-то все стандартными обходился, а туту такое дело.
А дело заключается в следующем: встретил я тут одного прогера пишущего на ХХХХ (имя языка не указываю, дабы не дискредитировать нормальных прогеров пишущих на этом языке). Мы с ним разговорились о своем, о прогерском. Чувак оказался каким-то неправильным прогером, давай мне доказывать, что, мол, Delphi - это вчерашний день, что, мол, генерит он слишком тяжелый код, будущее, мол, за Веб технологиями, а Delphi вообще не актуальна. Я ему типа говорю, что, мол, каждый прогер выбирает себе язык программирования по себе, по стоящим перед ним задачам, каждый язык имеет свою спецификацию, по этому говорить, что один язык лучшее другого очень сложно и неправильно. А он заладил свое зараза, Delphi маздай мол и все тут. Ну, в общем, занозились мы неслабо на эту тему. И ладно бы просто занозились, но весь этот спор происходил на глазах третьей стороны, людей уважаемых, очень уважаемых, людей старшего возраста. Они нас слушали, слушали, а потом взяли да предложили, для того чтобы выяснить, чей язык программирования лучше, а кто из нас двоих трепло, написать программку на указанную ими тему. Я прошу помочь мне, у меня осталось мало времени, я ранее никогда не писал компоненты и если я сейчас начну изучать эту тему, я все отведенное время потрачу только на создание вышеописанного компонента. Мне этот компонент нужен для того, чтобы все было в моей программе красиво, можно конечно что-то из стандартных компонентов наляпать, но получится не очень, а мне «не очень» нельзя. Прошу, помогите защитить честь программиста, и честь, прекрасного языка программирования, Delphi.
-
В следующий раз: Думать нужно прежде чем спорить.... А теперь... Начинай делать, мы поможем, а делать за тебя врядли кто будет...
-
TPanel + 2 TSpeedButton.
Вообще Здесь обсуждаются вопросы, связанные с разработкой компонентов. Поэтому если не будет вопросов по теме - закрою.
-
> TPanel + 2 TSpeedButton
Мне такое решение не кажется оптимальным, т.к. > Данная кнопка должна поддерживать режим множественно выбора, > когда помимо ее нажато еще несколько таких кнопок
Следовательно компонент должен наследоваться от (и состоять из) TSpeedButton. NavigatorNeba, попробуй написать программу которая выводит две произвольных строки в пределах заданого прямоугольника на TImage. Желательно с использованием DrawText. Примеры можно найти в папке Delphi\Sources c помощью Ctrl+Shift+F. Далее попытайся добавить в прямоугольник четыре картинки. Это ты должен сделать сам, т.к. другие, т.е. мы не должны отдуваться за твой глупый спор. Когда это сделаешь, мы тебе подскажем, как поместить полученый код в компонент на основе TSpeedButton.
-
Почему Вы решили, что этот спор мой! Я спорить не хотел, просто человек так яростно напал на Delphi, что у меня не оставалось выбора, я должен был его защитить, или Вы предложили бы мне молчать?
Я не надеялся, что кто-то за меня напишет, просто думал, мало ли, вдруг такое уже есть, просто в Internet-е не выложено.
За совет и поддержку спасибо, буду пробовать!
-
> буду пробовать
Ну напишешь ты, предположим, этот компонент, самостоятельно или с помощью кого-то ..
Что дальше ? Как ты собрался "защищать честь", даже имеючи оной компонент ? В споре важны безапелляционные контраргументы, а не какой-то там компонент ..
-
Удалено модератором Примечание: флуд
-
> Как ты собрался "защищать честь", даже имеючи оной компонент > ? > В споре важны безапелляционные контраргументы, а не какой- > то там компонент ..
Победит тот, чья программа окажется удобней и функциональней. Эта кнопка будет нести конкретную информационную и функциональную нагрузку, цвет кнопки, например, будет отражать состояние, в котором находится контролируемый объект, программа достаточно серьезная, и она у меня почти готова, все упирается в этот компонент.
-
> она у меня почти готова, все упирается в этот компонент
Вряд ли ты сможешь выиграть этот спор)
-
> защитить честь программиста,
У каждого своя честь, вот свою сам и защищай, если ввязался.
-
Во лапшу на уши вешает.
-
на боевой патриотизм берет.
-
> [4] NavigatorNeba © (28.10.08 01:18) > Я спорить не хотел, просто человек так яростно напал на > Delphi, что у меня не оставалось выбора, я должен был его > защитить
:) Не волнуйся..... Делфи-бы за себя постоял), а вот ты зря туда залез, как говорится: попал под раздачу)
-
красивый развод
но по сабжу - идиотская совершенно кнопка, какой-то букет из колючей проволоки, пластилина и одуванчиков, подвязанных бантиками
> А он заладил свое зараза, Delphi маздай мол и все тут. Ну, > в общем, занозились мы неслабо на эту тему. И ладно бы > просто занозились, но весь этот спор происходил на глазах > третьей стороны, людей уважаемых, очень уважаемых, людей > старшего возраста. Они нас слушали, слушали
из двух спорящих по крайней мере один - дурак и уважаемые люди это прекрасно знают и, посмеиваясь, они предложили вам выяснить, кто же из вас дурнее, а не умнее ибо умный остановился бы на фразе
> выбирает себе язык программирования по себе, по стоящим > перед ним задачам, каждый язык имеет свою спецификацию, > по этому говорить, что один язык лучшее другого очень сложно > и неправильно
-
Отстаивать честь Delphi незачем. Чем больше людей считает, что Delphi мастдай, тем меньше предложений на рынке труда дельфистов. А спрос на дельфистов определяется не разговорами, а конкретными потребностями, которым Delphi вполне удовлетворяет. В результате чем больше людей считает, что Delphi мастдай, тем выше зарплата программистов, умеющих на Delphi профессионально работать. Для отстаивания своей чести, если обещал написать компонент сдуру, то попробуй сесть и написать. Напиши хотя бы существенную часть, то есть двустрочную кнопку с раздельным управлением фонтом. Этого будет достаточно для защиты твоей собственной чести. Если же ты не веришь в то, что ты с этим за несколько дней справишься, даже разбираясь с нуля в том, что касается написания компонентов, то, значит, ты сам не сильно веришь в то, что Delphi - хороший инструмент для подобной цели. А убеждать кого-то в чем-то, не очень веря в это, согласись, не очень честно. Так что попробуй написать сам. И если ты победишь, уверяю тебя, это будет стоить многого. Мой тебе совет - быстрее садись и пиши. Информации в сети достаточно для решения одной такой узкой задачи. Для начала напиши такой код: unit MyButton;
interface
type
TMyButton = class(TSpeedButton)
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('MyPallete', [TMyButton]);
end;
end. Затем найди в меню Delphi пункт Component|Install Component и встрой компонент в среду. Убедись, что это работает. Дальше разберись (можно посмотреть исходный код VCL), как это все работает. обрати внимание на этот метод: procedure Paint; override; Может быть придется наследовать не от SpeedButton, а от его предка. Если начнешь работать сам, может тебе здесь и помогут, если где-то упрешься в тупик. А так - вряд ли. Если же тебе уже столько известно, то лучше сесть и поскорее заняться делом, раз уж ввязался. И в следующий раз не ввязываться в такие споры.
-
И зачем тут нужен компонент ? Достаточно будет одного TBitBtn и одной небольшой функции с такими параметрами (ACaptionTop, ACaptionBottom: string; AFontTop, AFontBottom: TFont): TBitmap и рисовать просто картинку на кнопке...
-
Действительно тупо. Раскрой хоть что за язык был второй? Что здесь тайного? С шарп что-ли?
-
Да уж, опечален Я, недружественной реакцией моих «товарищей», к сожалению, не знаю возраста своих оппонентов, это бы многое объяснило.
Насчет развода, я не малолетка, а вполне взрослый дядя, да будет Вам так угодно, и придумывать всякую БАЙДУ, для того чтобы, что-то у кого-то попросить, не стану.
Обратился я за помощью к сообществу программистов в первый раз, думал, сильна здесь взаимовыручка. Лично Я на сайтах посвященных радио- и микро-электронике, не только помогаю советами но и делюсь своими разработками, ибо стараюсь сделать все, для того чтобы как можно больше людей занималось электроникой, в особенности, что касается подростков.
Я не рассчитывал на то, что кто-то за меня будет что-то писать, я рассчитывал на две вещи: во-первых я подумал, что вдруг у кого-то есть такой компонент просто он в Internet-е не выложен; и второе – я подумал, что, наверняка, у кого-нибудь, за все время существования Delphi, возникала подобная проблема, и я надеялся, что мне подскажут в каком направлении двигаться, может, опишут подводные камни, возникающие при написании компонентов.
Я жалею, о том, что помощи попросил. Ну, нет, что бы просто направить в нужном направлении, подсказать с чего начать, все начинают всякую БАТВУ писать, оскорблять. Не хотите помогать так и напишите, не тратьте не свое, не мое время, знаете, после 12-тичасового рабочего дня я открываю страницу сайта с надеждой получить какой-то дельный совет, а тут одна БАДЯГА. Получается, что Вы одни люди, а ВСЕ остальные маздаи.
У меня просьба к администратору «Удалите, пожалуйста, мою учетную запись и закройте данную тему», у меня нет времени с БЕЗГРАМОТНОСТЬЮ переписываться».
Рассказать более подробно о своей программе я не могу. Так как, если эти статьи увидит мой оппонент по спору, он сможет все представить так, будто программа полностью написана кем-то другим, а не мной, а программу я почти доделал, все упирается в этот компонент. Этот компонент идеально подходит для решения моей задачи. Пока в статьях отсутствуют ключевые моменты моей истории ее можно примерить на любого человека.
Мне все-таки хочется верить, что старшая часть программистов нашего прекрасного Виртуального мира все-таки обладает программерской Культурой.
Форумчанам Наильсу и Kaifу за подсказку спасибо, все-таки будет легче. DimaBr также спасибо, тоже вариант может так и придется сделать, если успевать не буду. {RASkov} и тебе спасибо, хоть ты и считаешь, что этот спор все зря, спасибо за так сказать моральную поддержку, обещание помочь. Альф и тебе спасибо, за вариант. Я серьезно, Вам благодарен за поддержку, и выше написанные строки издевкой не являются, я действительно по времени не успеваю, работа, бытовые проблемы и т.д. и т.п., но деваться некуда.
На фоне словесного недержания, падения программерской культуры, которое наблюдается на большей части форумах земной сети, любая помощь приоритет особый вес.
Всем пока, жаль, что мы друг друга не поняли.
-
NavigatorNeba © (29.10.08 14:55) [17] взрослый дядя
> БАЙДУ > БАТВУ > БАДЯГА > маздаи
:-)
-
> Рассказать более подробно о своей программе я не могу. Так > как, если эти статьи увидит мой оппонент по спору, он сможет > все представить так, будто программа полностью написана > кем-то другим, а не мной, а программу я почти доделал, все > упирается в этот компонент.
Отмазка старая как мир.
-
+
> у меня нет времени с БЕЗГРАМОТНОСТЬЮ переписываться
)
-
> NavigatorNeba © (29.10.08 14:55) [17]
Ты просто не знаешь наверное - раздел "Прочее" - называют "Потрепаловка". Здесь тебе не дадут советов, иди на королевство Delphi - там дадут что нибудь дельное по теме.
-
> иди на королевство Delphi
как ты его интеллигентно послал
-
А итог будет такой: принесет этот наш "достойный дядя" свой выстраданный шедевр на суд "оппонента", тот попялится на пеструю кнопульку с двумя подписями, поцокает языком и в конце-концов заявит, мол, все равно твоя делфя отстой, патамушта XXXX рульнее)
-
-
> Правильный$Вася (29.10.2008 11:16:13) [13]
Если они будут спорить, то окружающие могут и не различить.
-
> Григорьев Антон (29.10.2008 16:33:24) [24]
И результат тот же, никто на слабо не проникся. Попутно выяснилось, что преабула не соответствует, нет никакого спора.
-
ну возможно там и не дали ответа прямого, зато их беседу почитать приятно, в отличии от...
-
> antonn © (29.10.08 17:05) [27]
Только не вздумай автора к Ромкину посылать! :)
-
если он не попросит пример распознавания каптчи - все будет нормально :)
-
Бедный аффтор... Похоже на ситуацию типа такой:
Прибежит мужик в банк и скажет: "Блин, помогите защитить честь вашего банка! Я тока что спорил на улице с чуваком, он говорит ваш банк давно маздай! И говорит что мол, если ты так в этот банк веришь, где ж тогда твои деньги? Короче, мы с ним поспорили (он ваще какой-то неправильный финансист, не верит мне на слово) он требует показать деньги. Спасите же свою честь, дай мне скорее 100 тыщ баксов!"
-
И это я тут офтопил ?
> Здесь тебе не дадут советов, иди на королевство Delphi - > там дадут что нибудь дельное по теме.
В смысле усугубят в заблуждении ?
-
автор, а вы vbnet2000 с форума sql.ru? вас там ой как любят
-
Все усилия напрасны. Раз "тот фувак" говорит про веб - то все описанные пути про дельфи изначально провальны, т.к. его поделка будет (возможно) работать под разными браузерами (и будет кроссплатформенной даже может быть). На дельфи можно максимум эктив-икс налабать, но и он, на сколько я шарю, не поедет на платформах, отличных от винды.
Так что увы.
-
> KSergey © (30.10.08 13:15) [33]
А как делфи и поддержка разных браузеров связаны? Программа на делфи выполняется на стороне сервера и просто генерит html-текст.
-
> Григорьев Антон © (29.10.08 16:33) [24] > > Здесь тебе не дадут советов, иди на королевство Delphi > Да он давно уже там у нас
О! Он тама он Фленова упоминает :) Странно, здесь этого нет. Товарисч в теме особо трепетной любви обитателей? :)
-
> Kerk © (30.10.08 13:18) [34] > Программа на делфи выполняется на стороне сервера и просто генерит html-текст.
на той же джаве можно апплет написать, например. Более функционально все ж выйдет. Хотя формально может и можно сделать эту задачу на ХТМЛ - не знаю, не силен.
-
> на той же джаве можно апплет написать, например. Более функционально > все ж выйдет. > Хотя формально может и можно сделать эту задачу на ХТМЛ > - не знаю, не силен.
При чем тут аплет? Тебе говорят что на делфи будет писан CGI-модуль, которому пофиг кто будет принимать на данные на клиентской стороне. Говоря джававскими термином, речь о сервлете
-
> Говоря джававскими термином, речь о сервлете
Из правил форума: Запрещается: 8. Употребление ненормативной лексики в любом виде. Рекомендуется: 5. Во избежание межнациональных споров, все сообщения в форуме должны быть на русском языке...
:)))
-
Мне бы такие мемуары уметь писать )))
-
> Real © (31.10.08 00:20) [37] > При чем тут аплет? Тебе говорят что на делфи будет писан > CGI-модуль, которому пофиг кто будет принимать на данные > на клиентской стороне.
А зачем CGI-модулю кнопка нестандартного вида?
-
> Real © (31.10.08 00:20) [37] > При чем тут аплет? Тебе говорят что на делфи будет писан > CGI-модуль
Я это понял. Я просто не уверен, что на ХТМЛ можно всю указаную функциональность реализовать, однако не силен, не утверждаю.
|