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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.10.2009, 19:58   #11
Deamonig
Форумчанин
 
Аватар для Deamonig
 
Регистрация: 19.09.2009
Сообщений: 166
По умолчанию

вместо
Код:
 if (key=ord('w')) and  (Image4.Top>0)
это:
Код:
if ((getkeystate(ord('w')) and 128)=128) and  (Image4.Top>0) 
then ...
Deamonig вне форума Ответить с цитированием
Старый 23.10.2009, 19:58   #12
Gapro
Форумчанин
 
Регистрация: 30.07.2009
Сообщений: 256
По умолчанию

Первый кусок отвечает за движение первой image1, а второй за движение image4. image1 нормально двигается, а image4 никак, пробовал подставлять (key=ord('w')) в код движения image1, но также не работает

Цитата:
if key=87 then
....
Тоже не работает
Gapro вне форума Ответить с цитированием
Старый 23.10.2009, 19:59   #13
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Цитата:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
ord лишний. работает
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 23.10.2009, 20:02   #14
Gapro
Форумчанин
 
Регистрация: 30.07.2009
Сообщений: 256
По умолчанию

Цитата:
((getkeystate(ord('w')) and 128)=128) and (Image4.Top>0)
then ...
Тоже не работает
Gapro вне форума Ответить с цитированием
Старый 23.10.2009, 20:04   #15
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

вместо
Код:
if (key=ord('w'))
Код:
if (key=ord('w')-32)
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 23.10.2009, 20:05   #16
Gapro
Форумчанин
 
Регистрация: 30.07.2009
Сообщений: 256
По умолчанию

Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Image1: TImage;
    Image2: TImage;
    Label1: TLabel;
    Image3: TImage;
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    N6: TMenuItem;
    N7: TMenuItem;
    N8: TMenuItem;
    N9: TMenuItem;
    Image4: TImage;
    Label3: TLabel;
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormCreate(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure N4Click(Sender: TObject);
    procedure N6Click(Sender: TObject);
    procedure N7Click(Sender: TObject);
    procedure N8Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1; k,score1,score2,vis: integer;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin

 if (key=VK_UP) and  (Image1.Top>0)
   then Image1.Top:=Image1.Top-8;
 if (key=VK_LEFT) and (Image1.Left>=3)
   then Image1.Left:=Image1.Left-8;
 if (key=VK_DOWN) and (Image1.Top+Image1.Height<Form1.Height-32)
   then Image1.Top:=Image1.Top+8;
 if (key=VK_RIGHT) and (Image1.Left + Image1.Width <= Form1.ClientWidth-7 )
   then Image1.Left:=Image1.Left+8;
 If score1 mod 2 = 0 then Begin
   If Image2.Visible=true Then Begin
    If (Image1.Top<=Image2.Top) and (image1.Left<=Image2.Left) and
       (Image1.Left+Image1.Width>=Image2.Left+Image2.Width) and
       (Image1.Top+Image1.Height>=Image2.Top+Image2.Height) then begin
        score1:=score1+1; Image2.Visible:=false;
        Label1.Caption:='Очки2'+ IntToStr(score1)+'%';
        Image2.Top:=Random(420)+50; Image2.Left:=Random(550)+40;
        Image3.Visible:=true; vis:=1
     end;
    end;
    end
   Else Begin
   If Image3.Visible=true Then Begin
    If (Image1.Top<=Image3.Top) and (image1.Left<=Image3.Left) and
       (Image1.Left+Image1.Width>=Image3.Left+Image3.Width) and
       (Image1.Top+Image1.Height>=Image3.Top+Image3.Height) then begin
        score1:=score1+1; Image3.Visible:=false;
        Label1.Caption:='Очки2'+ IntToStr(score1)+'%';
        Image3.Top:=Random(420)+50; Image3.Left:=Random(550)+40;
        Image2.Visible:=true; vis:=0;
     end;
  end;
  end;

 if (((getkeystate(ord('w')) and 128)=128)) and  (Image4.Top>0)
   then Image4.Top:=Image4.Top-8;
 if (key=ord('a')) and (Image4.Left>=3)
   then Image4.Left:=Image4.Left-8;
 if (key=VK_DOWN) and (Image4.Top+Image4.Height<Form1.Height-32)
   then Image4.Top:=Image4.Top+8;
 if (key=VK_RIGHT) and (Image4.Left + Image4.Width <= Form1.ClientWidth-7 )
   then Image4.Left:=Image4.Left+8;
 If score1 mod 2 = 0 then Begin
   If Image2.Visible=true Then Begin
    If (Image4.Top<=Image2.Top) and (image4.Left<=Image2.Left) and
       (Image4.Left+Image4.Width>=Image2.Left+Image2.Width) and
       (Image4.Top+Image4.Height>=Image2.Top+Image2.Height) then begin
        score2:=score2+1; Image2.Visible:=false;
        Label3.Caption:='Очки1'+ IntToStr(score2)+'%';
        Image2.Top:=Random(420)+50; Image2.Left:=Random(550)+40;
        Image3.Visible:=true; vis:=1
     end;
    end;
    end
   Else Begin
   If Image3.Visible=true Then Begin
    If (Image4.Top<=Image3.Top) and (image1.Left<=Image3.Left) and
       (Image4.Left+Image4.Width>=Image3.Left+Image3.Width) and
       (Image4.Top+Image4.Height>=Image3.Top+Image3.Height) then begin
        score2:=score1+1; Image3.Visible:=false;
        Label3.Caption:='Очки1'+ IntToStr(score2)+'%';
        Image3.Top:=Random(420)+50; Image3.Left:=Random(550)+40;
        Image2.Visible:=true; vis:=0;
     end;
  end;
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 Score1:=0; Score2:=0; Image3.Visible:=false;
end;

procedure TForm1.N2Click(Sender: TObject);
begin
 Close;
end;

procedure TForm1.N4Click(Sender: TObject);
begin
 Unit2.Form2.ShowModal;
end;

procedure TForm1.N6Click(Sender: TObject);
begin
Image2.Visible:=True; Image3.Visible:=false;
Score1:=0; Score2:=0;
Label1.Caption:='Очки1';
Label3.Caption:='Очки2';
end;
Gapro вне форума Ответить с цитированием
Старый 23.10.2009, 20:05   #17
Gapro
Форумчанин
 
Регистрация: 30.07.2009
Сообщений: 256
По умолчанию

Код:
procedure TForm1.N7Click(Sender: TObject);
 Var Reg: TRegIniFile;
begin
 Reg:=TRegIniFile.Create('Software');
 Reg.OpenKey('GaproGame',true);
 Reg.OpenKey('KATYA_ALIZA',true);
 If (score1<>0) and (score2<>0) then Begin
  Reg.WriteInteger('Save','Score1',score1);
  Reg.WriteInteger('Save','Score2',score2);
  Reg.WriteInteger('Save','Visible',vis);
 end;
 Reg.Free;
end;

procedure TForm1.N8Click(Sender: TObject);
 Var Reg: TRegIniFile;
begin
 Reg:=TRegIniFile.Create('Software');
 Reg.OpenKey('GaproGame',true);
 Reg.OpenKey('KATYA_ALIZA',true);
 Score1:=Reg.ReadInteger('Save','Score1',score1);
 Score2:=Reg.ReadInteger('Save','Score2',score2);
 Vis:=Reg.ReadInteger('Save','Visible',vis);
 If Vis=0 Then
    Begin
    Image2.Visible:=true;
    Image3.Visible:=false;
    end
 Else Begin
    Image2.Visible:=false;
    Image3.Visible:=true;
 end;
 Label1.Caption:='Очки2'+ IntToStr(score1)+'%';
 Label3.Caption:='Очки1'+ IntToStr(score2)+'%';
end;

end.
Интересно, что первый обьект двигается без проблем....

Последний раз редактировалось Gapro; 23.10.2009 в 20:10.
Gapro вне форума Ответить с цитированием
Старый 23.10.2009, 20:09   #18
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Вместо
Код:
if (key=ord('w'))
Код:
if (key=ord('W'))
В принципе одиночество то же самое сказал, но в непонятной форме =)
TwiX вне форума Ответить с цитированием
Старый 23.10.2009, 20:10   #19
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

Цитата:
одиночество то же самое сказал
сказала и почему в непонятной то?
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 23.10.2009, 20:11   #20
Gapro
Форумчанин
 
Регистрация: 30.07.2009
Сообщений: 256
По умолчанию

Ура, наконец то работает, спасибо!
Gapro вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Hot Key в ToolBar Impuls1989 Общие вопросы Delphi 7 13.10.2009 11:05
Key$2Bin depocomp Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 26.05.2009 10:35
Serial Key L.Morgan Общие вопросы Delphi 8 14.04.2009 18:05
key logger Terran Общие вопросы Delphi 1 30.01.2008 20:06