Тема: фотки
Показать сообщение отдельно
Старый 16.04.2010, 14:49   #38
cherepets
Бывалый
 
Регистрация: 18.08.2009
Сообщений: 745
Написано 146 полезных сообщений
(для 215 пользователей)
Ответ: фотки

ну, в смысл кода вдаваться не буду, но думаю как-то так:
program bred;
Var    
i, key: integer;

procedure hren;
Var     
x,y, xi, yi,xs, ys, xs1, ys1, state: integer;
ris: image;
Begin
    ris
:=LoadImage('/image.png');
    
xi:=GetImageWidth(ris);
    
yi:=GetImageHeight(ris);
    
xs:=GetWidth;
    
ys:=GetHeight;
    
    
xs1:=GetStringWidth('Вверх');
    
ys1:=GetStringHeight('Вверх');
    
    
DrawImage(ris,x,y);Repaint;
    
    
repeat
        state
:=GetKeyClicked;
        
                                
                if 
state=KE_KEY4  then begin x:=x-20; if (x<xs-xi) then x:=xs-xi; end;
                if 
state=KE_KEY6  then begin x:=x+20; if (x>0) then x:=0; end;
                if (
state=KE_KEY2)  or (state=-6) then begin y:=y-20; if (y<ys-yi) then y:=ys-yi; end;
                if (
state=KE_KEY8)  or (state=-7) then begin y:=y+20; if (y>0) then y:=0; end;
                
                
DrawImage(ris,x,y); 
                
                
SetColor(0, 0, 255); 
                
FillRect(xs-xs1,ys-ys1,xs1,ys1); FillRect(0,ys-ys1,xs1,ys1); 
                
                
SetColor(0, 255, 0); 
                
DrawText('Вниз',xs-xs1+5,ys-ys1);
                
DrawText('Вверх',0,ys-ys1);
        
         
Repaint;
         
Delay(20);
    
until false;
End;

Begin
repeat
 key
:=GetKeyClicked; 
 if 
key=ke_key5 then 
 begin 
  
if i=4 then hren;
  
i:=i+1; 
 
end; 
 if 
key=ke_key1 then 
  i
:=0;
 
until key=ke_pound;
  
end. 
(Offline)
 
Ответить с цитированием