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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.11.2008, 15:24   #1
Барби
Форумчанин
 
Аватар для Барби
 
Регистрация: 19.12.2007
Сообщений: 159
Стрелка проблемы с chart, при внесении изменения данных график не хочет рисоваться

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

кусочки кода, если нужен весь, скажите сделаю вложение

procedure TfrmMain.showQueuesStatistic;
begin
// приоритетная очередь
lblPLen.Caption := IntToStr(PriorQueue.len);
lblPMaxlen.Caption := IntToStr(PriorQueue.maxlen);
lblPMinlen.Caption := IntToStr(PriorQueue.minlen);
if (PriorQueue.lennum=0) then
lblPMidlen.Caption := '0'
else
lblPMidlen.Caption := FloatToStrF(PriorQueue.sumlen/PriorQueue.lennum,
ffGeneral, 3, 10);
lblPCount.Caption := IntToStr(PriorQueue.count);

// обычная очередь
lblNLen.Caption := IntToStr(NormQueue.len);
lblNMaxlen.Caption := IntToStr(NormQueue.maxlen);
lblNMinlen.Caption := IntToStr(NormQueue.minlen);
if (NormQueue.lennum=0) then
lblNMidlen.Caption := '0'
else
lblNMidlen.Caption := FloatToStrF(NormQueue.sumlen/NormQueue.lennum,
ffGeneral, 3, 10);
lblNCount.Caption := IntToStr(NormQueue.count);

// выводим эту точку на график
Chart1.Series[0].Add(PriorQueue.len, '', clTeeColor);
Chart1.Series[1].Add(NormQueue.len, '', clTeeColor);
ProgressBar1.Position := ProgressBar1.Position+1;
end;


а это код на кнопку с изменениями параметров для построения графика
procedure TfrmOptions.tbHour1Change(Sender: TObject);
var
h, m: string;
begin
h := IntToStr(tbHour1.Position);
if (tbHour1.Position<10) then
h := '0'+h;
m := IntToStr(tbMinute1.Position);
if (tbMinute1.Position<10) then
m := '0'+m;
lblStartTime.Caption := h+':'+m;
end;

//---------------------------------------
// Время конца моделирования
//---------------------------------------
procedure TfrmOptions.tbHour2Change(Sender: TObject);
var
h, m: string;
begin
h := IntToStr(tbHour2.Position);
if (tbHour2.Position<10) then
h := '0'+h;
m := IntToStr(tbMinute2.Position);
if (tbMinute2.Position<10) then
m := '0'+m;
lblStopTime.Caption := h+':'+m;
end;

//---------------------------------------
// Отмена
//---------------------------------------
procedure TfrmOptions.Button2Click(Sender: TObject);
begin
flag := false;
Close;
end;

//---------------------------------------
// Применение параметров
//---------------------------------------
procedure TfrmOptions.Button1Click(Sender: TObject);
begin
flag := true;
Close;
end;

end.
Пока ремонтируют кукольный домик, живу на форуме.
Барби вне форума Ответить с цитированием
Старый 10.11.2008, 15:42   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
//---------------------------------------
// Применение параметров
//---------------------------------------
procedure TfrmOptions.Button1Click(Sender: TObject);
...
Ну, и где же тут Series.Repaint ? Или вы ждете, пока он сам перерисуется?
mihali4 вне форума Ответить с цитированием
Старый 10.11.2008, 15:59   #3
Барби
Форумчанин
 
Аватар для Барби
 
Регистрация: 19.12.2007
Сообщений: 159
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
Ну, и где же тут Series.Repaint ? Или вы ждете, пока он сам перерисуется?
я о таком даже не слышала,спасибо. мне необходимо повторить всю процедуру рисования толькоо с Series.Repaint или же как то обособленно указать в процедуре что вот мол перерисовывайся?
Пока ремонтируют кукольный домик, живу на форуме.
Барби вне форума Ответить с цитированием
Старый 10.11.2008, 17:14   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Попробовать, конечно же, очень сложно...
Chart1.Repaint;
mihali4 вне форума Ответить с цитированием
Старый 10.11.2008, 17:38   #5
Барби
Форумчанин
 
Аватар для Барби
 
Регистрация: 19.12.2007
Сообщений: 159
По умолчанию

так я попробовала а все равно не хочет рисовать заново если что нить поменяю, мне кажется надо еще то ли цикл какой то то ли сослаться на процедуру рисования из главной формы, прям не знаю что и предпринять, не выходит каменный цветок
Вложения
Тип файла: rar смо.rar (306.6 Кб, 12 просмотров)
Пока ремонтируют кукольный домик, живу на форуме.
Барби вне форума Ответить с цитированием
Старый 11.11.2008, 10:29   #6
Nemon
Армия Рассейская
Форумчанин
 
Аватар для Nemon
 
Регистрация: 06.12.2006
Сообщений: 175
По умолчанию

попробуй сделать chart1.refresh;
Сделаем ночь ярче!!! - Ракетные войска стратегического назначения
Центральный клуб туристов РВСН
Nemon вне форума Ответить с цитированием
Старый 11.11.2008, 10:47   #7
Барби
Форумчанин
 
Аватар для Барби
 
Регистрация: 19.12.2007
Сообщений: 159
По умолчанию

неа, никак рисовать не хочет
Пока ремонтируют кукольный домик, живу на форуме.
Барби вне форума Ответить с цитированием
Старый 11.11.2008, 11:41   #8
alun
Пользователь
 
Аватар для alun
 
Регистрация: 10.11.2008
Сообщений: 32
По умолчанию

Попробуй Series.Clear(); а потом заново нарисуй...
http://relax-release.ru
alun вне форума Ответить с цитированием
Старый 11.11.2008, 12:27   #9
Барби
Форумчанин
 
Аватар для Барби
 
Регистрация: 19.12.2007
Сообщений: 159
По умолчанию

Цитата:
Сообщение от alun Посмотреть сообщение
Попробуй Series.Clear(); а потом заново нарисуй...
очистка перед каждым новым рисованием у меня произвоится, новое рисование тоже производится, а вот если изменить параметры через другую форму, то очистка производится, а рисование нет. и не пойму никак как бы посторить рисование, если копировать на форму с изменением параметров весь процесс рисования. то он ругается ведь само рисование происходит на главной форме,а сослаться что то никак не получается. а на главной форме уже и так и сяк пробую чтоб при получении флага а новых данных перерисовывалось и безрезультатно
Пока ремонтируют кукольный домик, живу на форуме.
Барби вне форума Ответить с цитированием
Старый 11.11.2008, 12:53   #10
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

1. Проверьте обработчик BitBtn2Click. У вас там явно что-то не в порядке.
2. Вы таймер включать/выключать умеете? Что он у вас молотит без остановки?
3. Пошаговый режим отладки вам знаком? Тогда поставьте брэйкпойнт на первый оператор обработчика btnRunClick и посмотрите, что у вас происходит при повторном запуске.
mihali4 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Диассемблиравание для изменения строковых данных без знания ассемблера GanGSISoft Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 8 06.10.2008 20:35
Как заставить макрос работай автоматически при внесении данных ? artfunk Microsoft Office Excel 9 31.08.2008 20:01
как отследить изменения в базе данных unit-85 Помощь студентам 2 13.08.2008 11:29
Проблемы при удалении файлов Pavel55 Общие вопросы Delphi 7 10.01.2008 00:45
оптимизация изменения данных Lunatikus БД в Delphi 6 03.07.2007 11:47