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

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

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

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

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

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

Решил занятся разработкой программ на Си++, но когда залес в поток, затупил и не понял как для каждого потока назначить свой счётчик lvClas->Items->Item[z] что бы он в нём отображал информацию
Код:
Form1->lvClas->Items->Item[z]->SubItems->Strings[7] = ("поехали");
Просто в дельфи у меня был счётчик, а как в Си++ его сделать незнаю. Выглядит он так
Код:
function tumber: integer;
begin
  if ind <> Form1.Listview1.items.Count then
    inc(ind);
  result := ind;
end;

Последний раз редактировалось bulldog5293; 09.05.2012 в 16:48.
bulldog5293 вне форума Ответить с цитированием
Старый 09.05.2012, 18:24   #2
Granus
С++
Форумчанин
 
Аватар для Granus
 
Регистрация: 22.09.2008
Сообщений: 791
По умолчанию

Объясните попонятнее, что именно Вы хотите сделать
Форматируйте код, будьте людьми.
Granus вне форума Ответить с цитированием
Старый 09.05.2012, 18:44   #3
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

Granus, я про то что если я имею более к примеру 10 потоков то информация обрабатываемая ими пишется только в первую строку, а мне нада что бы каждый поток писал в свою строку. Вот мой код
Код:
thread.cpp
void __fastcall thread::Execute()
{
Synchronize(Update);
}

void __fastcall thread::Update(void)
 {

  Form1->lvClas->Items->Item[cw]->SubItems->Strings[3] = ("Поехали");
}
Код:
thread.h
class thread : public TThread
{
Integer cw;
private:
void __fastcall Update(void);
protected:
	void __fastcall Execute();
public:
	__fastcall BUX(bool CreateSuspended);
};
Integer cw должен служить именно для того что бы каждый поток писал информацию только в свою строку
bulldog5293 вне форума Ответить с цитированием
Старый 10.05.2012, 12:01   #4
Krok27
Форумчанин
 
Аватар для Krok27
 
Регистрация: 08.07.2010
Сообщений: 505
По умолчанию

При создании потока закрепи нужную строку в переменной cw.
Это можно сделать несколькими способами:
1. Реализовать еще один конструктор
Код:
__fastcall BUX(bool CreateSuspended, int Index):TThread(CreateSuspended), cw(Index){};
2. Реализовать свойство
Код:

__property int Index = {read = cw, write = cw};

Цитата:

Просто в дельфи у меня был счётчик, а как в Си++ его сделать незнаю. Выглядит он так
Код:

Код:
function tumber: integer;
begin
  if ind <> Form1.Listview1.items.Count then
    inc(ind);
  result := ind;
end;
Код:
int __fastcall tumber()
{
   if(ind != Form1->Listview1->items->Count)
      ++ind;
return ind;
}
Знающий не говорит, говорящий не знает (С) Лао Цзы

Последний раз редактировалось Krok27; 10.05.2012 в 12:07.
Krok27 вне форума Ответить с цитированием
Старый 11.05.2012, 18:39   #5
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

Krok27 спасибо за расклад, но строка
Код:
   if(Index != Form2->Listview1->items->Count)
выкидывает ошибку
E2451 Undefined symbol 'Index'
в unite cpp, хотя в unite h я прописал
Код:
class UX : public TThread
{
int __thread cw;
__property int Index = {read = cw, write = cw};
...
bulldog5293 вне форума Ответить с цитированием
Старый 12.05.2012, 09:02   #6
Krok27
Форумчанин
 
Аватар для Krok27
 
Регистрация: 08.07.2010
Сообщений: 505
По умолчанию

По умолчанию Билдер размещает свойство Index в private. Перед ним необходимо поставить директиву public.

Код:
class UX : public TThread
{
int __thread cw;
public:
__property int Index = {read = cw, write = cw};
...
Знающий не говорит, говорящий не знает (С) Лао Цзы
Krok27 вне форума Ответить с цитированием
Старый 15.05.2012, 11:07   #7
Krok27
Форумчанин
 
Аватар для Krok27
 
Регистрация: 08.07.2010
Сообщений: 505
По умолчанию

Код:
thread.h
class UX : public TThread
{
int cw;
private:
void __fastcall Update(void);
protected:
	void __fastcall Execute();
public:
	__fastcall UX(bool CreateSuspended);
        __fastcall UX(bool CreateSuspended, int Index):TThread(CreateSuspended), cw(Index){};
        __property int Index = {read = cw};
};
Где-то на форме, когда создаешь потоки:
Код:

for(int i=0; i< Form1->Listview1->items->Count; i++)
{
     UX* UX1 = new UX(true, i);
}
Знающий не говорит, говорящий не знает (С) Лао Цзы
Krok27 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
счётчик Артур Иваныч Microsoft Office Excel 2 03.11.2009 11:52
Счётчик Mr.Been Паскаль, Turbo Pascal, PascalABC.NET 3 07.06.2009 18:47
Счётчик limon Помощь студентам 5 18.10.2008 15:51
счётчик ZYRGiX HTML и CSS 7 26.12.2007 16:12