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

RusFAQ.ru: Программирование на Delphi


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

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

Выпуск № 682
от 17.12.2006, 07:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 421, Экспертов: 65
В номере:Вопросов: 7, Ответов: 12


Вопрос № 66465: Здравствуйте! Как можно сделать BalloonTips - сообщение, всплывающее в правом нижнем углу. Желательно пример. ..
Вопрос № 66466: Здравствуйте, уважаемые эксперты. Я занимаюсь программированием микроконтроллеров ATMEL, но пока новичок в этом. Мне нужны также специфическое программы для работы с внешними устройствами. Delphi оказался самый простой в оформлении прикладных про...
Вопрос № 66500: Привет, ребята! Как изменить шрифт *заголовка окна* формы? Взбрело в голову заказчику ерунда, а я не никогда с этим не сталкивался......
Вопрос № 66511: Здравствуйте уважаемые Эксперты. Не могу кое что сделать… У меня в программе постоянно выполняется цикл, который посылает команды в COM-порт. Для того чтобы выйти из цикла использую «флаг - WorkFlag », значение которого изменяется при нажатии...
Вопрос № 66513: Здравствуйте уважаемые Эксперты. Как сделать чтобы при перемещении формы мышкой, при движении по меню не "приостанавливался" работающий цикл в приложении?...
Вопрос № 66558: Здраствуйте! Помогите, пожалуйста, решить проблему: Есть чужое окно (Windows окно из DLL,идентификатор окна известен), на нём CheckBox и кнопка. Нужно найти эти компонеты, нажать на CheckBox(чтоб был с галочкой),а потом на кнопку. Пытался сделать с п...
Вопрос № 66559: Здравствуйте Уважаемые!У меня следующая проблема, в свой программе я вывожу на печать содержимое TMemo с помощью следующей процедуры procedure PrintStrings(Strings: TStrings); var Prn: TextFile; i: word; begin AssignPrn(Pr...

Вопрос № 66.465
Здравствуйте!
Как можно сделать BalloonTips - сообщение, всплывающее в правом нижнем углу. Желательно пример.
Отправлен: 11.12.2006, 08:45
Вопрос задал: Prowler (статус: 1-ый класс)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Кулаков Антон Сергеевич /SandroNec
Здравствуйте, Prowler!

Скачай библиотеку AlphaControls там это уже все есть, а также еще много чего.
---------
Настоящий программист на вопрос - "можешь ли ты это сделать", всегда ответит - "да", а потом подумает как
Ответ отправил: Кулаков Антон Сергеевич /SandroNec (статус: 4-ый класс)
Ответ отправлен: 11.12.2006, 08:57

Отвечает: Sarymian
Здравствуйте, Prowler!
Вот один из способов сделать как надо. Сорри за то что на англ языке.

Приложение:

Ответ отправил: Sarymian (статус: 4-ый класс)
Ответ отправлен: 11.12.2006, 11:51

Отвечает: Coupler
Здравствуйте, Prowler!
Используйте компонент CoolTrayIcon: http://www.delphi.int.ru/files/components/unvisual.000/trayicon.zip
С ним идет хороший пример, который позволяет разобраться в возможностях компонента.
Ответ отправил: Coupler (статус: Студент)
Ответ отправлен: 12.12.2006, 12:22

Отвечает: Nick_K
Здравствуйте, Prowler!
Используй компонент CoolTrayIcon. Там есть все. Он бесплатный, без проблем можно найти в инете.
Ответ отправил: Nick_K (статус: 1-ый класс)
Ответ отправлен: 13.12.2006, 19:22


Вопрос № 66.466
Здравствуйте, уважаемые эксперты.
Я занимаюсь программированием микроконтроллеров ATMEL, но пока новичок в этом. Мне нужны также специфическое программы для работы с внешними устройствами. Delphi оказался самый простой в оформлении прикладных программ. Где можно найти доступный для бесплатного скачивания учебник, где подробно описаны принципы и примеры работы с портами COM, LPT, USB и с файлами. Что еще необходимо знать, для того, чтобы можно было создавать полноценные программы для связи с внешними проектируемыми устройствами?
Заранее спасибо.
Отправлен: 11.12.2006, 08:48
Вопрос задал: Минаев Юра (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Gladiator
Здравствуйте, Минаев Юра!
Агуров П.В. Интерфейс USB. Практика использования и программирования.
Там как раз рассматривается пример на основе Atmel. Не помню, где-то в интернете было в электронном виде в формате djvu.
Ответ отправил: Gladiator (статус: 6-ой класс)
Ответ отправлен: 11.12.2006, 09:01
Оценка за ответ: 4
Комментарий оценки:
Не нашел данную книгу для бесплатного скачивания.
Нужен материал по работе с внешними портами компьютера.


Вопрос № 66.500
Привет, ребята! Как изменить шрифт *заголовка окна* формы? Взбрело в голову заказчику ерунда, а я не никогда с этим не сталкивался...
Отправлен: 11.12.2006, 11:43
Вопрос задал: Валерий Кравцов (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 11)

Отвечает: Bob Johnson
Здравствуйте, Валерий Кравцов!
Пуск - Панель управления - Экран - Закладка "Оформление" - кнопка "Дополнительно" - элемент "Заголовок активного окна" - шрифт - размер...
:)
Ответ отправил: Bob Johnson (статус: Академик)
Россия, Калуга
WWW: Программирование
----
Ответ отправлен: 11.12.2006, 11:55
Оценка за ответ: 1
Комментарий оценки:
Вы думаете, я такой себе чайник-идиот, который не умеет пользоваться Windows? Я задал этот вопрос в программистский форум, а не в форум юзеров! Нужно изменить шрифт заголовка окна одной конкретной формы одного конкретного приложения!!! Программно, разумеется. Подозреваю, нужно расставлять ловушки (hooks). Не знаю вот только какие. Потому и попросил совет здесь :)))

Отвечает: PaVeL_Ekt
Здравствуйте, Валерий Кравцов!

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

private
procedure WMNCPaint(var Msg: TWMNCPaint); message WM_NCPAINT;
(в описании формы)

procedure TForm1.WMNCPaint(var Msg: TWMNCPaint);
var
ACanvas: TCanvas;
begin
inherited;
ACanvas := TCanvas.Create;
try
ACanvas.Handle := GetWindowDC(Form1.Handle);
with ACanvas do
begin
Brush.Color := clActiveCaption;
Font.Name := 'Tahoma';
Font.Size := 8;
Font.Color := clred;
Font.Style := [fsItalic, fsBold];
TextOut(GetSystemMetrics(SM_CYMENU) + GetSystemMetrics(SM_CXBORDER),
Round((GetSystemMetrics(SM_CYCAPTION) - Abs(Font.Height)) / 2) + 1, ' Some Text');
end;
finally
ReleaseDC(Form1.Handle, ACanvas.Handle);
ACanvas.Free;
end;
end;

// теоретически можно не только текст выводить, но и рисовать фигуры, картинки и т.д.

УДАЧИ !

---------
Да поможет Вам F1, да сохранит Вас F2, во имя CTRL, ALT и святого DEL
Ответ отправил: PaVeL_Ekt (статус: 8-ой класс)
Ответ отправлен: 11.12.2006, 13:03
Оценка за ответ: 5
Комментарий оценки:
Спасибо, работает. К сожалению, эта надпись не выводится "прозрачной".... Т.е., на градиентных заголовках (как в Обычной Windows) или всяких там навороченных (типа в WinXP) явно виден "фон" (имеющий цвет clActiveCaption). :(

Отвечает: Nick_K
Здравствуйте, Валерий Кравцов!
За текст в заголовке формы отвечает сама WINDOWS. Самый простой вариант-нарисовать заголовок вручную, реализовать все необходимые с нем (заголовком) действия и задать тот шрифт, который нужен заказчику.
Ответ отправил: Nick_K (статус: 1-ый класс)
Ответ отправлен: 13.12.2006, 19:20


Вопрос № 66.511
Здравствуйте уважаемые Эксперты.
Не могу кое что сделать…
У меня в программе постоянно выполняется цикл, который посылает команды в COM-порт. Для того чтобы выйти из цикла использую «флаг - WorkFlag », значение которого изменяется при нажатии кнопки на форме.
Проблема в том, что когда я двигаю указатель мыши над меню, во время выполнения цикла, то оно выделяеться, но обратно не перерисовываеться, т.е. остаеться «затемненным».

Как сделать чтобы меню нормально прорисовывалось? Без всяких торможений.
Использую следующие компоненты:
ActionManager1
ActionMainMenuBar1

Пробовал убирать Application.ProcessMessages , но тогда форма не реагирует ни на какие нажатия.

Приложение:

Отправлен: 11.12.2006, 12:38
Вопрос задал: Пепеляев Александр (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Nick_K
Здравствуйте, Пепеляев Александр Павлович!
попробуйте записывать данные в порт другим процессом. Или создать DLL и вызывать уже из нее желаемую функцию или процедуру.
Ответ отправил: Nick_K (статус: 1-ый класс)
Ответ отправлен: 13.12.2006, 19:15
Оценка за ответ: 4
Комментарий оценки:
Спасибо за идею.
Ужечал делать с помощью потоков,
по-моему неплохо получаеться...


Вопрос № 66.513
Здравствуйте уважаемые Эксперты.
Как сделать чтобы при перемещении формы мышкой, при движении по меню не "приостанавливался" работающий цикл в приложении?

Приложение:

Отправлен: 11.12.2006, 13:02
Вопрос задал: Пепеляев Александр (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Melamed
Здравствуйте, Пепеляев Александр Павлович!
Попробуйте организовать этот цикл в отдельном потоке. Но помните о синхронизации потоков.

Желаю удачи
Если будут вопросы, обращайтесь по внутренней почте.
Ответ отправил: Melamed (статус: 8-ой класс)
Ответ отправлен: 12.12.2006, 15:22
Оценка за ответ: 5
Комментарий оценки:
Спасибо за ответ.
Я тоже уже подумал, что наверное только с потоком получиться избавиться от этого.
Но я не с потоками никогда не работал, поэтому сейчас пока читаю как это делаеться... если будут вопросы то обращусь.


Вопрос № 66.558
Здраствуйте! Помогите, пожалуйста, решить проблему: Есть чужое окно (Windows окно из DLL,идентификатор окна известен), на нём CheckBox и кнопка. Нужно найти эти компонеты, нажать на CheckBox(чтоб был с галочкой),а потом на кнопку. Пытался сделать с помощью посылки сообщений, но запутался.
Отправлен: 11.12.2006, 19:26
Вопрос задал: Clr (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Кулаков Антон Сергеевич /SandroNec
Здравствуйте, Clr!

В приложении тестовый код. На форме находятся две кнопки, один checkbox. У кнопки которую надо найти Caption равен 'Далее' у checkbox`а 'Согласен', причем у кнопки подчеркнута буква "Д" (это очень важно) а у чекбокса "С" то есть нам надо уже искать не "Далее" а "&Далее". Дальше все просто, нажимаем на первую кнопку (Button1) и выполняем следующий код: находим окно с заголовком "Form1" (если не находим то выдаем сообщение и выходим из программы), находим чекбокс (если не находим то .......) посылаем ему сообщение что на него нажали, находим кнопку (если не находим то ........), посылаем ей сообщение что ее нажали. Вот пожалуй и весь ответ на ваш вопрос.

Приложение:

---------
Настоящий программист на вопрос - "можешь ли ты это сделать", всегда ответит - "да", а потом подумает как

Ответ отправил: Кулаков Антон Сергеевич /SandroNec (статус: 4-ый класс)
Ответ отправлен: 12.12.2006, 06:28
Оценка за ответ: 5
Комментарий оценки:
Спасибо!


Вопрос № 66.559
Здравствуйте Уважаемые!У меня следующая проблема, в свой программе я вывожу на печать содержимое TMemo с помощью следующей процедуры
procedure PrintStrings(Strings: TStrings);
var
Prn: TextFile;
i: word;
begin
AssignPrn(Prn);
try
Rewrite(Prn);
try
for i := 0 to Strings.Count - 1 do
writeln(Prn, Strings.Strings[i]);
finally
CloseFile(Prn);
end;
except
on EInOutError do
MessageDlg('Error Printing text.', mtError, [mbOk], 0);
end;
end;
используя следующую команду:
PrintStrings(Memo1.Lines);
У меня вопрос,можно ли сделать так, что бы печать шла шрифтом Courier.Или может напишите свой код.


Отправлен: 11.12.2006, 19:27
Вопрос задал: Delphi-n (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: PaVeL_Ekt
Здравствуйте, Delphi-n!

Вот Вам рабочий код, в хелпе можете почитать Printing Example поподробнее или просмотреть TPrinter находящийся в QPrinters.

Приложение:

---------
Да поможет Вам F1, да сохранит Вас F2, во имя CTRL, ALT и святого DEL

Ответ отправил: PaVeL_Ekt (статус: 8-ой класс)
Ответ отправлен: 12.12.2006, 07:04


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

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

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

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

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


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


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.37 от 04.10.2006
Яндекс Rambler's Top100

В избранное