Вопрос № 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.Заранее огромное спасибо!!
Отвечает: Лысков Игорь Витальевич
Здравствуйте, Сергей Черняков! Чтобы следить за буфером обмена надо добавить свое окно в цепочку viewer-ов буфера обмена при помощи функции HWND SetClipboardViewer( HWND hWndNewViewer); В приложении выдержка из MSDN с описанием того, что должен делать viewer буфера обмена. Дальше, чтобы реализовать требуемое, отрабатывая сообщение WM_DRAWCLIPBOARD, работаем с буфером обмена: анализируем тип содержимого, анализируем содержимое и т.д. Не забываем давать сообщение следующему viewer-у в цепочке
и удалять себя из цепочки в конце работы.
Приложение:
--------- Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: Профессионал) Украина, Кировоград ICQ: 234137952 ---- Ответ отправлен: 23.02.2009, 11:21
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 244268 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Отвечает: 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 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Вопрос № 161.156
Здравствуйте! Подскажите пожалуйста как настроить MS Visual 2008 чтобы проекты компилировалися быстрее? Заранее благодарен!
Отвечает: Evgenijm
Здравствуйте, Cич Тарас михайлович!
Если Вы сделали обычную ошибку новичка и включили все возможные оптимизации в режиме Debug, то лучше их отключить. Оптимизировать надо только код Release. Также, справочная система обещает, что прекомпилированные заголовки существенно ускоряют компиляцию. С ними я не работал, поэтому точнее сказать не могу.
Желательно еще разбивать программу на несколько достаточно небольших файлов, чтобы между компиляциями менялись только 1-2 файла. Т.к. неизменившиеся файлы
компилироваться больше не будут: их скомпилированные файлы остаются на диске. Слишком дробить не надо: с ростом количества файлов увеличивается время на их открытие/закрытие.
Вообще, сейчас я работаю над проектом, где к моей программе на C# прилагается еще 3 DLL на C++, каждая по 70-100К одним файлом плюс заголовок. И даже если они все изменяются, их перекомпиляция длится всего пару секунд.
Ответ отправил: Evgenijm (статус: 3-й класс)
Ответ отправлен: 24.02.2009, 02:40
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 244321 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Вопрос № 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 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Отвечает: Лысков Игорь Витальевич
Здравствуйте, Newnata89! Посмотрите решение в приложении. Все значительно проще...
Приложение:
--------- Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: Профессионал) Украина, Кировоград ICQ: 234137952 ---- Ответ отправлен: 23.02.2009, 14:52
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 244278 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Отвечает: Person
Здравствуйте, Newnata89! В C# я не знаток, но фрагмент собственно вычисления должен выглядеть примерно так (код в приложении). Вместо SIN и POWER подставьте вызовы функций вычисления синуса и степени соответственно из вашей библиотеки.
Приложение:
Ответ отправил: Person (статус: 3-й класс)
Ответ отправлен: 23.02.2009, 19:45
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 244301 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Скажите "спасибо" эксперту, который помог Вам!
Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
на короткий номер 1151 (Россия)
Номер ответа и конкретный текст СМС указан внизу каждого ответа.
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.