Jojobets |
Отправлено: 14.05.2005, 21:46 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 16
|
На форме порядка 20 лейблов (TLabel), созданных динамически (массив элементов типа TLabel). Функция обновляет Caption всех лейблов определенными значениями. Но на самой форме прорисовыввется в лучшем случае 5 лейблов, остальные — нет. Если свернуть и развернуть форму, то можно увидеть новые значения, обновленные. Принудительное обновление Update() не помогает.
Код следующий:
...
TLabel *mylabels[20][20];
void __fastcall Tmyform::FormCreate(TObject *Sender)
{const int wdt=60;
const int hgt=20;
for(int i=0;i<10;i++)
{ for(int j=0;j<10;j++)
{mylabels[i][j]=new TLabel(myform);
mylabels[i][j]->Parent=myform;
mylabels[i][j]->Width=wdt;
mylabels[i][j]->Height=hgt;
mylabels[i][j]->Left=10+wdt*i;
mylabels[i][j]->Top=13+hgt*j;
mylabels[i][j]->AutoSize=false;
mylabels[i][j]->Alignment=taCenter;
mylabels[i][j]->Caption="#####";
}
}
}
После тоже все обычно — пытаемся изменить значение Caption:
mylabels[1][2]->Caption=всякая_всячина;
Причем подряд несколько таких строк, изменяющая каждая свой элемент.
|
|
Daan |
Отправлено: 15.05.2005, 01:12 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 62
|
Методом ctrl+c и ctrl +v проверил и пришел к вывады что код работает, никаки замечаний не имеется... |
|
GIZMO |
Отправлено: 15.05.2005, 07:49 |
|
Машинист паровоза
Группа: Участник
Сообщений: 174
|
QUOTE (Daan @ 15/05/2005, 01:12) | Методом ctrl+c и ctrl +v проверил и пришел к вывады что код работает, никаки замечаний не имеется... |
TApplication::ProcessMessages()
|
|
Jojobets |
Отправлено: 16.05.2005, 15:17 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 16
|
приведенный код не единственный в программе. Там еще куча всего, чего я не могу засветить по понятным причинам.
Программа отдельным потоком получает данные с СОМ-порта, на котором висит контроллер. Эти данные и помещаются в caption соответствующих labels. На основе функции обновления caption'ов формируется поток.
Проблема решилась следующим образом. Я отключил в BIOSе HyperThreading и переустановил винду. Все стало работать нормально.
Сейчас пытаюсь разобраться, в чем же конкретно было дело. |
|
olegenty |
Отправлено: 16.05.2005, 15:31 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
для справки: сертифицирована на работу с гипер-трйдином только линейка XP (2003 server в том числе). остальные ОС от Microsoft — нет.
|
|
** daan |
Отправлено: 18.05.2005, 15:41 |
|
Не зарегистрирован
|
>olegenty
А можно поподробнее про то что вы скаазали???? или где про это можно посмотреть.... |
|