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

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

15.12.2012, 18:01. Показов 1913. Ответов 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
8489 / 6156 / 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
8489 / 6156 / 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
Ответ Создать тему
Новые блоги и статьи
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru