Отправляет email-рассылки с помощью сервиса Sendsay

Программирование. Форум !!!

За 2003-11-28

SOS

Hello comp,

Вопрос :
как в С++Builder описать процесс в котором
при закрытии программы она активизировала бы саму себя?
Я работаю в институте у нас есь прога OPCLink приходят студенты
которые закрывают эту программу.А без неё некоторые приложения
работают некорректно.
Так вот, если сможете то помогите.
За ранее спасибо.

   2003-11-28 14:00:31 (#26689)

Re: Новости дискуссионного листа "Программирование. Форум !!!"

Здравствуйте !

> Привет Vic!
> Я сейчас поясню некоторые моменты вашего примера, как они работали в Win98
> >Вот пример :
>
> >int nLineLength, nLineCount = m_wndRichEdit.GetLineCount();
> Эта функция возвращает ощее количество строк считанного текста т.е
> . работает
> правильно
> > CString strText, strLine;
>
> > for(int i = 0; i < nLineCount; i++)
> > {
> > nLineLength = m_wndRichEdit.LineLength(i);
> Данная функия возвращала мне не количетво считанных знаков, а количетво
> знакомест(зависила от CRect строки инициализации)

Ясно... У вас, наверно, просто у ричедита не стоял стиль ES_AUTOHSCROLL,
то есть возникал эффект 'автопереноса' строк.

> > m_wndRichEdit.GetLine(i, strText.GetBufferSetLength(nLineLength),
> >nLineLength);
> Считывал я практически также,со следующим нюансом:
> LPCTSTR strl;
> strl= strText.GetBufferSetLength(nLineLength);
> и уже далее m_wndRichEdit.GetLine(i,strl,nLineLength);
> strText=(LPCTSTR)strl;
> но думаю это одно и тоже
> > strText.ReleaseBuffer();
> int ct=strText.Find("с именем",0); ищу ключевое слово за которым искомый
> текст работет отлично
> int cn=strText.GetLength();Функция работает как попало закономер
> ности я не
> обнаружил в ХР работет безупречно
> далее функциями strText.Ringth(cn-ct); Должны отрезать левую часть строки
> но так как cn неправильно вычесена получаем неверный результат
> strText.Left(ct); отрезаем правую часть строки т.к не используется cn
> работает нормально
> > strLine.Format("Line %d : %s", i, (LPCTSTR) strText);
>
> > MessageBox((LPCTSTR) strLine);
> }

Хорошо - тогда другой вариант :

m_wndRichEdit.GetWindowText(strText);

strText.Replace("\r\n", "\n");
strText.Replace('\r', '\n');

int nTextLen = strText.GetLength();

for(int nNextPos, nBegPos = 0;
nBegPos < nTextLen;
nNextPos ++, nBegPos = nNextPos)
{
nNextPos = strText.Find('\n', nBegPos);

if(nNextPos < 0)
nNextPos = nTextLen;

strLine = strText.Mid(nBegPos, nNextPos - nBegPos);

MessageBox(strLine);
}

Это стопудово работать как надо будет. Только вот строки :

strText.Replace("\r\n", "\n");
strText.Replace('\r', '\n');

они корректируют символы перевода строки, если вдруг вставлен
текст с какими либо странными последовательностями \r и \n
не на все случаи рассчитаны. Но весь код будет работать в 100%
случаев.

> > Насчет инициализации - могу понадергать из MSDN описания стилей и
> >расширенных
> >стилей этого контрола. Это, вобщем то все что там может быть особенного.
> >Надо ?
> Я думаю надо
>
>
>
> >HINSTANCE ShellExecute(
> > HWND hwnd,
> > LPCTSTR lpOperation,
> > LPCTSTR lpFile,
> > LPCTSTR lpParameters,
> > LPCTSTR lpDirectory,
> > INT nShowCmd
> >);
> Завтра попробую правда конец месяца напрягают со всякими отчетами
>
> Владимир

Ок, тогда в близайшее время напишу.

Vic.

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: http://subscribe.ru/member/unsub?grp=comp.soft.prog.prog&email=
http://subscribe.ru/ mailto:ask@subscribe.ru

   2003-11-28 00:11:48 (#26497)