С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
 Аватар для Samrisbe
1365 / 732 / 67
Регистрация: 28.01.2011
Сообщений: 2,069

Планировщик в деталях

15.12.2012, 18:01. Показов 1877. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем добро!
Тема с динамически создаваемыми Ляблами немного отклонилась от заданного вектора по моей вине, создал новую тему в которой искренне прошу проявить уважение к вашему слуге , резиденту CуberForuma, старине Samrisbe и помочь ему с решением простой задачи которая вот уже месяц нарушает его сон!

Собственно сама задача:
На фото 1 В компоненте ScrollBox1 создаю Ляблы вот таким способом:
C++
1
2
3
4
5
6
7
8
9
10
11
12
static int sec = 0; // переменная для определения номера Лябла
  static int top = 0; // переменная для определения высоты Лябла
 
    if (++sec == 1) {
      TLabel *lbl1 = new TLabel(this);
      lbl1->Parent = ScrollBox1;
      top = lbl1->Top;
      lbl1->Left = 5;
      lbl1->OnClick = lbl1Click ;
      lbl1->Caption = lbl1->Caption +  "Start " + (FormatDateTime("hh:mm:ss", DateTimePicker1->Time));
      lbl1->Caption = lbl1->Caption +   " Stop "  + (FormatDateTime("hh:mm:ss", DateTimePicker2->Time));
    }
Вот что меня беспокоит на сегодняшний день помимо политической нестабильности на ближнем востоке:

1 Сохранить данные о созданном Лябле в ИНИ и при следующем пуске программы создать его автоматически.
2 Создать событие в котором мы по клику мышки меняем шрифт в Лябле на подчеркнутый или наоборот.
3 Удаляем подчеркнутый Лябл кнопкой.
4 Сортируем Ляблы по нажатию кнопки по мере увеличения времени в них (Caption).
При этом мне надо будет брать данные с задания и чтото исполнять когда наступит совпадение реального времени со временем в Ляблах.
Миниатюры
Планировщик в деталях  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.12.2012, 18:01
Ответы с готовыми решениями:

TStringGrid в деталях
Нужно вернуть значение aCol, aRow при двойном клике по ячейке, для определённых действий, например это перезагрузка TStringGrid новыми...

Задача об окрашенных деталях.
Задача: В ящике имеется 15 деталей, среди которых 10 окрашенных. Сборщик наудачу извлекает три детали. Найти вероятность того, что только...

Advanced зaдача о бракованных деталях
Привет всем! Неделю сражаюсь с одной задачкой для дисера, никак не могу одолеть... Вобщем есть у Вентцеля типовая задачка о бракованных...

16
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
15.12.2012, 18:47
А чем собственно RichEdit не угодил ?

Или ListView ? Почему Label ?
1
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
15.12.2012, 19:23
Samrisbe, вы же знаете порядок - вы делаете, показываете код, здесь код смотрят и прикалываются.

Меня вот это на старте беспокоит:
C++
1
2
lbl1->Caption = lbl1->Caption +  "Start " + (FormatDateTime("hh:mm:ss", DateTimePicker1->Time));
lbl1->Caption = lbl1->Caption +   " Stop "  + (FormatDateTime("hh:mm:ss", DateTimePicker2->Time));
Так у нас постоянно в заголовок просится стоп, что, в общем-то понятно, но я бы как-нибудь подпортил ему такую самоуверенность, типа:
C++
1
2
3
4
5
6
7
8
9
bool davajdavay;
AnsiString status;
if (davajdavay) {
  status = "Start ";
}
else if (!davajdavay) {
  status = " Stop ";
} 
lbl1->Caption = lbl1->Caption +  status + (FormatDateTime("hh:mm:ss", DateTimePicker1->Time));
н-да... восток - дело тонкое...

Добавлено через 3 минуты
ой, вы ж это в одном лябле пишете, я так понял , тогда, пардон

Добавлено через 2 минуты
И для чего так много ляблов, пишите в один:
C++
1
Label->Caption = "Кто-то\nкого-то\nкогда-то\nза что-то..."
Добавлено через 17 минут
или так
C++
1
2
3
4
5
6
7
8
9
bool davajdavay;
AnsiString status;
if (davajdavay) {
  status = lbl1->Caption = lbl1->Caption+"Start "+(FormatDateTime("hh:mm:ss", DateTimePicker1->Time));
}
else if (!davajdavay) {
  status = lbl1->Caption = lbl1->Caption+" Stop "+(FormatDateTime("hh:mm:ss", DateTimePicker1->Time))+"\n";
} 
lbl1->Caption = status;
2
 Аватар для Samrisbe
1365 / 732 / 67
Регистрация: 28.01.2011
Сообщений: 2,069
15.12.2012, 19:33  [ТС]
Цитата Сообщение от Avazart Посмотреть сообщение
А чем собственно RichEdit не угодил ?
Я передумал и решил двигатса в направлении которое рекомендовал уважаемый Avazart.
создаю событие:
C++
1
2
RichEdit1->Text = RichEdit1->Text +  "Start " + (FormatDateTime("hh:mm:ss", DateTimePicker1->Time));
   RichEdit1->Text = RichEdit1->Text +   " Stop "  + (FormatDateTime("hh:mm:ss", DateTimePicker2->Time));
1 Сохранить данные о созданном событии в ИНИ и при следующем пуске программы отображать.
2 По клику мышки меняем шрифт в конкретной строке на подчеркнутый или наоборот.
3 Удаляем подчеркнутую строку кнопкой.
4 Сортируем строки по нажатию кнопки по мере увеличения времени в них.
При этом мне надо будет брать данные с задания и чтото исполнять когда наступит совпадение реального времени со временем в строках.
Как такое реализовать?
LK ссори...
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
15.12.2012, 19:45
Цитата Сообщение от Samrisbe Посмотреть сообщение
Я передумал и решил двигатса в направлении которое рекомендовал уважаемый Avazart.
создаю событие:
C++
1
2
RichEdit1->Text = RichEdit1->Text +  "Start " + (FormatDateTime("hh:mm:ss", DateTimePicker1->Time));
   RichEdit1->Text = RichEdit1->Text +   " Stop "  + (FormatDateTime("hh:mm:ss", DateTimePicker2->Time));
1 Сохранить данные о созданном событии в ИНИ и при следующем пуске программы отображать.
2 По клику мышки меняем шрифт в конкретной строке на подчеркнутый или наоборот.
3 Удаляем подчеркнутую строку кнопкой.
4 Сортируем строки по нажатию кнопки по мере увеличения времени в них.
При этом мне надо будет брать данные с задания и чтото исполнять когда наступит совпадение реального времени со временем в строках.
Как такое реализовать?
LK ссори...
Правильно передумал, но не
C++
1
RichEdit1->Text = RichEdit1->Text +   " Stop "  + (FormatDateTime("hh:mm:ss", DateTimePicker2->Time));
, а может что-нибудь типа
C++
1
2
RichEdit1->Strings[0]->Add(" Start "  + (FormatDateTime("hh:mm:ss", DateTimePicker2->Time));
RichEdit1->Strings[0] = RichEdit1->Strings[0]+" Stop "  + (FormatDateTime("hh:mm:ss", DateTimePicker2->Time));
1. У вас есть темка по ИНИ, вы сами ее неоднократно предлагали нуждающимся. Потерялась?
2. RichEdit1->Strings[х, SelectStart, SelectEnd
3. RichEdit1.Delete(RichEdit1->Strings[х])
4. Загоняете в стринглист и сортируете

Я бы вообще-то все эти махинации с добавлениями, удаления и пр. извращениями делал бы в стрингглисте, в рич эдит только отображал результат, т.е., следовал совету про мухи и котлеты, пардон, о коде и дизайне .
не-за-что, хотя я, собственно, не понял, об чем базар.
1
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
15.12.2012, 19:57

Не по теме:

Цитата Сообщение от Samrisbe Посмотреть сообщение
Вот что меня беспокоит на сегодняшний день помимо политической нестабильности на ближнем востоке:
:D сам придумал или подсказал кто?..


Мухи и котлеты - это совершенно верно. Создай класс задания, храни все в нем по конкретному заданию - обрабатывать будешь уже удобный набор классов, а не искать что-то где-то в тексте richedit. В richedit только обновляй информацию.
1
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
15.12.2012, 19:59
Об Ини...
Я бы сохранил строки из ричэдита в обычный текстовый файл, для сохранения также форматирования предусмотрел маркер, типа
C++
1
2
3
if (RichEdit->Strings[x]).Style=fsBold)
  RichEdit->Strings[x] = "[b]"+RichEdit->Strings[x];
}
Схема, естественно... При обратной загрузке смотрел маркер, наводил красоту, маркер отрезал. Как-то так...
1
 Аватар для Samrisbe
1365 / 732 / 67
Регистрация: 28.01.2011
Сообщений: 2,069
15.12.2012, 20:04  [ТС]
Цитата Сообщение от LK Посмотреть сообщение
RichEdit1->Strings
C++
1
[C++ Error] Unit1.cpp(3513): E2316 'Strings' is not a member of 'TRichEdit'
Что не так...
И не спрашивай почему проект пишу в 6 Buildere!

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

Добавлено через 3 минуты
Цитата Сообщение от BRcr Посмотреть сообщение
сам придумал или подсказал кто
LK подсказал
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
15.12.2012, 20:05
не хочешь - как хочешь ...
0
 Аватар для Samrisbe
1365 / 732 / 67
Регистрация: 28.01.2011
Сообщений: 2,069
15.12.2012, 20:10  [ТС]
Цитата Сообщение от LK Посмотреть сообщение
не хочешь - как хочешь ...
Сансей я не хотел задеть или проявить неуважение к тебе и остальным учасникам форума, я просто попросил немного помочь у тех кто может себе позволить потратить немного времени на безвозмездную помощь.
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
15.12.2012, 20:23
то была задолбанная шутка ( (С) BRcr )
1
 Аватар для Samrisbe
1365 / 732 / 67
Регистрация: 28.01.2011
Сообщений: 2,069
15.12.2012, 20:28  [ТС]
Добавлено через 1 минуту
Цитата Сообщение от LK Посмотреть сообщение
то была задолбанная шутка ( (С) BRcr )
В его возрасте можно шутить шаблонно... Хоть он образованный и востребованный в обществе человек!
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
15.12.2012, 20:34

Не по теме:

Шаблонно шутить не рекомендуется в любом возрасте. Просто конкретно эту шутку юмора я вижу впервые.:pardon:


Цитата Сообщение от Samrisbe Посмотреть сообщение
Как в Memo делать одну из строк подчеркнутой?
В мемо никак. Делай в richedit.
1
 Аватар для Samrisbe
1365 / 732 / 67
Регистрация: 28.01.2011
Сообщений: 2,069
15.12.2012, 20:40  [ТС]
Как выделить строку в RichEdit1 по которой кликнул?

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

Добавлено через 6 минут
Ато я уже Архангельского достал с книжной полки
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
15.12.2012, 21:00
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
TPoint p;
p.X;
p.Y;
int i,j;
GetCursorPos(&p);
//Получаем экранные координаты указателя мыши
p= ScreenToClient(p);
//Переводим их в координаты ричэдита
i = SendMessage(RichEdit1->Handle, EM_CHARFROMPOS, 0, (LPARAM) &p);
// красим 
RichEdit1->SelStart = SendMessage(RichEdit1->Handle, EM_LINEINDEX, i - 1, 0);
RichEdit1->SelLength = (RichEdit1->Lines->Strings[i-1].Length());
RichEdit1->SelAttributes->Color = clRed;
может, чего и напутал... ну, вы в курсе - схема, не для копипейста...

Добавлено через 7 минут
C++
1
2
3
int linear_pos = (int)::SendMessage(richedit->Handle,EM_CHARFROMPOS,0,(LPARAM)&pt);
int y_pos = ::SendMessage(richedit->Handle,EM_LINEFROMCHAR,(WPARAM)linear_pos,0);
int x_pos = linear_pos-(int)::SendMessage(richedit->Handle,EM_LINEINDEX,y_pos,0);
1
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
15.12.2012, 21:06
C++
1
RichEdit1->Lines->Strings[index] = "some line";
1
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
15.12.2012, 21:20
Цитата Сообщение от Samrisbe Посмотреть сообщение
Как выделить строку в RichEdit1 по которой кликнул?
Цитата Сообщение от Avazart Посмотреть сообщение
RichEdit1->Lines->Strings[index] = "some line";
Так просто?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.12.2012, 21:20
Помогаю со студенческими работами здесь

Скрыть <iostream> в деталях реализации
Здравствуйте, необходимо переместить #include &lt;iostream&gt; из .h в .cpp, и при этом использовать std::cout в определении шаблонной...

О деталях и возможностях реализации <vector>
Эта тема выделена из темы: https://www.cyberforum.ru/cpp-beginners/thread1703270.html Ну это уже в зависимости от зависимости....

Описать массив, содержащий информацию о деталях
Описать массив записей, содержащий информацию о нескольких деталях: наименование, материал, габарит(длина, ширина, высота), масса....

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

Вывести информацию о деталях в табличном виде


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru