Конференция "Прочее" » Компонент BitBtn с двумя Caption.
 
  • NavigatorNeba © (27.10.08 00:38) [0]
    Помогите защитить честь Delphi. Нужен компонент класса BitBtn с двумя Caption и чтобы у каждого был свой Font. Располагаться Caption-сы должны так: если разделить кнопку пополам по горизонтали то каждый Caption должен находится в средине своей половины, как по горизонтали, так и вертикали (тоже расположение, что и у Caption стандартного компонента). При длине текста, в Caption, больше чем ширина кнопки, текст должен переносится на вторую строку этого Caption, при этом весь текст должен центрироваться как и прежде. Нужна возможность программно, в динамике, влиять на размер, цвет, стиль Caption-ов. Необходима возможность выбора цвета кнопки, необходимо чтобы это был параметр, ну что-то типа ColorBut, в Инспекторе объектов на закладке Properties, который можно изменять как на этапе проектирования, так и во время работы программы, динамически то есть. Еще нужно свойство, в Инспекторе объектов, при установке  которого при одном щелчке кнопка бы включала (нажималась), а при повторном нажатии бы возвращалась в исходное состояние, имелась бы возможность отследить текущее состояние кнопки. Данная кнопка должна поддерживать режим множественно выбора, когда помимо ее нажато еще несколько таких кнопок, при этом необходима возможность считывания состояния этих кнопок, было бы здорово считывать, в какой очередности они нажаты.
    Также, необходима возможность динамически, во время выполнения программы, менять картинку кнопки.

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

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

    А дело заключается в следующем: встретил я тут одного прогера пишущего на ХХХХ (имя языка не указываю, дабы не дискредитировать нормальных прогеров пишущих на этом языке). Мы с ним разговорились о своем, о прогерском. Чувак оказался каким-то неправильным прогером, давай мне доказывать, что, мол, Delphi - это вчерашний день, что, мол, генерит он слишком тяжелый код, будущее, мол, за Веб технологиями, а Delphi вообще не актуальна. Я ему типа говорю, что, мол, каждый прогер выбирает себе язык программирования по себе, по стоящим перед ним задачам, каждый язык имеет свою спецификацию, по этому говорить, что один язык лучшее другого очень сложно и неправильно. А он заладил свое зараза, Delphi маздай мол и все тут. Ну, в общем, занозились мы неслабо на эту тему. И ладно бы просто занозились, но весь этот спор происходил на глазах третьей стороны, людей уважаемых, очень уважаемых, людей старшего возраста. Они нас слушали, слушали, а потом взяли да предложили, для того чтобы выяснить, чей язык программирования лучше, а кто из нас двоих трепло, написать программку на указанную ими тему.
    Я прошу помочь мне, у меня осталось мало времени, я ранее никогда не писал компоненты и если я сейчас начну изучать эту тему, я все отведенное время потрачу только на создание вышеописанного компонента. Мне этот компонент нужен для того, чтобы все было в моей программе красиво, можно конечно что-то из стандартных компонентов наляпать, но получится не очень, а мне «не очень» нельзя.
    Прошу, помогите защитить честь программиста, и честь, прекрасного языка программирования, Delphi.
  • {RASkov} © (27.10.08 01:33) [1]
    В следующий раз: Думать нужно прежде чем спорить....
    А теперь... Начинай делать, мы поможем, а делать за тебя врядли кто будет...
  • DimaBr © (27.10.08 08:38) [2]
    TPanel + 2 TSpeedButton.

    Вообще
    Здесь обсуждаются вопросы, связанные с разработкой компонентов. Поэтому если не будет вопросов по теме - закрою.
  • Наиль © (27.10.08 18:24) [3]

    > TPanel + 2 TSpeedButton

    Мне такое решение не кажется оптимальным, т.к.
    > Данная кнопка должна поддерживать режим множественно выбора,
    > когда помимо ее нажато еще
    несколько таких кнопок

    Следовательно компонент должен наследоваться от (и состоять из) TSpeedButton.
    NavigatorNeba, попробуй написать программу которая выводит две произвольных строки в пределах заданого прямоугольника на TImage. Желательно с использованием DrawText. Примеры можно найти в папке Delphi\Sources c помощью Ctrl+Shift+F.
    Далее попытайся добавить в прямоугольник четыре картинки.
    Это ты должен сделать сам, т.к. другие, т.е. мы не должны отдуваться за твой глупый спор.
    Когда это сделаешь, мы тебе подскажем, как поместить полученый код в компонент на основе TSpeedButton.
  • NavigatorNeba © (28.10.08 01:18) [4]
    Почему Вы решили, что этот спор мой! Я спорить не хотел, просто человек так яростно напал на Delphi, что у меня не оставалось выбора, я должен был его защитить, или Вы предложили бы мне молчать?

    Я не надеялся, что кто-то за меня напишет, просто думал, мало ли, вдруг такое уже есть, просто в Internet-е не выложено.

    За совет и поддержку спасибо, буду пробовать!
  • Сергей М. © (28.10.08 12:08) [5]

    > буду пробовать


    Ну напишешь ты, предположим, этот компонент, самостоятельно или с помощью кого-то ..

    Что дальше ?
    Как ты собрался "защищать честь", даже имеючи оной компонент ?
    В споре важны безапелляционные контраргументы, а не какой-то там компонент ..
  • tesseract © (28.10.08 16:40) [6]
    Удалено модератором
    Примечание: флуд
  • NavigatorNeba © (29.10.08 00:06) [7]

    > Как ты собрался "защищать честь", даже имеючи оной компонент
    > ?
    > В споре важны безапелляционные контраргументы, а не какой-
    > то там компонент ..


    Победит тот, чья программа окажется удобней и функциональней. Эта кнопка будет нести конкретную информационную и функциональную нагрузку, цвет кнопки, например, будет отражать состояние, в котором находится контролируемый объект, программа достаточно серьезная, и она у меня почти готова, все упирается в этот компонент.
  • Сергей М. © (29.10.08 08:42) [8]

    > она у меня почти готова, все упирается в этот компонент


    Вряд ли ты сможешь выиграть этот спор)
  • Jeer © (29.10.08 09:48) [9]

    > защитить честь программиста,


    У каждого своя честь, вот свою сам и защищай, если ввязался.
  • Anatoly Podgoretsky © (29.10.08 10:03) [10]
    Во лапшу на уши вешает.
  • brother © (29.10.08 11:04) [11]
    на боевой патриотизм берет.
  • {RASkov} © (29.10.08 11:08) [12]
    > [4] NavigatorNeba ©   (28.10.08 01:18)
    > Я спорить не хотел, просто человек так яростно напал на
    > Delphi
    , что у меня не оставалось выбора, я должен был его
    > защитить

    :)
    Не волнуйся..... Делфи-бы за себя постоял), а вот ты зря туда залез, как говорится: попал под раздачу)
  • Правильный$Вася (29.10.08 11:16) [13]
    красивый развод

    но по сабжу - идиотская совершенно кнопка, какой-то букет из колючей проволоки, пластилина и одуванчиков, подвязанных бантиками


    > А он заладил свое зараза, Delphi маздай мол и все тут. Ну,
    >  в общем, занозились мы неслабо на эту тему. И ладно бы
    > просто занозились, но весь этот спор происходил на глазах
    > третьей стороны, людей уважаемых, очень уважаемых, людей
    > старшего возраста. Они нас слушали, слушали

    из двух спорящих по крайней мере один - дурак
    и уважаемые люди это прекрасно знают
    и, посмеиваясь, они предложили вам выяснить, кто же из вас дурнее, а не умнее
    ибо умный остановился бы на фразе

    > выбирает себе язык программирования по себе, по стоящим
    > перед ним задачам, каждый язык имеет свою спецификацию,
    > по этому говорить, что один язык лучшее другого очень сложно
    > и неправильно
  • kaif © (29.10.08 13:37) [14]
    Отстаивать честь 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, а от его предка.
    Если начнешь работать сам, может тебе здесь и помогут, если где-то упрешься в тупик. А так - вряд ли.

    Если же тебе уже столько известно, то лучше сесть и поскорее заняться делом, раз уж ввязался. И в следующий раз не ввязываться в такие споры.
  • Альф (29.10.08 14:34) [15]
    И зачем тут нужен компонент ?
    Достаточно будет одного TBitBtn и одной небольшой функции с такими параметрами
    (ACaptionTop, ACaptionBottom: string; AFontTop, AFontBottom: TFont): TBitmap


    и рисовать просто картинку на кнопке...
  • Кто б сомневался © (29.10.08 14:42) [16]
    Действительно тупо.
    Раскрой хоть что за язык был второй? Что здесь тайного? С шарп что-ли?
  • NavigatorNeba © (29.10.08 14:55) [17]
    Да уж, опечален Я, недружественной реакцией моих «товарищей», к сожалению, не знаю возраста своих оппонентов, это бы многое объяснило.

    Насчет развода, я не малолетка, а вполне взрослый дядя, да будет Вам так угодно, и придумывать всякую БАЙДУ, для того чтобы, что-то у кого-то попросить, не стану.

    Обратился я за помощью к сообществу программистов в первый раз, думал, сильна здесь взаимовыручка. Лично Я на сайтах посвященных радио- и микро-электронике, не только помогаю советами но и делюсь своими разработками, ибо стараюсь сделать все, для того чтобы как можно больше людей занималось электроникой, в особенности, что касается подростков.

    Я не рассчитывал на то, что кто-то за меня будет что-то писать, я рассчитывал на две вещи: во-первых я подумал, что вдруг у кого-то есть такой компонент просто он в Internet-е не выложен; и второе – я подумал, что, наверняка, у кого-нибудь, за все время существования Delphi, возникала подобная проблема, и я надеялся, что мне подскажут в каком направлении двигаться, может, опишут подводные камни, возникающие при написании компонентов.

    Я жалею, о том, что помощи попросил. Ну, нет, что бы просто направить в нужном направлении, подсказать с чего начать, все начинают всякую БАТВУ писать, оскорблять. Не хотите помогать так и напишите, не тратьте не свое, не мое время, знаете, после 12-тичасового рабочего дня я открываю страницу сайта с надеждой получить какой-то дельный совет, а тут одна БАДЯГА. Получается, что Вы одни люди, а ВСЕ остальные маздаи.

    У меня просьба к администратору «Удалите, пожалуйста, мою учетную запись и закройте данную тему», у меня нет времени с БЕЗГРАМОТНОСТЬЮ переписываться».

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

    Мне все-таки хочется верить, что старшая часть программистов нашего прекрасного Виртуального мира все-таки обладает программерской Культурой.

    Форумчанам Наильсу и Kaifу за подсказку спасибо, все-таки будет легче.
    DimaBr также спасибо, тоже вариант может так и придется сделать, если успевать не буду.
    {RASkov} и тебе спасибо, хоть ты и считаешь, что этот спор все зря, спасибо за так сказать моральную поддержку, обещание помочь. Альф и тебе спасибо, за вариант. Я серьезно, Вам благодарен за поддержку, и выше написанные строки издевкой не являются, я действительно по времени не успеваю, работа, бытовые проблемы и т.д. и т.п., но деваться некуда.


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

    Всем пока, жаль, что мы друг друга не поняли.
  • Virgo_Style © (29.10.08 15:27) [18]
    NavigatorNeba ©   (29.10.08 14:55) [17]
    взрослый дядя



    > БАЙДУ
    > БАТВУ
    > БАДЯГА
    > маздаи


    :-)
  • Германн © (29.10.08 15:42) [19]

    > Рассказать более подробно о своей программе я не могу. Так
    > как, если эти статьи увидит мой оппонент по спору, он сможет
    > все представить так, будто программа полностью написана
    > кем-то другим, а не мной, а программу я почти доделал, все
    > упирается в этот компонент.


    Отмазка старая как мир.
 
Конференция "Прочее" » Компонент BitBtn с двумя Caption.
Есть новые Нет новых   [134445   +28][b:0][p:0.001]