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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 10.04.2010, 12:36
nikki4 nikki4 вне форума
Прохожий
 
Регистрация: 07.04.2010
Сообщения: 10
Репутация: 10
По умолчанию Несколько вопросов про: radiogroup и про клик мышки

Здравствуйте.
Возникло несколько вопросов..

1) На форме есть radiogroupы. Нужно, чтобы после того как пользователь поставил кружочки, при следующем запуске программки они оставались там же и не приходилось повторно указывать параметры Как это сделать?

2) Как сделать, чтобы в зависимости от выбора варианта в radiogroup edit1.text.enabled становился тру, либо не тру? (поставлю один кружочек - тру, поставлю другой - не тру)


3) Как делается такое?:
Пользователь нажимает на кнопку, после чего кликает курсором на экране и переменной присваивается значения координат где был клик



4)
Код:
SetCursorPos(x0,y0);
Mouse_Event(MOUSEEVENTF_LEFTDOWN, x0, y0, 0, 0);
Mouse_Event(MOUSEEVENTF_LEFTUP, x0, y0, 0, 0);
Как сделать так, что бы это работало при свернутом окне? (я делаю прогу, которая будет выполнять некоторые действия в игре, но сейчас она работает, только если окно развернуто и ничего не загораживает.. а -хотелось бы, чтобы можно было свернуть окно и заниматься другими делами, в то время как прога бы делала некоторые действия в игре)

Последний раз редактировалось nikki4, 10.04.2010 в 12:48.
Ответить с цитированием
  #2  
Старый 10.04.2010, 13:03
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

1. Запоминать состояние компонентов в файл при завершении приложения и восстанавливать при старте. Если компонентов довольно много удобно воспользоваться классом TINIFile.
2. Так и делать, обработать событие OnChange для ваших радиогруп.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #3  
Старый 10.04.2010, 13:14
nikki4 nikki4 вне форума
Прохожий
 
Регистрация: 07.04.2010
Сообщения: 10
Репутация: 10
По умолчанию

1. А как запомнить? Чтоб например при нажатии на кнопку сохранить , создавался текстовый файл в который сохранялись значения эдитов, а потом при открытии формы, автоматически загружалось оттуда?

2. А где это событие?
Там только есть
onclick
oncontextpop
ondragdrop
ondragover
onenddock
onenddrag
onenter
onexit
onstartdock
onstartdrag
popupmenu

Последний раз редактировалось nikki4, 10.04.2010 в 13:41.
Ответить с цитированием
  #4  
Старый 10.04.2010, 13:36
nikki4 nikki4 вне форума
Прохожий
 
Регистрация: 07.04.2010
Сообщения: 10
Репутация: 10
По умолчанию

Цитата:
Сообщение от nikki4
3) Как делается такое?:
Пользователь нажимает на кнопку, после чего кликает курсором на экране и переменной присваивается значения координат где был клик
проблема в том, что ен знаю как проверить нажата мышка или нет:

procedure TForm1.Button1Click(Sender: TObject);
begin
showmessage ('Кликните мышкой на ...');
if мышкой кликнули, то:
begin
GetCursorPos (mish);
edit1.text:=inttostr(mish.X);
edit2.Text:=inttostr(mish.Y);
end;
Ответить с цитированием
  #5  
Старый 10.04.2010, 15:30
Аватар для Adrenalin
Adrenalin Adrenalin вне форума
Прохожий
 
Регистрация: 10.04.2010
Сообщения: 8
Репутация: 10
По умолчанию

1)При закрытии программы на OnCloseQuery делаешь запись положения Radiobaton.Checked=true или false в INI файл. При запуске читаешь данные с INI файла.

2)Если я не ошибаюсь то в RadioGroup и так выбирается один из нескольких вариантов. Вот и делай на каждый из них (по идее у тебя их 2 будет. edit1.enabled:=Вкл\выкл).
Т.е. получается такая ботва:
procedure TForm1.RGClick(Sender: TObject);
begin
If RG.ItemIndex=0 then
Edit1.Enabled:=True;
If Rg.ItemIndex=1 then
Edit1.Enabled:=False;
end;

или вот примерчик. http://dump.ru/file/4511399

3) Если кликаешь на своей форме то достаточно просто на он клик по форме читать координаты. Пример:http://dump.ru/file/4511416
А если ты хочешь свернуть свое приложение и читать координаты на рабочем столе к примеру то нужно ставить хук, и перехватывать нажатия мыши.

4)В свернутом окне никак не выполнишь свой код.(это конкретно про игру)
А если в программу левую послать то можно. Из своей проги посылай sendmessage

Последний раз редактировалось Adrenalin, 10.04.2010 в 15:46.
Ответить с цитированием
  #6  
Старый 10.04.2010, 17:48
nikki4 nikki4 вне форума
Прохожий
 
Регистрация: 07.04.2010
Сообщения: 10
Репутация: 10
По умолчанию

1. нагуглил, нашел.. если кому интересно, вот как сохранять в ини файл:

Код:
Uses
   IniFiles,
...
 Private
    { Private declarations }
    Procedure ReadParams;
    Procedure WriteParams;
...
Procedure TForm1.ReadParams;
Var
IniFile: TIniFile;
Begin
IniFile := TIniFile.Create(ChangeFileExt(ParamStr(0),'.ini'));
Edit1.Text:=IniFile.ReadString('VOL','Id1',Edit1.Text);
IniFile.Free;
End;
Procedure TForm1.WriteParams;
Var
IniFile: TIniFile;
Begin
IniFile := TIniFile.Create(ChangeFileExt(ParamStr(0),'.ini'));
IniFile.WriteString('VOL','Id1',Edit1.Text);
IniFile.Free;
End;
Procedure TForm1.FormClose(Sender: TObject; Var Action: TCloseAction);
Begin
WriteParams;
End;
Procedure TForm1.FormCreate(Sender: TObject);
Begin
ReadParams;
End;

Работает, но почему-то только 1 раз.. т.е. закрываю -с сохраняется, открываю - загружается, закрываю - ничего не сохраняется
//удалил IniFile.Free; при записи, вроде теперь сохраняется постоянно


2. спасибо

3. а попроще нельзя? ладно.. напишу, типа: "наведите курсор мыши на кнопук и нажмите энтер.." тогда запишутся координаты

4. знаю простую примитивную прогу uopilot так там можно, неужели в делфи нельзя так?
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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