Поиск:

Закрытая темаСоздание новой темы Создание опроса
> Напоминание о наступлении события 
:(
    Опции темы
mr.Anderson
Дата 21.9.2005, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 3
Всего: 128



Задачка. Юзверь вводит в Edit1 время события, а в Edit2 само событие, что несущественно. Причем, дата заранее неизвестна, и дат может быть несколько. Дата вводится в формате
Цитата
dd-mm-yyyy hh:mm:ss

Надоть при наступлении этого события вывести либо звуковой сигнал, либо сообщение.
Сначала, по логике, надо бы свернуть программку в трей, чтоб глаза не мозолила. Это я уже сделал. А вот с напоминалкой проблема... Кстати, напоминаловку надо включать/выключать по свойству Checked флага CheckBox1... Сложная, наверное, задачка... Но мне жизненно необходимо решение. Прошу помочь!


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
maxim1000
Дата 21.9.2005, 18:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: нет
Всего: 110



делаешь таймер на t-t0 (t - нужное время, t0 - текущее время)
при его срабатывании показываешь сообщение...
если время слишком большое (не помню ограничений для таймеров), делаешь таймер на максимально допустимый интервал, а по его прошествии запускаешь еще раз...


--------------------
qqq
PM WWW   Вверх
_hunter
Дата 21.9.2005, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 24
Всего: 98



будем считать что дату ты распарсил.
тогда береш локальное время:
Код

VOID GetLocalTime(
    LPSYSTEMTIME lpSystemTime    // address of system time structure  
   );

потом переводиш его:
Код

BOOL SystemTimeToFileTime(
    CONST SYSTEMTIME *lpSystemTime,    // address of system time to convert 
    LPFILETIME lpFileTime    // address of buffer for converted file time 
   );

и приводиш его к LARGE_INTEGER ( заполнив LowPart dwLowDateTime и HighPart dwHighDateTime )
это будет time1

потом заполняеш структуру:
Код

typedef struct _SYSTEMTIME {  // st  
    WORD wYear; 
    WORD wMonth; 
    WORD wDayOfWeek; 
    WORD wDay; 
    WORD wHour; 
    WORD wMinute; 
    WORD wSecond; 
    WORD wMilliseconds; 
} SYSTEMTIME; 

и переводиш ее сначала в FILETIME потом в LARGE_INTEGER. это будет time2

(time2.QuadPart - time1.QuadPart) / 10000.0 -- время в миллисекундах, на которое нужно установить таймер ( можно виндовый SetTimer() можно делфийский TTimer() ( лучше второй, потому как у него есть Enabled ) )


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
maxim1000
Дата 21.9.2005, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: нет
Всего: 110



если checkbox сняли - отменяешь таймер
если установили - устанавливаешь smile


--------------------
qqq
PM WWW   Вверх
rsm
Дата 21.9.2005, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 999
Регистрация: 16.3.2005

Репутация: нет
Всего: 62



Цитата(sim7 @ 21.9.2005, 20:23)
Сложная, наверное, задачка...

Проверку времени (типа там if(MyTime == Now()) наверняка в таймере делать будешь. Вот и пиши:
Код

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
    if(CheckBox1->Checked)
    {
        // тута твой код, что ты там хочешь сделать...
        ShowMessage("Message!");
    }
}


Это сообщение отредактировал(а) rsm - 21.9.2005, 18:49
PM MAIL   Вверх
mr.Anderson
Дата 21.9.2005, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 3
Всего: 128



_hunter, это для какого ж профессионала вы код дали? Я ж начинающий, а вы мне WinAPI даете. smile smile
rsm, можно еще разок объяснить, как установить таймер на введенное время с учетом введенного формата + как я уж говорил, может быть несколько дат. И на каждую надо напоминалку. А сколько дат будет - неизвестно.


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Guest
Дата 22.9.2005, 06:59 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











А я бы вместо таймера для этого дела отдельную нить организовал.
  Вверх
rsm
Дата 22.9.2005, 10:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 999
Регистрация: 16.3.2005

Репутация: нет
Всего: 62



Цитата(sim7 @ 21.9.2005, 21:40)
можно еще разок объяснить, как установить таймер на введенное время с учетом введенного формата

Можно. Методика такова:
1. Подсчитывается количество миллисекунд в заданном времени;
2. Подсчитывается количестко миллисекунд в текущем времени;
3. Разница между этими величинами устанавливается в качестве интервала для таймера.

Я предлагаю значительно более простой вариант, см. в аттаче исходники.

Это сообщение отредактировал(а) rsm - 22.9.2005, 10:55

Присоединённый файл ( Кол-во скачиваний: 9 )
Присоединённый файл  simple_timer.zip 3,77 Kb
PM MAIL   Вверх
mr.Anderson
Дата 23.9.2005, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 3
Всего: 128



rsm, в вашем коде более-менее разобрался, но у вас в ЛистБоксе заранее известно, что будет только дата. А как быть, если там еще и посторонний текст? Например, у меня вот такая строчка:
Цитата
12.02.2004 17:34:22 ::: Такое-то событие



--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
_hunter
Дата 23.9.2005, 19:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 24
Всего: 98



копируй первые 18 символов...
или все, до ":::" - 1 символ
все, в общем-то, зависит от тебя: какой формат ввода разрешиш -- тот и парсь...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
rsm
Дата 23.9.2005, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 999
Регистрация: 16.3.2005

Репутация: нет
Всего: 62



Цитата(sim7 @ 23.9.2005, 20:59)
А как быть, если там еще и посторонний текст?

Главная проблема в том, что стандартных функций для форматированного перевода строки в дату просто нет. Нужно писать такую функцию самому. Причем не забывать, что формат даты зависит от текущей локали, например в Европе принят формат MM/DD/YYYY, а у нас - DD/MM/YYYY.
PM MAIL   Вверх
mr.Anderson
Дата 23.9.2005, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 3
Всего: 128



Цитата
копируй

То, что надо скопировать, я понял и так. Но как скопировать AnsiString-строку? Функция C++ copy работает только со string-строками.

Это сообщение отредактировал(а) sim7 - 23.9.2005, 19:44


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
szz
Дата 24.9.2005, 04:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 31.5.2005
Где: Moscow, Jerusalem

Репутация: 1
Всего: 33



Цитата
Но как скопировать AnsiString-строку

Вот так к примеру:
Код

  AnsiString from="12.02.2004 17:34:22 ::: Такое-то событие";
  int delimiter = from.AnsiPos(AnsiString(" :::"));
  AnsiString date = from.SubString(1, delimiter-1);
  AnsiString message = from.SubString(delimiter+5, from.Length());

теперь у тебя date и message содержат то что надо.


--------------------
PM   Вверх
mr.Anderson
Дата 24.9.2005, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 3
Всего: 128



Код
AnsiString date=ListBox1->Items->Strings.SubString(1,19);

Вот тут ошибка. Понятно, почему: у Strings надо указать позицию. А какая тут нафиг позиция? Цель: обработать все Item у ЛистБокса на предмет наличия наступившей даты, если я правильно понял код rsm'а... Что подскажете?


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Mysterio
Дата 25.9.2005, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Планирующий
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 28.12.2004

Репутация: нет
Всего: нет



А кто тебе мешает перейти в Char? Или я плохо понял задачу?
Например так:
Код


 char date[9],nowd[9];
 StrPCopy(nowd,DateToStr(Now()));
 for(int i=0;i<max;i++)//max-максимальное кол-во stringсов у тебя в проге
 {
  StrPCopy(date,ListBox1->Items->Strings[i]);date[8]='\0';
  if(strcmp(date,nowd)==0)
   ShowMessage("Сегодня вы умрёте");

 }

PM MAIL   Вверх
rsm
Дата 25.9.2005, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 999
Регистрация: 16.3.2005

Репутация: нет
Всего: 62



Цитата(sim7 @ 24.9.2005, 18:09)
Что подскажете?

Однако ж и наворотили кода! smile Всего одну строчку нужно добавить:
Код

...
        szTime = lbTime->Items->Strings[i];

        szTime.SetLength(19); // берем только первые 19 символов, т.е. дату и время

        if(!TryStrToDateTime(szTime, DateTime))
...


Это сообщение отредактировал(а) rsm - 25.9.2005, 16:00
PM MAIL   Вверх
Mysterio
Дата 25.9.2005, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Планирующий
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 28.12.2004

Репутация: нет
Всего: нет



exellent





***Sorry for terrible english. My native language is C++

PM MAIL   Вверх
mr.Anderson
Дата 26.9.2005, 20:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 3
Всего: 128



В общем и целом, код ниже работает:
Код
 
 AnsiString szTime;
 TDateTime DateTime;
 int i;
 i = ListBox1->Items->Count;
 if(!i) return;
 while(i--)
 {
  szTime = ListBox1->Items->Strings[i];
  szTime.SetLength(18);
  if(!TryStrToDateTime(szTime, DateTime)) return;
  if(DateTime <= Now())
  {
   Timer->Enabled=false;
   ShowMessage("Событие наступило!");
   ListBox1->ItemIndex=i;
   ListBox1->Top=i;
   Timer->Enabled=true;
   return;
  }
 }

Только еще одна проблема. Как видно из кода, мне не нужно удалять сообщение из списка. Мне нужно только сообщить о его наступлении и выделить его. Приведенный же выше код продолжает сообщать о наступлении этого события.
Возникает две необходимости:
1. Сделать так, чтобы напоминание возникало только один раз.
2. Сделать так, чтобы "напоминальщик" не напоминал о событиях, которые были уже давно (но это необязательно).
Значит, надо сделать №1 из вышесказанного. Не подскажете, как? Хоть намекните, а то вы все за меня делаете... smile


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
mr.Anderson
Дата 28.9.2005, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 3
Всего: 128



А что это вдруг все замолчали? smile


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
BreakPointMAN
Дата 28.9.2005, 21:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 15.9.2004
Где: Saratov

Репутация: 6
Всего: 24



Цитата(sim7 @ 28.9.2005, 20:09)
А что это вдруг все замолчали?

не в обиду будет сказано... просто я вот так со стороны смотрю... ты сам хоть чего-нибудь пишешь? ибо последние пару месяцев я видел только посты с готовыми решениями на твои вопросы...


--------------------
"Разруха не в клозетах, а в головах." © Ф.Ф. Преображенский (М.Булгаков, "Собачье сердце")
PM WWW ICQ   Вверх
mr.Anderson
Дата 30.9.2005, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 3
Всего: 128



Цитата
не в обиду будет сказано

Я не обижаюсь. Вы все правильно подметили. Я это тоже заметил. Но если я просто не знаю, как это написать? Если бы я хоть примерно знал, я бы и не спрашивал...


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
mr.Anderson
Дата 2.10.2005, 10:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 3
Всего: 128



Попробовал прервать постоянное напоминание вот таким вот образом:
Код

AnsiString szTime;
 TDateTime DateTime;
 int i;
 bool stop=false;
 i = ListBox1->Items->Count;
 if(!i) return;
 while(i--)
 {
  while(!stop)
  {
   szTime = ListBox1->Items->Strings[i];
   szTime.SetLength(18);
   if(!TryStrToDateTime(szTime, DateTime)) return;
   if(DateTime <= Now())
   {
    Timer->Enabled=false;
    ShowMessage("Событие наступило!");
    ListBox1->ItemIndex=i;
    ListBox1->Top=i;
    Timer->Enabled=true;
    stop=true;
    return;
   }
  }
 }

Однако, цикл все равно продолжается. Почему так?


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
rsm
Дата 2.10.2005, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 999
Регистрация: 16.3.2005

Репутация: нет
Всего: 62



Цитата(sim7 @ 26.9.2005, 22:40)
1. Сделать так, чтобы напоминание возникало только один раз.
2. Сделать так, чтобы "напоминальщик" не напоминал о событиях, которые были уже давно

Всего одно условие изменить нужно:
Код

   if(DateTime == Now())    
   {

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

Цитата(sim7 @ 2.10.2005, 12:06)
Однако, цикл все равно продолжается. Почему так?

Потому что переменная stop локальная, ее значение устанавливается заново при каждом входе в функцию.
PM MAIL   Вверх
mr.Anderson
Дата 2.10.2005, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 3
Всего: 128



Цитата
Всего одно условие изменить нужно

Я думал над этим. Правда, думал. Я просто хотел, чтобы кто-нибудь это подтвердил.
Цитата
локальная

Тогда ее можно объявить как static, тогда все будет нормально, да?
В принципе, я сделал немного по-другому. Вот так:
Код

 AnsiString szTime;
 TDateTime DateTime;
 int i;
 i = ListBox1->Items->Count;
 if(!i) return;
 while(i--)
 {
  szTime = ListBox1->Items->Strings[i];
  szTime.SetLength(18); // берем только первые 18 символов, т.е. дату и время
  if(!TryStrToDateTime(szTime, DateTime)) return;
  if(DateTime <= Now())
  {
   Timer->Enabled=false;
   CheckBox1->Checked=false;
   MessageBox(NULL,"Одно из указанных в списке событие наступило! В списке заданное на это время событие было выделено.","Информация",MB_ICONINFORMATION);
   ListBox1->ItemIndex=i;
   ListBox1->TopIndex=i;
   if(MessageBox(NULL,"Вы должны удалить наступившее событие, иначе вы не сможете снова включить напоминания (программа будет постоянно напоминать об уже прошедшем событии). Удалить событие? Если вы отвечаете \"Нет\", то вам придется сделать это вручную.","Информация",MB_ICONQUESTION|MB_YESNO)==IDYES)
   {
    ListBox1->Items->Delete(i);
    MessageBox(NULL,"Наступившее событие было успешно удалено. Напоминания включены.","Информация",MB_ICONINFORMATION);
    CheckBox1->Checked=true;
    Form1->ListBox1->Items->SaveToFile("do.txt");
   }
   else MessageBox(NULL,"Удаление события отменено. Напоминания выключены.","Информация",MB_ICONINFORMATION);
   return;
  }
 }

Добавлено @ 11:38
Но, думаю, все же ваш вариант лучше. Или оставить как есть? Мне в принципе и так и так нравится...


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
rsm
Дата 2.10.2005, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 999
Регистрация: 16.3.2005

Репутация: нет
Всего: 62



Цитата(sim7 @ 2.10.2005, 13:37)
Тогда ее можно объявить как static, тогда все будет нормально, да?

Нормально будет только в случае, если объявишь переменную как глобальную.
PM MAIL   Вверх
AntonChik
Дата 4.10.2005, 08:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 4.10.2005
Где: Красноярск

Репутация: 1
Всего: 1



2Sim7: удивляюсь...удивляюсь... буквально развел чуваков... на 2 страницы резину растянул... как же ты "опытным"-то стал??? (не в обиду будет сказано) Но твою фразу "Сложная, наверное, задачка" я расцениваю как насмешку... Не, я понимаю если б ты числился новичком, хотя ладно - тема-то закрыта smile

--------------------
"Человек притаился за деревом. За широким огромным деревом. Он выглядывал тихонько и прятался. Но его никто не преследовал." (с) Хорги 
PM MAIL   Вверх
mr.Anderson
Дата 4.10.2005, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 3
Всего: 128



Я, извиняюсь, опытный по количеству сообщений. Эти звания придумал не я и не вы, и не мне и не вам их оценивать! А в программировании я еще вовсе не считаю себя опытным, как вы сказали, я знаю прекрасно, что я новичок! У вас, может быть, все хорошо получается, а вот у меня туговато, особенно без учителя! Так что не надо меня ругать. Сам недоволен. smile
Закрывайте тему, вроде, все выяснили.


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
AntonChik
Дата 5.10.2005, 10:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 4.10.2005
Где: Красноярск

Репутация: 1
Всего: 1



приношу свои извинения
--------------------
"Человек притаился за деревом. За широким огромным деревом. Он выглядывал тихонько и прятался. Но его никто не преследовал." (с) Хорги 
PM MAIL   Вверх
_hunter
Дата 5.10.2005, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 24
Всего: 98



оценивать может и не нам, но судят то по ним. и соответственно помогают как опытному...

P.S.
попроси у модераторов чтобы статус сменили на "не опытный" smile


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
mr.Anderson
Дата 5.10.2005, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 3
Всего: 128



Цитата
приношу свои извинения

Ладно, мир. smile
Цитата
попроси у модераторов чтобы статус сменили на "не опытный"

А можно? Ладно, тогда это мысль. Сейчас найдем кого-нибудь...

P.S. Модераторы, закройте тему! А то мы и я в частности не удержимся от оффтопа...


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Страницы: (2) [Все] 1 2 
Закрытая темаСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0797 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.