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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.05.2012, 23:33   #1
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию Снова потоки

Накидал код, в котором каждый поток должен выводить инфу в свой Item[GlobParam]->subitems, но почемуто выводится только в Item[0]. Вот код
Код:
unit1.cpp
void __fastcall TForm1::Button1Click(TObject *Sender)
{
for(int i=0; i< 3; i++)
  {
	SecondProcess[i] = new TUX(True); // Creation suspended--the second process does not run yet.
	int z=-1;
	SecondProcess[i]->Parametr(z+1);
	SecondProcess[i]->FreeOnTerminate = True; // No need to clean up after termination
	SecondProcess[i]->Priority = tpLower;  // Set the priority to lower than normal.
	SecondProcess[i]->Resume(); // Now run the thread.
  }
  }

TUX.cpp
__fastcall TUX::TUX(bool CreateSuspended):TThread(CreateSuspended){}

void __fastcall __fastcall Parametr(int Par)
{
GlobParam=Par;
}


void __fastcall TUX::Execute()
{
Synchronize(UpdateR);

}
void __fastcall TUX::UpdateR(void)
 {

  Form1->lvClas->Items->Item[GlobParam]->SubItems->Strings[7] = ("Поехали");
}
и заголовки
Код:
class TForm1 : public TForm
{
 int z;
__published:	// IDE-managed Components
	TListView *lvClas;
	TButton *Button1;
	void __fastcall Button1Click(TObject *Sender);
private:	// User declarations
public:		// User declarations
	__fastcall TForm1(TComponent* Owner);
};


class TUX : public TThread
{
 int GlobParam,i;
private:
protected:
	void __fastcall Execute();
public:
	__fastcall TUX(bool CreateSuspended);
	/*__fastcall virtual ~TUX(void);
  void __fastcall UpdateR(void);
};
Отладчиком смотрел z больше 0 не берёт в инкреминации в чём я ошибку допустил?

Последний раз редактировалось bulldog5293; 28.05.2012 в 23:46.
bulldog5293 вне форума Ответить с цитированием
Старый 29.05.2012, 00:21   #2
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

а собственно в честь чего это z должно быть больше 0?
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 29.05.2012, 00:38   #3
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

z изначально равно -1, econdProcess[i]->Parametr(z+1); добавляет +1 к нему
bulldog5293 вне форума Ответить с цитированием
Старый 29.05.2012, 00:42   #4
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

нет! нет!
добавлять единицу она к z будет только если вы напишите
Код:
z++
Вот попробуйте!
да и ещё одно!
у вас в цикле z вседа -1 присваивается!
Уберите это присваивание из цикла!
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 29.05.2012, 17:57   #5
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

Hacker19_90 спасибо, башка уже не робит, не заметил такой мелочи
bulldog5293 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Снова и снова. ladose Общие вопросы Delphi 1 11.04.2012 03:37
и снова С++ ltony Помощь студентам 5 04.02.2012 02:16
Снова потоки bulldog5293 Общие вопросы Delphi 3 29.11.2010 01:35
снова орфография gsg Свободное общение 7 16.11.2010 15:22
MDIChild снова и снова... Siber_Dec Общие вопросы Delphi 2 13.12.2009 03:24