Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #6  
Antiguo 05-05-2008
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.210
Poder: 22
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Claro, Si simplemente has copiado el código, te faltan algunas cosas.
Debes definir una unidad completa con sus cabeceras...

Prueba a compilar este código tal cual, pero guardado en un archivo llamado Rotar.pas. Lo añades a tu proyecto....

Código Delphi [-]
unit Rotar;

//----------------------------------------------------------------------------------------
interface  

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

function Rotate(Canvas: TCanvas; Width, Height, iAngle: Integer; Back: LongBool): TBitmap;



//----------------------------------------------------------------------------------------
implementation  

function Rotate(Canvas: TCanvas; Width, Height, iAngle: Integer; Back: LongBool): TBitmap;
var
 Points: array [0..2] of TPoint;
 Radio, Angle, _Angle: Real;
begin
 Points[0] := Point(-Width, Height);
 Points[1] := Point(Width, Height);
 Points[2] := Point(-Width, -Height);
// Points[3] := Point(Width, -Height);
 Radio := Sqrt(Sqr(Width / 2) + Sqr(Height / 2));
 _Angle := (360 - (iAngle mod 360)) * pi / 180;
 iAngle := 3;
 repeat Dec(iAngle);
  Angle := ArcTan(Points[iAngle].Y / Points[iAngle].X) + _Angle;
  if Points[iAngle].X < 0 then
   Angle := Angle + Pi;
  Points[iAngle] := Point(Round((Cos(Angle) * Radio) + Radio), Round(Radio - (Sin(Angle) * Radio)));
 until not LongBool(iAngle);

 Result := TBitmap.Create;
 Result.TransparentColor := clFuchsia;
 Result.Canvas.Brush.Color := clFuchsia;
 iAngle := Round(Radio * 2);
 Result.Height := iAngle;
 Result.Width := iAngle;
 plgblt(Result.Canvas.Handle, Points, Canvas.Handle, 0, 0, Width, Height, 0, 0, 0);
 if Back then Result.Canvas.CopyRect(Rect(0, 0, iAngle, iAngle), Result.Canvas, Rect(iAngle-1, 0, 0, iAngle));
end;

end.
De esta forma seguro que compila
Saludos.



EDITO:

Tambien te compliará si en la linea uses colocas sólamente:
Código Delphi [-]
uses
  Windows, SysUtils, Classes, Graphics;

Última edición por escafandra fecha: 05-05-2008 a las 21:10:10.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como rotar una imagen en delphi x grados SIN DEFORMARLA? djmetroid Gráficos 14 27-05-2008 07:07:21
Rotar Imagen Rako Gráficos 5 23-11-2007 12:51:14
Rotar imagen jpg ElDioni Gráficos 6 09-11-2007 11:05:50
rotar una imagen sin parar jarscuba Gráficos 4 14-03-2005 09:51:31
Rotar una imagen zuriel_zrf Gráficos 2 29-12-2003 19:37:53


La franja horaria es GMT +2. Ahora son las 06:40:13.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi