Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 02.09.2010, 03:08   #11
ex.cluz
Участник клуба
 
Аватар для ex.cluz
 
Регистрация: 15.01.2010
Сообщений: 1,325
По умолчанию

Как это не работает??
Что за ошибку выдает?
Грибы - они разные. Один тебя накормит, другой тебе кино покажет...
Редактор журнала "
[ПРОграммист]"
Yan's Home Digital Lab
ex.cluz вне форума
Старый 02.09.2010, 03:14   #12
Obey177
Форумчанин
 
Регистрация: 29.08.2010
Сообщений: 159
По умолчанию

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Edit7: TEdit;
    Edit8: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  pt : TPoint;
  x: real;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
Button1.Tag := 0;
for X := 0 to StrToInt(Edit8.Text) do
  Form1.Left := 800;
  Form1.Top  := 40;
  SetWindowPos(FindWindow(nil, 'Lineage II'), HWND_TOP, 0, 0, 800, 800, SWP_SHOWWINDOW);
  Sleep(2000); // Æä¸ì, êîãäà òàì âñ¸ âûñòðîèòñÿ êàê íàäî
  GetCursorPos(pt);
    SetCursorPos(StrToInt(Form1.Edit1.Text), StrToInt(Form1.Edit2.Text)); // Ñòàâèì êóðñîð íà ïîëå ââîäà ïàðîëÿ
    GetCursorPos(pt);

    // Äâîéíîé êëèê íà ýí÷àíò
    Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, pt.X, pt.Y, 0, 0);
    Sleep(StrToInt(Form1.Edit7.Text));
    Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, pt.X, pt.Y, 0, 0);
    Sleep(StrToInt(Form1.Edit7.Text));
    Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, pt.X, pt.Y, 0, 0);
    Sleep(StrToInt(Form1.Edit7.Text));
    Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, pt.X, pt.Y, 0, 0);
    Application.ProcessMessages;

    Sleep(900);

      GetCursorPos(pt);
    SetCursorPos(StrToInt(Form1.Edit3.Text), StrToInt(Form1.Edit4.Text)); // Ñòàâèì êóðñîð íà ïîëå ââîäà ïàðîëÿ
    GetCursorPos(pt);

    // êëèê íà ïóõó
    Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, pt.X, pt.Y, 0, 0);
    Sleep(StrToInt(Form1.Edit7.Text));
    Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, pt.X, pt.Y, 0, 0);
    Sleep(StrToInt(Form1.Edit7.Text));

    Sleep(900);

     GetCursorPos(pt);
    SetCursorPos(StrToInt(Form1.Edit5.Text), StrToInt(Form1.Edit6.Text)); // Ñòàâèì êóðñîð íà ïîëå ââîäà ïàðîëÿ
    GetCursorPos(pt);

    // êëèê íà ÎÊ
    Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, pt.X, pt.Y, 0, 0);
    Sleep(StrToInt(Form1.Edit7.Text));
    Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, pt.X, pt.Y, 0, 0);
    Sleep(StrToInt(Form1.Edit7.Text));

    Sleep(900);

 Application.ProcessMessages;
  if Button1.Tag <> 0 then Break;
end.
правильноли я сделал?

Последний раз редактировалось artemavd; 02.09.2010 в 04:33.
Obey177 вне форума
Старый 02.09.2010, 03:19   #13
ex.cluz
Участник клуба
 
Аватар для ex.cluz
 
Регистрация: 15.01.2010
Сообщений: 1,325
По умолчанию

А что именно вы хотите реализовать в программе?
И зачем столько Sleep'ов?
Грибы - они разные. Один тебя накормит, другой тебе кино покажет...
Редактор журнала "
[ПРОграммист]"
Yan's Home Digital Lab
ex.cluz вне форума
Старый 02.09.2010, 03:28   #14
Obey177
Форумчанин
 
Регистрация: 29.08.2010
Сообщений: 159
По умолчанию

ну это как бы кликер для онлайн игры а она иногда глючит и пришлось сделать слипы

так в чем ошибка?

Последний раз редактировалось artemavd; 02.09.2010 в 04:33.
Obey177 вне форума
Старый 02.09.2010, 03:33   #15
ex.cluz
Участник клуба
 
Аватар для ex.cluz
 
Регистрация: 15.01.2010
Сообщений: 1,325
По умолчанию

Ошибку, которую можно определить на первый взгляд, пометил красным:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
Button1.Tag := 0;
for X := 0 to StrToInt(Edit8.Text) do
begin
Form1.Left := 800;
Form1.Top := 40;
SetWindowPos(FindWindow(nil, 'Lineage II'), HWND_TOP, 0, 0, 800, 800, SWP_SHOWWINDOW);
Sleep(2000); // Æä¸ì, êîãäà òàì âñ¸ âûñòðîèòñÿ êàê íàäî
GetCursorPos(pt);
SetCursorPos(StrToInt(Form1.Edit1.T ext), StrToInt(Form1.Edit2.Text)); // Ñòàâèì êóðñîð íà ïîëå ââîäà ïàðîëÿ
GetCursorPos(pt);

// Äâîéíîé êëèê íà ýí÷àíò
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, pt.X, pt.Y, 0, 0);
Sleep(StrToInt(Form1.Edit7.Text));
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, pt.X, pt.Y, 0, 0);
Sleep(StrToInt(Form1.Edit7.Text));
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, pt.X, pt.Y, 0, 0);
Sleep(StrToInt(Form1.Edit7.Text));
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, pt.X, pt.Y, 0, 0);
Application.ProcessMessages;

Sleep(900);

GetCursorPos(pt);
SetCursorPos(StrToInt(Form1.Edit3.T ext), StrToInt(Form1.Edit4.Text)); // Ñòàâèì êóðñîð íà ïîëå ââîäà ïàðîëÿ
GetCursorPos(pt);

// êëèê íà ïóõó
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, pt.X, pt.Y, 0, 0);
Sleep(StrToInt(Form1.Edit7.Text));
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, pt.X, pt.Y, 0, 0);
Sleep(StrToInt(Form1.Edit7.Text));

Sleep(900);

GetCursorPos(pt);
SetCursorPos(StrToInt(Form1.Edit5.T ext), StrToInt(Form1.Edit6.Text)); // Ñòàâèì êóðñîð íà ïîëå ââîäà ïàðîëÿ
GetCursorPos(pt);

// êëèê íà ÎÊ
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, pt.X, pt.Y, 0, 0);
Sleep(StrToInt(Form1.Edit7.Text));
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, pt.X, pt.Y, 0, 0);
Sleep(StrToInt(Form1.Edit7.Text));

Sleep(900);

Application.ProcessMessages;
if Button1.Tag <> 0 then Break;
end;
end.
Я бы не рекомендовал использовать Sleep, потому что он здорово нагружает процессор. Лучше Timer использовать, но с ним надо уметь обращаться.

На будущее. Оформляйте код правильно, используя кнопку с нарисованной решеткой.
Грибы - они разные. Один тебя накормит, другой тебе кино покажет...
Редактор журнала "
[ПРОграммист]"
Yan's Home Digital Lab

Последний раз редактировалось ex.cluz; 02.09.2010 в 03:35.
ex.cluz вне форума
Старый 02.09.2010, 03:44   #16
Obey177
Форумчанин
 
Регистрация: 29.08.2010
Сообщений: 159
По умолчанию

все сделал как ты сказал но выдает Internal error C1091 в строке с эндом последним и еще одну выдает в 39 строке...
Obey177 вне форума
Старый 02.09.2010, 03:45   #17
ex.cluz
Участник клуба
 
Аватар для ex.cluz
 
Регистрация: 15.01.2010
Сообщений: 1,325
По умолчанию

На какой строке?

Дык надо переменную сначала описать:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  X: integer;
begin
Button1.Tag := 0;
//и т.д.
Это насчет 39 строки, а по поводу последнего энда - а сколько их в конце у вас стоит подряд? Должно быть три.
Грибы - они разные. Один тебя накормит, другой тебе кино покажет...
Редактор журнала "
[ПРОграммист]"
Yan's Home Digital Lab

Последний раз редактировалось ex.cluz; 02.09.2010 в 04:04.
ex.cluz вне форума
Старый 02.09.2010, 03:55   #18
Obey177
Форумчанин
 
Регистрация: 29.08.2010
Сообщений: 159
По умолчанию

на последней где энд и на 39

на 39 for loop control variable mustbi simple local variable

Последний раз редактировалось artemavd; 02.09.2010 в 04:33.
Obey177 вне форума
Старый 02.09.2010, 03:59   #19
ex.cluz
Участник клуба
 
Аватар для ex.cluz
 
Регистрация: 15.01.2010
Сообщений: 1,325
По умолчанию

См. пост №22 + из объявления глобальных переменных Х надо убрать.

Короче, вот код:
Код:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Edit8: TEdit;
procedure Button1Click(Sender: TObject);
private
  pt : TPoint;
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;
begin
Button1.Tag := 0;
for i := 0 to StrToInt(Edit8.Text) do
begin
Form1.Left := 800;
Form1.Top := 40;
SetWindowPos(FindWindow(nil, 'Lineage II'), HWND_TOP, 0, 0, 800, 800, SWP_SHOWWINDOW);
Sleep(2000); // Æä¸ì, êîãäà òàì âñ¸ âûñòðîèòñÿ êàê íàäî
GetCursorPos(pt);
SetCursorPos(StrToInt(Form1.Edit1.Text), StrToInt(Form1.Edit2.Text)); // Ñòàâèì êóðñîð íà ïîëå ââîäà ïàðîëÿ
GetCursorPos(pt);

// Äâîéíîé êëèê íà ýí÷àíò
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, pt.X, pt.Y, 0, 0);
Sleep(StrToInt(Form1.Edit7.Text));
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, pt.X, pt.Y, 0, 0);
Sleep(StrToInt(Form1.Edit7.Text));
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, pt.X, pt.Y, 0, 0);
Sleep(StrToInt(Form1.Edit7.Text));
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, pt.X, pt.Y, 0, 0);
Application.ProcessMessages;

Sleep(900);

GetCursorPos(pt);
SetCursorPos(StrToInt(Form1.Edit3.T ext), StrToInt(Form1.Edit4.Text)); // Ñòàâèì êóðñîð íà ïîëå ââîäà ïàðîëÿ
GetCursorPos(pt);

// êëèê íà ïóõó
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, pt.X, pt.Y, 0, 0);
Sleep(StrToInt(Form1.Edit7.Text));
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, pt.X, pt.Y, 0, 0);
Sleep(StrToInt(Form1.Edit7.Text));

Sleep(900);

GetCursorPos(pt);
SetCursorPos(StrToInt(Form1.Edit5.T ext), StrToInt(Form1.Edit6.Text)); // Ñòàâèì êóðñîð íà ïîëå ââîäà ïàðîëÿ
GetCursorPos(pt);

// êëèê íà ÎÊ
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, pt.X, pt.Y, 0, 0);
Sleep(StrToInt(Form1.Edit7.Text));
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, pt.X, pt.Y, 0, 0);
Sleep(StrToInt(Form1.Edit7.Text));

Sleep(900);

Application.ProcessMessages;
if Button1.Tag <> 0 then Break;
end;
end;

end.
Копируйте целиком.

Ну как? Все пучком?
Грибы - они разные. Один тебя накормит, другой тебе кино покажет...
Редактор журнала "
[ПРОграммист]"
Yan's Home Digital Lab

Последний раз редактировалось artemavd; 02.09.2010 в 04:34.
ex.cluz вне форума
Старый 02.09.2010, 04:22   #20
Obey177
Форумчанин
 
Регистрация: 29.08.2010
Сообщений: 159
По умолчанию

да я по 22 посту догнал все норм спс ексклузив...а не подскажете как сделать чтобы по клику на кнопку энд на клаве программа останавливалась...
Obey177 вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кнопка _-Re@l-_ Общие вопросы Delphi 13 23.06.2010 18:16
Кнопка СОХРАНИТЬ!!!! Arinka Помощь студентам 5 23.05.2010 15:14
Командная кнопка Mishelka Microsoft Office Excel 1 07.05.2010 21:02
кнопка сброс Nellas Общие вопросы Delphi 2 21.10.2009 22:19