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

RusFAQ.ru: Программирование на C / C++


Хостинг Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг на Windows 2008

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

Чемпионы рейтинга экспертов в этой рассылке

Лысков Игорь Витальевич
Статус: Профессионал
Рейтинг: 185
∙ повысить рейтинг >>
Micren
Статус: Студент
Рейтинг: 117
∙ повысить рейтинг >>
Person
Статус: 3-й класс
Рейтинг: 73
∙ повысить рейтинг >>

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 1253
от 28.02.2009, 15:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 490, Экспертов: 48
В номере:Вопросов: 3, Ответов: 6

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>

Вопрос № 161152: Здравствуйте!Подскажите,пожалуйста,как сделать в с++ Builder,чтобы программа следила за буфером обмена и,если там окажеться что либо начинающееся с цифр,то помещала содержимое буфера в поле Edit.Заранее огромное спасибо!!...


Вопрос № 161156: Здравствуйте! Подскажите пожалуйста как настроить MS Visual 2008 чтобы проекты компилировалися быстрее? Заранее благодарен!...
Вопрос № 161190: Программирования на C# Даны натуральное n, действительное x. Вычислить sin x+ sin x^2+ sin x^3 +...+ sin x^n. Не могу найти ошибку, помогите. private void button1_Click(object sender, EventArgs e) { int n, i;<...

Вопрос № 161.152
Здравствуйте!Подскажите,пожалуйста,как сделать в с++ Builder,чтобы программа следила за буфером обмена и,если там окажеться что либо начинающееся с цифр,то помещала содержимое буфера в поле Edit.Заранее огромное спасибо!!
Отправлен: 22.02.2009, 23:15
Вопрос задал: Сергей Черняков (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Лысков Игорь Витальевич
Здравствуйте, Сергей Черняков!
Чтобы следить за буфером обмена надо добавить свое окно в цепочку viewer-ов буфера обмена при помощи функции HWND SetClipboardViewer( HWND hWndNewViewer);
В приложении выдержка из MSDN с описанием того, что должен делать viewer буфера обмена.
Дальше, чтобы реализовать требуемое, отрабатывая сообщение WM_DRAWCLIPBOARD, работаем с буфером обмена: анализируем тип содержимого, анализируем содержимое и т.д.
Не забываем давать сообщение следующему viewer-у в цепочке и удалять себя из цепочки в конце работы.

Приложение:

---------
Удачи!

Ответ отправил: Лысков Игорь Витальевич (статус: Профессионал)
Украина, Кировоград
ICQ: 234137952
----
Ответ отправлен: 23.02.2009, 11:21

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 244268 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Отвечает: Dr_Andrew
    Здравствуйте, Сергей Черняков!
    Для работы с буфером обмена в среде разработки Borland C++ Builder предусмотрен класс TClipboard. При инициализации приложения, разработанного в данной среде, создаётся один объект данного класса. Для получения доступа к нему имеется функция Clipboard(), которая возвращает указатель на объект TClipboard*. Подключается функция директивой #include <Clipbrd.hpp>
    Как известно, буфер обмена может содержать объекты разных форматов (текст, изображение и т.п.). Для проверки, содержится ли в буфере обмена объект заданного формата, предусмотрена функция HasFormat. Чтобы проверить, содержится ли в буфере обмена текст, нужно сделать следующий вызов:
    Код:

    Clipboard()->HasFormat(CF_TEXT);

    Для работы с текстом буфера обмена существует ряд функций, но наиболее удобно работать с ним с помощью свойства объекта класса TClipboard AsText. Это свойство соответствует содержимому буфера обмена в текстовом формате CF_TEXT (приведённому к типу AnsiString). При отсутствии в буфере данных этого формата возвращается пустая строка.
    Рассмотрим применение объекта TClipboard относительно Вашей задачи (все названия объектов сохранены в том виде, в котором они по умолчанию генерируются средой разработки). Добавим на заготовку формы объекты классов TTimer и TEdit. Предположим, что нам нужно, чтобы содержимое буфера обмена проверялось каждую минуту. Для этого присвоим свойсву Interval таймера Timer1 значение 60000. В обработчике события срабатывания таймера (TForm1::Timer1Timer(TObject *Sender) - см. приложение) запишем код извлечения текста из буфера обмена:
    Код:

    AnsiString sClipboardContent; // Строка для хранения текста из буфера
    if(Clipboard()->HasFormat(CF_TEXT)) // Если в буфере текст...
    {
    sClipboardContent = Clipboard()->AsText; // ...копируем его в строку.
    }

    После этого извлекаем из строки первый символ и, если он оказывается цифрой, то копируем содержимое буфера в поле ввода Edit1.
    Удачи!

    Приложение:

    Ответ отправил: Dr_Andrew (статус: Специалист)
    Ответ отправлен: 23.02.2009, 15:57

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 244281 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 161.156
    Здравствуйте!
    Подскажите пожалуйста как настроить MS Visual 2008 чтобы проекты компилировалися быстрее?
    Заранее благодарен!
    Отправлен: 23.02.2009, 01:13
    Вопрос задал: Cич Тарас михайлович (статус: Посетитель)
    Всего ответов: 1
    Мини-форум вопроса >>> (сообщений: 0)

    Отвечает: Evgenijm
    Здравствуйте, Cич Тарас михайлович!

    Если Вы сделали обычную ошибку новичка и включили все возможные оптимизации в режиме Debug, то лучше их отключить. Оптимизировать надо только код Release. Также, справочная система обещает, что прекомпилированные заголовки существенно ускоряют компиляцию. С ними я не работал, поэтому точнее сказать не могу.

    Желательно еще разбивать программу на несколько достаточно небольших файлов, чтобы между компиляциями менялись только 1-2 файла. Т.к. неизменившиеся файлы компилироваться больше не будут: их скомпилированные файлы остаются на диске. Слишком дробить не надо: с ростом количества файлов увеличивается время на их открытие/закрытие.

    Вообще, сейчас я работаю над проектом, где к моей программе на C# прилагается еще 3 DLL на C++, каждая по 70-100К одним файлом плюс заголовок. И даже если они все изменяются, их перекомпиляция длится всего пару секунд.
    Ответ отправил: Evgenijm (статус: 3-й класс)
    Ответ отправлен: 24.02.2009, 02:40

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 244321 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 161.190
    Программирования на C#
    Даны натуральное n, действительное x. Вычислить sin x+ sin x^2+ sin x^3 +...+ sin x^n.
    Не могу найти ошибку, помогите.

    private void button1_Click(object sender, EventArgs e)
    {
    int n, i;
    double s, x, cur;
    double power, res;
    x = Convert.ToDouble(textBox1.Text);
    n = Convert.ToInt32(textBox2.Text);
    s = 0;
    res = x;
    for (i = 2; i < n; i++)
    {
    res = res * x;
    }
    power = res;

    for (i = 1; i < n; i++)
    {
    cur = Math.Asin(power(x, i));
    }
    s = s + cur;

    label1.Text = Convert.ToString(s);
    }
    Отправлен: 23.02.2009, 14:31
    Вопрос задала: Newnata89 (статус: Посетитель)
    Всего ответов: 3
    Мини-форум вопроса >>> (сообщений: 4)

    Отвечает: witek25
    Здравствуйте, Newnata89!

    Если power в строчке
    cur = Math.Asin(power(x, i));
    вырешивает х в i-той степени, то надо бы поставить s = s + cur; в тело for(;;), т.е. так:
    for (i = 1; i <= n; i++)
    {
    cur = Math.Asin(power(x, i));
    s = s + cur;
    }
    иначе вы после окончания for присвоили s последний элемент cur, который равняяется sin x^n;

    Цикл for (i = 1; i < n; i++) отработает от i=1 до i=n-1 !
    Надо for (i = 1; i <= n; i++)
    --------
    ∙ Отредактировал: Лысков Игорь Витальевич, Профессионал
    ∙ Дата редактирования: 23.02.2009, 14:59 (время московское)

    ---------
    never underestimate
    Ответ отправил: witek25 (статус: 2-й класс)
    Ответ отправлен: 23.02.2009, 14:51

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 244277 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Отвечает: Лысков Игорь Витальевич
    Здравствуйте, Newnata89!
    Посмотрите решение в приложении. Все значительно проще...

    Приложение:

    ---------
    Удачи!

    Ответ отправил: Лысков Игорь Витальевич (статус: Профессионал)
    Украина, Кировоград
    ICQ: 234137952
    ----
    Ответ отправлен: 23.02.2009, 14:52

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 244278 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Отвечает: Person
    Здравствуйте, Newnata89!
    В C# я не знаток, но фрагмент собственно вычисления должен выглядеть примерно так (код в приложении).
    Вместо SIN и POWER подставьте вызовы функций вычисления синуса и степени соответственно из вашей библиотеки.

    Приложение:

    Ответ отправил: Person (статус: 3-й класс)
    Ответ отправлен: 23.02.2009, 19:45

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 244301 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вы имеете возможность оценить этот выпуск рассылки.
    Нам очень важно Ваше мнение!
    Оценить этот выпуск рассылки >>

    Отправить вопрос экспертам этой рассылки

    Приложение (если необходимо):

    * Код программы, выдержки из закона и т.п. дополнение к вопросу.
    Эта информация будет отображена в аналогичном окне как есть.

    Обратите внимание!
    Вопрос будет отправлен всем экспертам данной рассылки!

    Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
    экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


    Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
    Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров >>

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2009, Портал RusFAQ.ru, Россия, Москва.
    Авторское право: ООО "Мастер-Эксперт Про"
    Техподдержка портала, тел.: +7 (926) 535-23-31
    Хостинг: "Московский хостер"
    Поддержка: "Московский дизайнер"
    Авторские права | Реклама на портале

    ∙ Версия системы: 5.13 от 01.12.2008

    Яндекс Rambler's Top100
    RusFAQ.ru | MosHoster.ru | MosDesigner.ru
    RusIRC.ru | Kalashnikoff.ru | RadioLeader.ru

    В избранное