gorod |
Отправлено: 10.11.2006, 12:09 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 21
|
есть: листбокс в который вводятся строки
обработка всех кнопок(3 штуки)
нужно: обработка таймера т.е.
записать кодом следующее:
беру одну из строк,выделяю её и в цикле продолжаю выделять каждую почередно,продолжать это дело пока работает таймер
на мой цикл билдер упорно матерится CODE | void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
while(Form1->Timer1->Enabled!=false)
{ int i=Form1->ListBox1->Count
for (int j=0,j<=i,j++)
{
Form1->ListBox1->Items->Strings[ListBox1->ItemIndex]=j;
}
}
} |
помогите плиз кто чем может
|
|
AVC |
Отправлено: 10.11.2006, 13:49 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
QUOTE (gorod @ 10.11.2006, 11:09) | помогите плиз кто чем может |
Событие таймера возникает после истечения интервала времени. Следовательно нужно иметь цикл снаружи, котрый выполняется или нет в зависимости от некого флага, а вот установкой/сбросом флага должен заниматься таймер. |
|
gorod |
Отправлено: 10.11.2006, 15:44 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 21
|
чёт я туплю
как это тггда оформить?
|
|
olegenty |
Отправлено: 10.11.2006, 16:28 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
ну можно розочки по краям пустить
|
|
AVC |
Отправлено: 10.11.2006, 16:31 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
где то в недрах формы
while (условие выхода)
{ if (флаг) мигаем_строками;
Application->ProcessMessages();
}
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{ флаг = !флаг;
...
}
|
|
gorod |
Отправлено: 10.11.2006, 17:16 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 21
|
лан попробую ща.
вопрос в другом правильно-ли я построил "мигание"
см.цикл фор выше
билдер матерится именно на эту строку
[C++ Error] Unit1.cpp(48): E2238 Multiple declaration for 'j'
[C++ Error] Unit1.cpp(48): E2344 Earlier declaration of 'j'
[C++ Error] Unit1.cpp(48): E2141 Declaration syntax error
я в визуале стал пргать совсем недавно
ничерта не понимаю
как малый щенок(((
|
|
AVC |
Отправлено: 10.11.2006, 18:03 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
QUOTE (gorod @ 10.11.2006, 16:16) | см.цикл фор выше |
Оставив в стороне логику
while(Form1->Timer1->Enabled!=false)
{ int i=Form1->ListBox1->Count;
for (int j=0; j<=i; j++)
{
Form1->ListBox1->Items->Strings[ListBox1->ItemIndex] = j;
}
}
QUOTE | я в визуале стал пргать совсем недавно |
Начните с чтения учебника по языку.
CODE |
bool flag = false; // Так делать нельзя. flag должен быть приватным членом класса формы
void __fastcall TForm1::Button11Click(TObject *Sender)
{
flag = true;
Timer1->Enabled = true;
while (true)
{ Application->ProcessMessages();
if(!flag) break;
int i = ListBox1->ItemIndex + 1;
if (i >= ListBox1->Items->Count) i = 0;
ListBox1->ItemIndex = i;
}
Timer1->Enabled = false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
Timer1->Enabled = false;
flag = false;
}
| |
|
gorod |
Отправлено: 10.11.2006, 18:37 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 21
|
спасибо!
работает!
а по поводу книги
копался в страуструпе- ничего по билдеру
а Пахомов- не понятно нифига (я и писал по его книге до этого)
|
|