Форум 3DNews
Вернуться   Форум 3DNews > Программирование > Программирование

Ответ Создать новую тему
Опции темы Опции просмотра
Непрочитано 01.04.2003, 17:10   [включить плавающее окно]   #1
CapOne
Мужской Умудрённый
Автор темы
 
Аватар для CapOne
 
Регистрация: 08.02.2003
Адрес: Новосибирск
Question Переместить курсор

Каким образом на Дельфи можно переместить курсор в определенную точку экрана?
CapOne вне форума  
Ответить с цитированием
Непрочитано 01.04.2003, 20:11   [включить плавающее окно]   #2
Darthman
Мужской Опытный
 
Аватар для Darthman
 
Регистрация: 10.02.2003
Адрес: Москва
SetCursorPos пробовал?
__________________
Если работает, лучше не трогай!
Darthman вне форума  
Ответить с цитированием
Непрочитано 02.04.2003, 10:56   [включить плавающее окно]   #3
CapOne
Мужской Умудрённый
Автор темы
 
Аватар для CapOne
 
Регистрация: 08.02.2003
Адрес: Новосибирск
спасибо

А как выделить в программе время на выполнение внешних событий (типа команды DoEvents в бэйсике)?
__________________
Гайдар и другие экономисты поступили очень просто: представили потребности общества в виде решётки, а затем её сплющили.
CapOne вне форума  
Ответить с цитированием
Непрочитано 02.04.2003, 12:33   [включить плавающее окно]   #4
Darthman
Мужской Опытный
 
Аватар для Darthman
 
Регистрация: 10.02.2003
Адрес: Москва
Можно поконкретнее?
__________________
Если работает, лучше не трогай!
Darthman вне форума  
Ответить с цитированием
Непрочитано 04.04.2003, 04:41   [включить плавающее окно]   #5
CapOne
Мужской Умудрённый
Автор темы
 
Аватар для CapOne
 
Регистрация: 08.02.2003
Адрес: Новосибирск
Например, у меня большой цикл, который тормозит программу секунд на 10. Как сделать, чтобы в это время можно было, например, переместить форму или чтоб перерисовалось изображение в TImage?
__________________
Гайдар и другие экономисты поступили очень просто: представили потребности общества в виде решётки, а затем её сплющили.
CapOne вне форума  
Ответить с цитированием
Непрочитано 04.04.2003, 12:03   [включить плавающее окно]   #6
Darthman
Мужской Опытный
 
Аватар для Darthman
 
Регистрация: 10.02.2003
Адрес: Москва
Сделать отдельным процессом, с приоритетом normal, или idle.
А перерисовать форму можно так:
InvalidateRect(*форма*.handle, nil, false);
Для перерисовки Image можно воспользоваться такой функцией:
*image*.repaint; (.refresh)
__________________
Если работает, лучше не трогай!
Darthman вне форума  
Ответить с цитированием
Непрочитано 04.04.2003, 12:13   [включить плавающее окно]   #7
AWESOME
Мужской Заслуженный
 
Аватар для AWESOME
 
Регистрация: 06.02.2003
Адрес: Белокаменная, Первопрестольная.
Насколько помню, может помочь вставка Application.ProcessMessages в цикл
__________________
Error 109: Error 108
AWESOME вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 04.04.2003, 12:31   [включить плавающее окно]   #8
Darthman
Мужской Опытный
 
Аватар для Darthman
 
Регистрация: 10.02.2003
Адрес: Москва
Но ИМХО предпочтительнее вычисления сделать отдельным потоком.
__________________
Если работает, лучше не трогай!
Darthman вне форума  
Ответить с цитированием
Непрочитано 06.04.2003, 10:42   [включить плавающее окно]   #9
CapOne
Мужской Умудрённый
Автор темы
 
Аватар для CapOne
 
Регистрация: 08.02.2003
Адрес: Новосибирск
А как определить позицию объекта на форме относительно верхнего левого края экрана?
Ведь ширина рамок формы может быть разной.
__________________
Гайдар и другие экономисты поступили очень просто: представили потребности общества в виде решётки, а затем её сплющили.
CapOne вне форума  
Ответить с цитированием
Непрочитано 06.04.2003, 16:11   [включить плавающее окно]   #10
CapOne
Мужской Умудрённый
Автор темы
 
Аватар для CapOne
 
Регистрация: 08.02.2003
Адрес: Новосибирск
И еще вопрос. Имеется TImage. Задаю ему размер. Через TCanvas чего-нить рисую. Через .picture.SaveToFile сохраняю в файл. Потом нужно поменять ему размер и сделать все заново. Но размер не меняется... Чего делать?
__________________
Гайдар и другие экономисты поступили очень просто: представили потребности общества в виде решётки, а затем её сплющили.
CapOne вне форума  
Ответить с цитированием
Непрочитано 07.04.2003, 04:41   [включить плавающее окно]   #11
CapOne
Мужской Умудрённый
Автор темы
 
Аватар для CapOne
 
Регистрация: 08.02.2003
Адрес: Новосибирск
И еще вопрос.
Для процедуры val нужна строка с точкой для разделения целой и дробной частей, а функция floattostr ставит запятую. Можно как-нибудь сделать, чтобы либо валу нужна была запятая, либо floattostr выдавал точку. Или только поиском и заменой в строке? А то издевательство какое-то получается.
__________________
Гайдар и другие экономисты поступили очень просто: представили потребности общества в виде решётки, а затем её сплющили.
CapOne вне форума  
Ответить с цитированием
Непрочитано 07.04.2003, 13:31   [включить плавающее окно]   #12
Darthman
Мужской Опытный
 
Аватар для Darthman
 
Регистрация: 10.02.2003
Адрес: Москва
Цитата
А как определить позицию объекта на форме относительно верхнего левого края экрана?
Ведь ширина рамок формы может быть разной.
Да запросто

Код:
GetWindowRect(hWnd, r);
Где hWnd - будет скорее всего form1.handle
а r - переменная Trect
Получишь координаты окна.
Нужен контрол, тогда хендл на контрол подставь.
__________________
Если работает, лучше не трогай!
Darthman вне форума  
Ответить с цитированием
Непрочитано 07.04.2003, 13:32   [включить плавающее окно]   #13
Darthman
Мужской Опытный
 
Аватар для Darthman
 
Регистрация: 10.02.2003
Адрес: Москва
Цитата
Первоначальное сообщение от CapOne
И еще вопрос. Имеется TImage. Задаю ему размер. Через TCanvas чего-нить рисую. Через .picture.SaveToFile сохраняю в файл. Потом нужно поменять ему размер и сделать все заново. Но размер не меняется... Чего делать?
Непонял?
__________________
Если работает, лучше не трогай!
Darthman вне форума  
Ответить с цитированием
Непрочитано 07.04.2003, 13:33   [включить плавающее окно]   #14
Darthman
Мужской Опытный
 
Аватар для Darthman
 
Регистрация: 10.02.2003
Адрес: Москва
Цитата
Первоначальное сообщение от CapOne
И еще вопрос.
Для процедуры val нужна строка с точкой для разделения целой и дробной частей, а функция floattostr ставит запятую. Можно как-нибудь сделать, чтобы либо валу нужна была запятая, либо floattostr выдавал точку. Или только поиском и заменой в строке? А то издевательство какое-то получается.
SetDecimalSeparator меняет системный разделитель.
__________________
Если работает, лучше не трогай!
Darthman вне форума  
Ответить с цитированием
Непрочитано 07.04.2003, 14:28   [включить плавающее окно]   #15
CapOne
Мужской Умудрённый
Автор темы
 
Аватар для CapOne
 
Регистрация: 08.02.2003
Адрес: Новосибирск
2) Я хочу из проги сохранять битмап. И предварительно ему указывать размер в высоту и в ширину. Этим битмапом должна быть картинка, сгенерированная самой прогой. Если я делаю это через TImage, то все работает нормально, но если во второй раз я хочу сделать битмап с другим размером, то размер холста не меняется, и сохраняется только кусок изображения.
__________________
Гайдар и другие экономисты поступили очень просто: представили потребности общества в виде решётки, а затем её сплющили.
CapOne вне форума  
Ответить с цитированием
Непрочитано 07.04.2003, 14:44   [включить плавающее окно]   #16
Darthman
Мужской Опытный
 
Аватар для Darthman
 
Регистрация: 10.02.2003
Адрес: Москва
Проще динамически создавать в памяти Tbitmap и сохранять его. после использования удалять, или переделывать.
__________________
Если работает, лучше не трогай!
Darthman вне форума  
Ответить с цитированием
Непрочитано 07.04.2003, 16:18   [включить плавающее окно]   #17
CapOne
Мужской Умудрённый
Автор темы
 
Аватар для CapOne
 
Регистрация: 08.02.2003
Адрес: Новосибирск
1) GetWindowRect выдает те же координаты, что и tform.left и tform.top. Так что облом. Кроме формы, вроде, ни у чего hwnd нет.
2) Попробую.
3) Такой функции, кажись нет. Компилятор ругается. Ни в одном хелпе не нашел.
__________________
Гайдар и другие экономисты поступили очень просто: представили потребности общества в виде решётки, а затем её сплющили.
CapOne вне форума  
Ответить с цитированием
Непрочитано 07.04.2003, 16:29   [включить плавающее окно]   #18
Darthman
Мужской Опытный
 
Аватар для Darthman
 
Регистрация: 10.02.2003
Адрес: Москва
1) Естественно. А о каком контролле речь? У тех же TButton есть точно. Да и вообще хендл должен быть почти у всех компонентов.
2)А чего там пробовать. Делать надо
3)Пардон. Просто DecimalSeparator, переменная, а не функция. Мне стыдно... гыгы
__________________
Если работает, лучше не трогай!
Darthman вне форума  
Ответить с цитированием
Непрочитано 07.04.2003, 17:47   [включить плавающее окно]   #19
CapOne
Мужской Умудрённый
Автор темы
 
Аватар для CapOne
 
Регистрация: 08.02.2003
Адрес: Новосибирск
1) Хех. Если в нужную точку поставить тот же tbutton, все получается.
2) Сделал. Только немного по-другому.
3) Получилось.
__________________
Гайдар и другие экономисты поступили очень просто: представили потребности общества в виде решётки, а затем её сплющили.
CapOne вне форума  
Ответить с цитированием
Непрочитано 07.04.2003, 17:49   [включить плавающее окно]   #20
Darthman
Мужской Опытный
 
Аватар для Darthman
 
Регистрация: 10.02.2003
Адрес: Москва
Все проблемы решены?
__________________
Если работает, лучше не трогай!
Darthman вне форума  
Ответить с цитированием
Непрочитано 07.04.2003, 18:52   [включить плавающее окно]   #21
CapOne
Мужской Умудрённый
Автор темы
 
Аватар для CapOne
 
Регистрация: 08.02.2003
Адрес: Новосибирск
Пока да
__________________
Гайдар и другие экономисты поступили очень просто: представили потребности общества в виде решётки, а затем её сплющили.
CapOne вне форума  
Ответить с цитированием
Непрочитано 22.04.2003, 14:50   [включить плавающее окно]   #22
CapOne
Мужской Умудрённый
Автор темы
 
Аватар для CapOne
 
Регистрация: 08.02.2003
Адрес: Новосибирск
Вот что из всего этого получилось: http://vadim.gczn.nsk.su/surf.rar.
CapOne вне форума  
Ответить с цитированием
Непрочитано 22.04.2003, 15:02   [включить плавающее окно]   #23
Darthman
Мужской Опытный
 
Аватар для Darthman
 
Регистрация: 10.02.2003
Адрес: Москва
2CapOne:
зря двойную буферизацию не задействовал. Не мерцало бы...
__________________
Если работает, лучше не трогай!
Darthman вне форума  
Ответить с цитированием
Непрочитано 22.04.2003, 16:22   [включить плавающее окно]   #24
CapOne
Мужской Умудрённый
Автор темы
 
Аватар для CapOne
 
Регистрация: 08.02.2003
Адрес: Новосибирск
Там все на 100% software.
Как предлагаешь эту буферизацию задействовать?
__________________
Гайдар и другие экономисты поступили очень просто: представили потребности общества в виде решётки, а затем её сплющили.
CapOne вне форума  
Ответить с цитированием
Непрочитано 22.04.2003, 16:34   [включить плавающее окно]   #25
Darthman
Мужской Опытный
 
Аватар для Darthman
 
Регистрация: 10.02.2003
Адрес: Москва
Ну простейший метод - это рисовать в битам (в памяти) и делать bitblt
Второй вариант (часто не прокатывает и тормозит больше) это задать панели или форме, на которой это нарисовано придать значение DoubleBuffered = true.
__________________
Если работает, лучше не трогай!
Darthman вне форума  
Ответить с цитированием
Непрочитано 22.04.2003, 17:12   [включить плавающее окно]   #26
CapOne
Мужской Умудрённый
Автор темы
 
Аватар для CapOne
 
Регистрация: 08.02.2003
Адрес: Новосибирск
10x
__________________
Гайдар и другие экономисты поступили очень просто: представили потребности общества в виде решётки, а затем её сплющили.
CapOne вне форума  
Ответить с цитированием
Ответ Создать новую тему

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 13:37. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 2000-2017 3DNews. All Rights Reserved.
Администрация 3DNews требует соблюдения на форуме правил и законов РФ
Серверы размещены в Hostkey