Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.03.2013, 14:06   #21
FataLL
Форумчанин
 
Аватар для FataLL
 
Регистрация: 29.01.2013
Сообщений: 319
По умолчанию

Vzlom
Покажи лучше свой исходник мне, чудо. Который с "оно вызывает фатальную ошибку". Я уже достаточно привёл примеров, которые можно просто скопировать и вставить в проект.
FataLL вне форума Ответить с цитированием
Старый 12.03.2013, 18:13   #22
lexflax
Пользователь
 
Регистрация: 12.04.2011
Сообщений: 74
По умолчанию

условие заработало так как надо))) просто прописал его в нужном месте)))
о чем спор у вас я подконец диалогов стал уже плохо понимать)))
по началу понял что взлом говорит " нельзя переменные с типом TDateTime друг от друга вычитать, потом мне уже стало казаться что я вообще не понимаю что вы хотите доказать)" сторону Fattal понял что все вычитается тое самое что если бы из двух переменных типа int a int b хотели отнять a-b и все бы работало... ну суть не в этом)
Fattal вы мне очень помогли на самом деле... у меня в программе по заданию препода осталось не выполненно последнее условие...
Надо чтоб те товары у которых срок годности стал меньше чем 30 дней подсвечивались цветом красным или зеленым это уже не важно.
У меня компонент Combobox в котором отображаются записи о товарах.

проверятся условие я так понял будет именно в момент запуска программы.
так как при запуске для того чтоб высчитать количество дней оставшееся товару надо будет из даты окончания срока годности вычитать текущую дату.
вот код который у меня из файла загружает информацию в combobox.
Код:
void __fastcall TForm1::FormCreate(TObject *Sender) // функция загрузки файла во время запуска
{
		MkDir("List");//
		if ((access("List\\db.txt",0)) == 0) //
		{
				db->Lines->LoadFromFile("List\\db.txt");// загрузка в db из файла db.txt
				Rec->Caption = db->Lines->Count/4; //  определение количества записей
				for (int i=0,j=0; j < db->Lines->Count;i++,j+=4)// цикл по строкам
				{       int k=0;
						m[i].fio = db->Lines->Strings[j]; //запись в элемент структуры из db
						m[i].date = db->Lines->Strings[j+1]; //дата изготовления
						m[i].dateok=db->Lines->Strings[j+2]; //дата окончания срока годности



						for (k = 0; FAM[m[i].HECH][k].Length()!=0; k++)

						FAM[m[i].HECH][k]=db->Lines->Strings[j+3];
						 // запись в индекс массива строк фам+дата+время из db
						ComboBox1->Items->Add(m[i].fio);
						 // вывод фамилии в список
						ComboBox1->Items->Add("Дата изготовления: " + m[i].date);
						ComboBox1->Items->Add("Дата окончания срока годности: " + m[i].dateok);// вывод даты в список
						// вывод в список времени
						ComboBox1->Items->Add("=================================");
				}
		}
}


_________________
По правилам форума код должен оформлять с помощью тегов!
Используйте форматирование с помощью тегов [CODE] .. [ /CODE]
(кнопочка на панели форматирования # )

Модератор


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

Последний раз редактировалось Stilet; 24.03.2013 в 13:33.
lexflax вне форума Ответить с цитированием
Старый 12.03.2013, 22:05   #23
FataLL
Форумчанин
 
Аватар для FataLL
 
Регистрация: 29.01.2013
Сообщений: 319
По умолчанию

Цитата:
Сообщение от lexflax Посмотреть сообщение
о чем спор у вас я подконец диалогов стал уже плохо понимать)))
Если честно, я сам так и не понял, что он пытался доказать? Надеюсь, он осознал свои заблуждения...

Цитата:
Сообщение от lexflax Посмотреть сообщение
подскажите как можно цветом выделить тот блок у которого у меня будет срок годности меньше 30 дней.
Под блоком я имею ввиду одну запись состоящую из названия товара, даты изготовления и даты окончания срока годности.
У ComboBox'а есть событие OnDrawItem, которое генерится, если ComboBox1->Style установлен в csOwnerDrawFixed, например. Ты получаешь индекс строки, которую надо нарисовать и Rect, где её надо нарисовать. Осталось определить, каким цветом рисовать эту строку... В этом некоторая сложность. Попробуй разобраться
Код:
void __fastcall TForm1::ComboBox1DrawItem(TWinControl *Control, int Index,
      TRect &Rect, TOwnerDrawState State)
{
    int nRecIndex = Index / 4; // кратный 4-м у тебя
    if( m[ nRecIndex ].dateok < Now().DateString() )
    {
        ComboBox1->Canvas->Font->Color = clRed;
    }
    else
    {
        ComboBox1->Canvas->Font->Color = clBtnText;
    }
    ComboBox1->Canvas->FillRect( Rect );
    ComboBox1->Canvas->TextOut( Rect.Left, Rect.Top, ComboBox1->Items->Strings[ Index ] );
}
FataLL вне форума Ответить с цитированием
Старый 15.03.2013, 16:15   #24
lexflax
Пользователь
 
Регистрация: 12.04.2011
Сообщений: 74
По умолчанию

как то у меня не особо получается...
создал такое событие выбрав свойство в комбобоксе.
вставил туда ваш код.
Код:
void __fastcall TForm1::ComboBox1DrawItem(TWinControl *Control, int Index,
      TRect &Rect, TOwnerDrawState State)
{
    int nRecIndex = Index / 4; // кратный 4-м у тебя
    if( m[ nRecIndex ].dateok < Now().DateString() )
    {
        ComboBox1->Canvas->Font->Color = clRed;
    }
    else
    {
        ComboBox1->Canvas->Font->Color = clBtnText;
    }
    ComboBox1->Canvas->FillRect( Rect );
    ComboBox1->Canvas->TextOut( Rect.Left, Rect.Top, ComboBox1->Items->Strings[ Index ] );
}
вводил согласна условию дату окончания срока годности меньше текущей, да вообще разные пробывал даты вводить ничего, нигде не закрашивалось(( пробовал меня код циклами разными тоже без успешно...
мне бы хоть какую то свою строчку закрасить для примера может тогда пойму дальше....
lexflax вне форума Ответить с цитированием
Старый 16.03.2013, 15:25   #25
FataLL
Форумчанин
 
Аватар для FataLL
 
Регистрация: 29.01.2013
Сообщений: 319
По умолчанию

Стиль ComboBox поставил в csOwnerDrawFixed?
FataLL вне форума Ответить с цитированием
Старый 16.03.2013, 16:27   #26
lexflax
Пользователь
 
Регистрация: 12.04.2011
Сообщений: 74
По умолчанию

поставил теперь закрашивает))) но почему то происходят сбои)))
первый сбой заключается в том, что если текущая дата больше конечной даты то он закрашивает в красный цвет. Ну так и должно быть.
Но если после него добавить элемент в котором текущая дата меньше конечной то он все равно закрашивает красным, хотя не должен, этот сбой получается из за того что верхний а точнее первый елемент выполняет условие такое... а второй сбой заключается в том что когда запускаю программу после того как добавил элемент он косячно выгружает теперь данные из текстового файла все в перемешку так и вместо одной записи фиксирует как будто 4 запипи... я исходник прикрепил посмотрите...
Вложения
Тип файла: rar человека машинное взаимодействие.rar (18.6 Кб, 8 просмотров)
lexflax вне форума Ответить с цитированием
Старый 16.03.2013, 18:31   #27
FataLL
Форумчанин
 
Аватар для FataLL
 
Регистрация: 29.01.2013
Сообщений: 319
По умолчанию

Ты с завидным постоянством прикрепляешь не весь проект. Нужные файлы у тебя находятся там "C:\учеба\code\список с хеш функцией\Lex\Debug_Build\Unit133.cp p" и "C:\учеба\code\список с хеш функцией\Lex\Debug_Build\Unit133.df m".
FataLL вне форума Ответить с цитированием
Старый 16.03.2013, 18:51   #28
lexflax
Пользователь
 
Регистрация: 12.04.2011
Сообщений: 74
По умолчанию

вот еще прикрепил но у них раширения другие не такие как вы указали, там в папке 4 файла два маленьких а два других один весит 16 мегов другой 3 мегабайта
Вложения
Тип файла: rar Debug_Build.rar (28.6 Кб, 9 просмотров)
lexflax вне форума Ответить с цитированием
Старый 16.03.2013, 22:16   #29
FataLL
Форумчанин
 
Аватар для FataLL
 
Регистрация: 29.01.2013
Сообщений: 319
По умолчанию

Слушай, мне нужны файлы исходного кода. Unit133.cpp и Unit133.dfm. Где они у тебя, я не знаю. Или ты плохо ищешь.
FataLL вне форума Ответить с цитированием
Старый 17.03.2013, 10:34   #30
lexflax
Пользователь
 
Регистрация: 12.04.2011
Сообщений: 74
По умолчанию

вроде теперь получилось посмотрите.
те файлы или не те.
Вложения
Тип файла: rar Desktop.rar (3.4 Кб, 8 просмотров)
lexflax вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Учет срока годности товара Slavatron1984 Microsoft Office Excel 7 01.04.2014 15:38
прописать дополнительное условие (if, then,else) delphi tarasov_88 Помощь студентам 5 11.09.2012 20:33
Как прописать условие? bwitcher Помощь студентам 7 18.12.2010 01:02
Вычисление срока Neymexa Microsoft Office Excel 6 15.02.2010 21:50
Запретить изменения Книги после истечения месячного срока komar73 Microsoft Office Excel 0 31.03.2009 11:01