![]() |
[включить плавающее окно] Вверх #1 |
![]() Автор темы Регистрация: 08.02.2003
Адрес: Новосибирск
|
![]()
Каким образом на Дельфи можно переместить курсор в определенную точку экрана?
|
![]() |
![]() |
![]() |
[включить плавающее окно] Вверх #2 |
![]() Регистрация: 10.02.2003
Адрес: Москва
|
SetCursorPos пробовал?
__________________
Если работает, лучше не трогай! |
![]() |
![]() |
![]() |
[включить плавающее окно] Вверх #3 |
![]() Автор темы Регистрация: 08.02.2003
Адрес: Новосибирск
|
спасибо
А как выделить в программе время на выполнение внешних событий (типа команды DoEvents в бэйсике)?
__________________
Гайдар и другие экономисты поступили очень просто: представили потребности общества в виде решётки, а затем её сплющили. |
![]() |
![]() |
![]() |
[включить плавающее окно] Вверх #4 |
![]() Регистрация: 10.02.2003
Адрес: Москва
|
Можно поконкретнее?
__________________
Если работает, лучше не трогай! |
![]() |
![]() |
![]() |
[включить плавающее окно] Вверх #5 |
![]() Автор темы Регистрация: 08.02.2003
Адрес: Новосибирск
|
Например, у меня большой цикл, который тормозит программу секунд на 10. Как сделать, чтобы в это время можно было, например, переместить форму или чтоб перерисовалось изображение в TImage?
__________________
Гайдар и другие экономисты поступили очень просто: представили потребности общества в виде решётки, а затем её сплющили. |
![]() |
![]() |
![]() |
[включить плавающее окно] Вверх #6 |
![]() Регистрация: 10.02.2003
Адрес: Москва
|
Сделать отдельным процессом, с приоритетом normal, или idle.
А перерисовать форму можно так: InvalidateRect(*форма*.handle, nil, false); Для перерисовки Image можно воспользоваться такой функцией: *image*.repaint; (.refresh)
__________________
Если работает, лучше не трогай! |
![]() |
![]() |
![]() |
[включить плавающее окно] Вверх #7 |
![]() Регистрация: 06.02.2003
Адрес: Белокаменная, Первопрестольная.
|
Насколько помню, может помочь вставка Application.ProcessMessages в цикл
__________________
Error 109: Error 108 |
![]() |
![]() |
![]() |
[включить плавающее окно] Вверх #8 |
![]() Регистрация: 10.02.2003
Адрес: Москва
|
Но ИМХО предпочтительнее вычисления сделать отдельным потоком.
__________________
Если работает, лучше не трогай! |
![]() |
![]() |
![]() |
[включить плавающее окно] Вверх #9 |
![]() Автор темы Регистрация: 08.02.2003
Адрес: Новосибирск
|
А как определить позицию объекта на форме относительно верхнего левого края экрана?
Ведь ширина рамок формы может быть разной.
__________________
Гайдар и другие экономисты поступили очень просто: представили потребности общества в виде решётки, а затем её сплющили. |
![]() |
![]() |
![]() |
[включить плавающее окно] Вверх #10 |
![]() Автор темы Регистрация: 08.02.2003
Адрес: Новосибирск
|
И еще вопрос. Имеется TImage. Задаю ему размер. Через TCanvas чего-нить рисую. Через .picture.SaveToFile сохраняю в файл. Потом нужно поменять ему размер и сделать все заново. Но размер не меняется... Чего делать?
__________________
Гайдар и другие экономисты поступили очень просто: представили потребности общества в виде решётки, а затем её сплющили. |
![]() |
![]() |
![]() |
[включить плавающее окно] Вверх #11 |
![]() Автор темы Регистрация: 08.02.2003
Адрес: Новосибирск
|
И еще вопрос.
Для процедуры val нужна строка с точкой для разделения целой и дробной частей, а функция floattostr ставит запятую. Можно как-нибудь сделать, чтобы либо валу нужна была запятая, либо floattostr выдавал точку. Или только поиском и заменой в строке? А то издевательство какое-то получается.
__________________
Гайдар и другие экономисты поступили очень просто: представили потребности общества в виде решётки, а затем её сплющили. |
![]() |
![]() |
![]() |
[включить плавающее окно] Вверх #12 |
![]() Регистрация: 10.02.2003
Адрес: Москва
|
Цитата
А как определить позицию объекта на форме относительно верхнего левого края экрана?
Ведь ширина рамок формы может быть разной. ![]() Код:
GetWindowRect(hWnd, r); а r - переменная Trect Получишь координаты окна. Нужен контрол, тогда хендл на контрол подставь.
__________________
Если работает, лучше не трогай! |
![]() |
![]() |
![]() |
[включить плавающее окно] Вверх #13 |
![]() Регистрация: 10.02.2003
Адрес: Москва
|
Цитата
Первоначальное сообщение от CapOne
И еще вопрос. Имеется TImage. Задаю ему размер. Через TCanvas чего-нить рисую. Через .picture.SaveToFile сохраняю в файл. Потом нужно поменять ему размер и сделать все заново. Но размер не меняется... Чего делать?
__________________
Если работает, лучше не трогай! |
![]() |
![]() |
![]() |
[включить плавающее окно] Вверх #14 |
![]() Регистрация: 10.02.2003
Адрес: Москва
|
Цитата
Первоначальное сообщение от CapOne
И еще вопрос. Для процедуры val нужна строка с точкой для разделения целой и дробной частей, а функция floattostr ставит запятую. Можно как-нибудь сделать, чтобы либо валу нужна была запятая, либо floattostr выдавал точку. Или только поиском и заменой в строке? А то издевательство какое-то получается.
__________________
Если работает, лучше не трогай! |
![]() |
![]() |
![]() |
[включить плавающее окно] Вверх #15 |
![]() Автор темы Регистрация: 08.02.2003
Адрес: Новосибирск
|
2) Я хочу из проги сохранять битмап. И предварительно ему указывать размер в высоту и в ширину. Этим битмапом должна быть картинка, сгенерированная самой прогой. Если я делаю это через TImage, то все работает нормально, но если во второй раз я хочу сделать битмап с другим размером, то размер холста не меняется, и сохраняется только кусок изображения.
__________________
Гайдар и другие экономисты поступили очень просто: представили потребности общества в виде решётки, а затем её сплющили. |
![]() |
![]() |
![]() |
[включить плавающее окно] Вверх #16 |
![]() Регистрация: 10.02.2003
Адрес: Москва
|
Проще динамически создавать в памяти Tbitmap и сохранять его. после использования удалять, или переделывать.
__________________
Если работает, лучше не трогай! |
![]() |
![]() |
![]() |
[включить плавающее окно] Вверх #17 |
![]() Автор темы Регистрация: 08.02.2003
Адрес: Новосибирск
|
1) GetWindowRect выдает те же координаты, что и tform.left и tform.top. Так что облом. Кроме формы, вроде, ни у чего hwnd нет.
2) Попробую. 3) Такой функции, кажись нет. Компилятор ругается. Ни в одном хелпе не нашел.
__________________
Гайдар и другие экономисты поступили очень просто: представили потребности общества в виде решётки, а затем её сплющили. |
![]() |
![]() |
![]() |
[включить плавающее окно] Вверх #18 |
![]() Регистрация: 10.02.2003
Адрес: Москва
|
1) Естественно. А о каком контролле речь? У тех же TButton есть точно. Да и вообще хендл должен быть почти у всех компонентов.
2)А чего там пробовать. Делать надо ![]() 3)Пардон. Просто DecimalSeparator, переменная, а не функция. ![]()
__________________
Если работает, лучше не трогай! |
![]() |
![]() |
![]() |
[включить плавающее окно] Вверх #19 |
![]() Автор темы Регистрация: 08.02.2003
Адрес: Новосибирск
|
1) Хех. Если в нужную точку поставить тот же tbutton, все получается.
2) Сделал. Только немного по-другому. 3) Получилось.
__________________
Гайдар и другие экономисты поступили очень просто: представили потребности общества в виде решётки, а затем её сплющили. |
![]() |
![]() |
![]() |
[включить плавающее окно] Вверх #20 |
![]() Регистрация: 10.02.2003
Адрес: Москва
|
Все проблемы решены?
__________________
Если работает, лучше не трогай! |
![]() |
![]() |
![]() |
[включить плавающее окно] Вверх #21 |
![]() Автор темы Регистрация: 08.02.2003
Адрес: Новосибирск
|
Пока да
![]()
__________________
Гайдар и другие экономисты поступили очень просто: представили потребности общества в виде решётки, а затем её сплющили. |
![]() |
![]() |
![]() |
[включить плавающее окно] Вверх #22 |
![]() Автор темы Регистрация: 08.02.2003
Адрес: Новосибирск
|
Вот что из всего этого получилось: http://vadim.gczn.nsk.su/surf.rar.
|
![]() |
![]() |
![]() |
[включить плавающее окно] Вверх #23 |
![]() Регистрация: 10.02.2003
Адрес: Москва
|
2CapOne:
зря двойную буферизацию не задействовал. Не мерцало бы...
__________________
Если работает, лучше не трогай! |
![]() |
![]() |
![]() |
[включить плавающее окно] Вверх #24 |
![]() Автор темы Регистрация: 08.02.2003
Адрес: Новосибирск
|
Там все на 100% software.
Как предлагаешь эту буферизацию задействовать?
__________________
Гайдар и другие экономисты поступили очень просто: представили потребности общества в виде решётки, а затем её сплющили. |
![]() |
![]() |
![]() |
[включить плавающее окно] Вверх #25 |
![]() Регистрация: 10.02.2003
Адрес: Москва
|
Ну простейший метод - это рисовать в битам (в памяти) и делать bitblt
Второй вариант (часто не прокатывает и тормозит больше) это задать панели или форме, на которой это нарисовано придать значение DoubleBuffered = true.
__________________
Если работает, лучше не трогай! |
![]() |
![]() |
![]() |
[включить плавающее окно] Вверх #26 |
![]() Автор темы Регистрация: 08.02.2003
Адрес: Новосибирск
|
10x
__________________
Гайдар и другие экономисты поступили очень просто: представили потребности общества в виде решётки, а затем её сплющили. |
![]() |
![]() |