Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 15.08.2013
Сообщений: 31

Как сделать цветной конус из полей Edit

08.04.2014, 23:54. Показов 2743. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть 100 полей Edit в виде блоков выстроенных рядами по 10. Можно ли использовать какой-нибудь цикл для того чтобы при задании любому полю значения большего 0, поля над ним (и оно само) становились какого-нибудь цвета снизу вверх под углом 45 градусов (как конус). Очень нужно, помогите пожалуйста.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.04.2014, 23:54
Ответы с готовыми решениями:

Как сделать несколько полей edit одного цвета
Есть 10 полей edit (или кубов из GLScene), как можно свойство ->Color применить сразу ко всем (Edit1,...,Edit10) или только к некоторым...

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

Как сделать цветной фон?
как указывать расположение строк в две колонки

25
0 / 0 / 0
Регистрация: 15.08.2013
Сообщений: 31
25.05.2014, 13:26  [ТС]
Студворк — интернет-сервис помощи студентам
Большое спасибо. Буду работать дальше.
0
0 / 0 / 0
Регистрация: 15.08.2013
Сообщений: 31
16.06.2014, 17:53  [ТС]
Дайте, пожалуйста, несколько комментариев к этому участку кода:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int _i, _k;
    int b = StrToInt(LabeledEdit5->Text); // Бортовое содержание
 
    for ( size_t i( 0 ), i_limit( 100 ); i < i_limit; ++i )
    {
        if ( edit == edits[ i ] )
        {
            _i = i / 10;
            _k = i % 10;
        }
    }
 
    for ( int i( _i ), inc( 0 ), i_limit( 0 ); i >= i_limit; --i, ++inc )
    {
        for (
            int k( _k > inc ? ( _k - inc ) : ( 0 ) ),
            k_limit( ( _k + inc ) < 10 ? ( _k + inc ) : ( 9 ) );
            k <= k_limit; ++k )
        {   if ((StrToInt(edit->Text)) > b){
            ( * ( edits + i * 10 + k ) )->Color = clYellow;
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
16.06.2014, 23:42
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    for ( size_t i( 0 ), i_limit( 100 ); i < i_limit; ++i ) // проходим по одномерному массиву
    {
        if ( edit == edits[ i ] )   // находим в нем изменяемый в данный момент эдит
        {                           // и получаем его координаты, как если бы это был двумерный массив
            _i = i / 10; // номер строки; при делении целочисленных переменных остаток отсекается в меньшую сторону
            _k = i % 10; // номер столбца; здесь мы получаем отдельно уже только остаток от деления на 10
        }
    }
 
    for ( int i( _i ), inc( 0 ), i_limit( 0 ); i >= i_limit; --i, ++inc ) // проходим уже по двумерному массиву, начиная с текущей строки, вверх, по всем предыдущим строкам - то бишь конус вверх основанием
    {
        for ( // в каждой строке, начиная с текущей, берем в обработку на два элемента больше, чем в предыдущей - один слева, другой справа, как бы увеличивая амплитуду
            int k( _k > inc ? ( _k - inc ) : ( 0 ) ), // inc - та самая амплитуда; здесь для текущей строки номер начального столбца устанавливается либо со смещением влево на inc от изначального значения _k, либо в ноль - то бишь начальным столбцом будет первый столбец
            k_limit( ( _k + inc ) < 10 ? ( _k + inc ) : ( 9 ) ); // здесь аналогично, только со смещением вправо по понятным причинам, устанавливается номер конечного столбца
            k <= k_limit; ++k ) // и проходим в текущей строке от начального столбца до конечного, изменяя попавшиеся элементы(цвет меняя)
        {   if ((StrToInt(edit->Text)) > b){ // это не мое))
            ( * ( edits + i * 10 + k ) )->Color = clYellow; // получаем доступ к эдиту в строке i и столбце k
1
0 / 0 / 0
Регистрация: 15.08.2013
Сообщений: 31
17.06.2014, 16:13  [ТС]
Большое спасибо. Очень доходчиво.
Кликните здесь для просмотра всего текста
Мир становится более понятным


Добавлено через 35 минут
И можно ещё это закомментировать чтобы я спал совсем некрепко)
C++
1
2
3
4
5
6
7
8
9
10
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
 
   for( int i( 90 ), _i( 0 ); i >= 0; i -= 10 )
  {
      for( int k( 1 ); k <= 10; ++k, ++_i )
      {
          edits[ _i ] = (TEdit*)FindComponent( "Edit" + IntToStr( i + k ) );
                  edits[ _i ]->OnChange = &edits_onchange;
А это всё называется указатели или я не прав:
C++
1
2
3
4
private:    // User declarations
TEdit * edits[ 100 ];
----------
TEdit * edit( static_cast < TEdit * > ( Sender ) );
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
17.06.2014, 16:42
Цитата Сообщение от 1mat Посмотреть сообщение
за прокомментировать
C++
1
2
3
4
5
6
7
8
9
10
11
12
__fastcall TForm1::TForm1(TComponent* Owner) // В конструкторе формы
    : TForm(Owner)
{
 
   for( int i( 90 ), _i( 0 ); i >= 0; i -= 10 ) // Перебор i начиная с 90 и пока i больше или равно 0, с шагом 10
  {
      for( int k( 1 ); k <= 10; ++k, ++_i ) // Перебор k от 1 до десяти с шагом 1. И одновременно с увеличением k увеличивать _i
      {
          edits[ _i ] = //                                                                                           ...и присвоить вот этому элементу массива Edit-ов
          (TEdit*) //                                                                       ...привести его к типу TEdit...
          FindComponent( "Edit" + IntToStr( i + k ) ); // Найти компонент с именем Edit и какой-то номер...
                  edits[ _i ]->OnChange = &edits_onchange; // Заменить функцию-обработчик изменения Edit-а на edits_onchange


C++
1
2
3
4
private:    // User declarations
TEdit * edits[ 100 ]; // Массив указателей на Edit-ы. То есть каждый элемент массива может являться каким-то полем ввода
----------
TEdit * edit( static_cast < TEdit * > ( Sender ) ); // Указатель на Edit, который сразу при создании инициируется текущим вызывающем чем-либо, приведенным к типу TEdit
1
0 / 0 / 0
Регистрация: 15.08.2013
Сообщений: 31
17.06.2014, 21:39  [ТС]
Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.06.2014, 21:39

Как сделать цветной градиент?
uses GraphABC; var a: boolean; begin SetBrushColor(clBlue); SetGradientBrushSecondColor(clRed); SetPenMode(2); ...

Как в недоступной кнопке сделать картинку цветной?
Здравствуйте! У меня есть кнопка JButton. С помощью метода setIcon() я в ней устанавливаю изображение. Когда методом setEnabled() делаю...

Запись в файл из полей Edit и проверка Edit на пустоту
TForm1 *Form1; int Ext=0; int i; //--------------------------------------------------------------------------- __fastcall...

Как сделать картинку цветной при клике на нее?
Здравствуйте товарищи. Есть четыре изображения которые при наведении становятся цветными, но как сделать так чтобы при клике на картинку...

Как в P-CAD сделать цветной чертеж черно-белым?
Привет всем, у меня чертеж в P-CAD цветной как мне сделать чтобы он сталь полностью черно-белым? Помогите пожалуйста.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
Новые блоги и статьи
Вступаем в новую фазу по генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки. Добавлены следующие реквизиты типа Булево: - Буквы; - Цифры; - Символы. Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей. Самым главным критерием для. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru