Следующая статья: Индикация статуса клавиш.
С помощью предлагаемого программного кода реализуется быстрый и примитивный способ вращения изображения. По крайней мере, это тоже выход из положения, поскольку Windows этого делать не умеет.
procedure RotateRight(BitMap: TImage); var FirstC, LastC, c, r: integer; procedure FixPixels(c, r: integer); var SavePix, SavePix2: tcolor; i, NewC, NewR: integer; begin SavePix:=Bitmap.Canvas.Pixels[c,r]; for i:=1 to 4 do begin Newc:=BitMap.height - r+1; Newr:=c; SavePix2:=BitMap.Canvas.Pixels[Newc, Newr]; Bitmap.Canvas.Pixels[Newc, Newr]:=SavePix; SavePix:=SavePix2; c:=NewC; r:=NewR; end; end; begin if BitMap.width<>BitMap.height then exit; BitMap.Visible:=False; with Bitmap.Canvas do begin FirstС:=0; LastС:=BitMap.width; for r:=0 to BitMap.height div 2 do begin for c:=FirstС to LastС do FixPixels(c, r); Inc(FirstC); Dec(LastC); end; end; BitMap.Visible:=True; end;
Примечание: Вращение происходит на 90 градусов вправо за одно выполнение процедуры. Не забудьте добавить компонент TImage на форму, загрузить изображение и передать TImage в качестве параметра в процедуру вращения.