Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #16  
Старый 15.07.2011, 17:13
Аватар для Dem0Men
Dem0Men Dem0Men вне форума
Прохожий
 
Регистрация: 06.02.2011
Адрес: г. Ярославль
Сообщения: 26
Версия Delphi: 2007, XE
Репутация: 10
По умолчанию

Кидаешь Edit и процедуру

Код:
procedure TForm1.btn1Click(Sender: TObject);
begin
  Tmr1.Interval:= d; // интервал
 Tmr1.Enabled:= Not(Tmr1.Enabled); // вкл / выкл
end;

меняем на

Код:
procedure TForm1.btn1Click(Sender: TObject);
begin
  d                 := StrToInt(Edit1.Text) * 1000; //Время в таймере в милисекундах, а мы переводим в секунды 
  Tmr1.Interval := d; // интервал
  Tmr1.Enabled := not(Tmr1.Enabled); // вкл / выкл
end;

Как-то так.
p.s.
Цитата:
а как незнаю в школе учили тока в паскале абс=)
, а я вообще не знаю что такое PascalABC и в школе его не учил))))
__________________
Итерация от человека. Рекурсия — от Бога.

Последний раз редактировалось Dem0Men, 15.07.2011 в 17:17.
Ответить с цитированием
  #17  
Старый 15.07.2011, 17:24
Аватар для Viajero
Viajero Viajero вне форума
Активный
 
Регистрация: 14.06.2011
Адрес: РБ
Сообщения: 214
Версия Delphi: Delphi 7 FB 2.5
Репутация: 5849
По умолчанию

Цитата:
а я вообще не знаю что такое PascalABC и в школе его не учил))))
http://sunschool.math.sfedu.ru/pabc/
Ответить с цитированием
  #18  
Старый 15.07.2011, 20:33
Аватар для Dem0Men
Dem0Men Dem0Men вне форума
Прохожий
 
Регистрация: 06.02.2011
Адрес: г. Ярославль
Сообщения: 26
Версия Delphi: 2007, XE
Репутация: 10
По умолчанию

Цитата:
итоге скорость работы программы примерно в 20 раз медленнее скорости работы этой же программы, откомпилированной в среде Borland Pascal, и в 50 раз медленнее этой программы, откомпилированной в среде Borland Delphi.
Я (нверное, пока) не работал в PascalABC. И я не жалею!!
__________________
Итерация от человека. Рекурсия — от Бога.
Ответить с цитированием
  #19  
Старый 15.07.2011, 20:47
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Цитата:
В итоге скорость работы программы примерно в 20 раз медленнее...
А чего еще можно было ожидать от интерпретатора, тем более древнего?
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #20  
Старый 16.07.2011, 00:34
unity unity вне форума
Прохожий
 
Регистрация: 14.07.2011
Сообщения: 43
Репутация: -2279
По умолчанию

да нас в школе учили как там програмку написать для того чтоб узнать площадь прямоугольника и т д
так что знаю я его на самом так сказать школьном уровне)

Код:
d                 := StrToInt(Edit1.Text)
это наскоко я понял можно вставлять везде где хочеш чтоб значание задавалось вручную да (типо как readln(d) в паскалеАБС)

спс всем как чё нить придумую и несмогу реализовать спрашу=)

как сделать выбор кнопки ведь задать как нить через переменную нельзя
Код:
keybd_event(VK_F1, 0, 0, 0); // нажатие

вот чтоб можно было клавишу цифрой обозначить

какбы так
Код:
keybd_event(f, 0, 0, 0); // нажатие клавиш с числовым значением f (дапустим f=1233 а 1233 это код клавиши enter) 

есть какой простой способ сделать так чтоб можно было выбирать клавишу в самой программе?

Последний раз редактировалось unity, 16.07.2011 в 00:37.
Ответить с цитированием
  #21  
Старый 16.07.2011, 01:03
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Цитата:
Код:
d                 := StrToInt(Edit1.Text)
StrToInt - преобразует строковое значение в цифровое, если возможно.
Edit1 - контрол класса TEdit, позволяющий вводить любые цифро-буквенные символы, если не указано иное.
Цитата:
...а 1233 это код клавиши enter...
Клавиша Enter, описана константой VK_RETURN и другого выдумывать не нужно (читайте справку).
Цитата:
keybd_event(VK_F1, 0, 0, 0); // нажатие
Здесь определена клавиша F1 (F1 - VK_F1), определите нужную.
Цитата:
есть какой простой способ сделать так чтоб можно было выбирать клавишу в самой программе?
Есть.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #22  
Старый 16.07.2011, 15:19
ChinYan ChinYan вне форума
Тыкаю клавиши
 
Регистрация: 13.07.2009
Сообщения: 804
Версия Delphi:
Репутация: 48633
По умолчанию

unity, сударь, Вы так ничего не поймете и не запомните. Мы можем написать вам сотни строк кода, но пока вы не знакомы с основами языка, на котором собрались писать. Для начала советую почитать Культина "Delphi в задачах и примерах". После прочтения не будет вопросов, какой код куда вставлять, где взять то или это.
Код:
d:= StrToInt(Edit1.Text)
Числовой переменной d присваивается значение, содержащееся в свойстве Text контрола Edit1. StrToInt - функция, которая переводит строку в число. Аналогична паскалевской val
Ответить с цитированием
  #23  
Старый 16.07.2011, 22:23
unity unity вне форума
Прохожий
 
Регистрация: 14.07.2011
Сообщения: 43
Репутация: -2279
По умолчанию

у меня возник такой вопрос как узнать
HWND окна?
имени у окна нету
(мб есть какой спосаб узнать hwnd того окна который в фокусе
(переключиться на окно нажать дапустим пробел и програма запомнит его hwnd))

или у кого есть уже готовая програмка которая может узнавать hwnd
всех запушеных окон скиньте ссылку
Ответить с цитированием
  #24  
Старый 16.07.2011, 22:44
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Ссылку дать не могу, она уже "померла", а программу пожалуйста (исходники имеются):
Вложения
Тип файла: rar winfo.rar (22.2 Кбайт, 19 просмотров)
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.

Последний раз редактировалось angvelem, 16.07.2011 в 23:03.
Ответить с цитированием
  #25  
Старый 16.07.2011, 22:59
unity unity вне форума
Прохожий
 
Регистрация: 14.07.2011
Сообщения: 43
Репутация: -2279
По умолчанию

Цитата:
Сообщение от angvelem
Ссылку дать не могу, она уже "померла", а программу пожалуйста (исходники имеются):

как ей пользаваться?
я когда запуская выскакивает три ошибки потом запускаеться
программа но в списке неодного окна нету
ошибки:
1 library not loaded!
2 address hook not found
3 hook not installed!

вот ещё пасмотрите что тут нето (програмка по имени окна определяет его hwid)

Код:
procedure TForm1.okClick(Sender: TObject);
var
id:HWND;
t:string;
begin
 t:= string(nameWindows.Text);
 id:=FindWindow(nil,(t)); //скорее всего тут чтото нето т.к выделено красным 
 hwnd1.caption:=inttostr(id);
end;

Последний раз редактировалось unity, 16.07.2011 в 23:10.
Ответить с цитированием
  #26  
Старый 16.07.2011, 23:06
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Облажался, забыл библиотеку в архив положить. Пользование простое, оно так по-английски и написано на главной форме: Use right click to get information about any window
P.S. Архив перезалил.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #27  
Старый 16.07.2011, 23:27
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Цитата:
Сообщение от unity
вот ещё пасмотрите что тут нето
Смотрим справку по API для функции FindWindow
Цитата:
The FindWindow function retrieves the handle to the top-level window whose class name and window name match the specified strings. This function does not search child windows.

HWND FindWindow(
LPCTSTR lpClassName, // pointer to class name
LPCTSTR lpWindowName // pointer to window name
);


Parameters

lpClassName

Points to a null-terminated string that specifies the class name or is an atom that identifies the class-name string. If this parameter is an atom, it must be a global atom created by a previous call to the GlobalAddAtom function. The atom, a 16-bit value, must be placed in the low-order word of lpClassName; the high-order word must be zero.

lpWindowName

Points to a null-terminated string that specifies the window name (the window's title). If this parameter is NULL, all window names match.
и понимаем, что для API-шных функций нет понятия String, а только PChar.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #28  
Старый 16.07.2011, 23:38
unity unity вне форума
Прохожий
 
Регистрация: 14.07.2011
Сообщения: 43
Репутация: -2279
По умолчанию

Цитата:
Сообщение от angvelem
Смотрим справку по API для функции FindWindow

и понимаем, что для API-шных функций нет понятия String, а только PChar.

спс заработало!
и за прогу спс тока она недружит с програмой (точнее с игрой)
как тока я её запускаю в игре ошибка и окошко с выбором отправлять отчёт или нет

если какой нибуть ещё метод для определения hwnd?
у меня есть програма которая какимто оброзом определяет
(я думаючто что она определяет, так как с помощью неё я могу посылать этому окну каманды даже если окно свёрнуто и я работую в какой небудь другой программе)

а можно ли hwnd узнать по имени процесса?

Последний раз редактировалось unity, 16.07.2011 в 23:51.
Ответить с цитированием
  #29  
Старый 16.07.2011, 23:51
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Цитата:
Сообщение от unity
... тока она недружит с програмой ...
... если какой нибуть ещё метод для определения hwnd ...
... а можно ли hwnd узнать по имени процесса? ...
FindWindow, EnumWindows
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.

Последний раз редактировалось angvelem, 16.07.2011 в 23:58.
Ответить с цитированием
  #30  
Старый 17.07.2011, 00:44
unity unity вне форума
Прохожий
 
Регистрация: 14.07.2011
Сообщения: 43
Репутация: -2279
По умолчанию

а только по классу окна нельзя опредилить его hwnd
или по Id процеса?

также хотелось бы узнать как сделать окно полупразрачным?

и самй главный вопрос как сделать окно поверх всех окон
даже поверх игровых приложений?
(такое можно сделать, даже раньше у меня програмка такая
было выбираеш окно и оно становиться поверх любой игры)
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:16.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter