Newsgroup: it.comp.lang.delphi
Titolo: Dov'è il bug????

 Sto impazzendo.
Qualcuno vole fare la mia fine ???
Provate questo sorgente.... (inquinata ??)
Ciao.
//-------------------------------------------------------------------
unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, 
Forms,
  Dialogs;
type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure FormPaint(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    aPointsStatic:  array[0..3] of TPoint;
    aPointsDinamyc: array       of TPoint;
    rgnStatic,rgnDinamyc:HRGN;
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
     // Working with a static array
     aPointsStatic[0].X:=  0; aPointsStatic[0].Y:=  0;
     aPointsStatic[1].X:=100; aPointsStatic[1].Y:=  0;
     aPointsStatic[2].X:=100; aPointsStatic[2].Y:=100;
     aPointsStatic[3].X:=  0; aPointsStatic[3].Y:=100;
     rgnStatic:=CreatePolygonRgn(aPointsStatic,4,WINDING);
     // Working with a dynamic array
     SetLength(aPointsDinamyc,4);
     // I wrote ...+100 for easier reading ....
     aPointsDinamyc[0].X:=  0+100; aPointsDinamyc[0].Y:=  0+100;
     aPointsDinamyc[1].X:=100+100; aPointsDinamyc[1].Y:=  0+100;
     aPointsDinamyc[2].X:=100+100; aPointsDinamyc[2].Y:=100+100;
     aPointsDinamyc[3].X:=  0+100; aPointsDinamyc[3].Y:=100+100;
     rgnDinamyc:=CreatePolygonRgn(aPointsDinamyc,4,WINDING);
end;
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
Var s:String;
begin
     s:='X '+IntToStr(x)+'  Y '+IntToStr(Y);
     if PtInRegion(rgnStatic,x,y)  then s:='In Static region   ('+s+' )';
     if PtInRegion(rgnDinamyc,x,y) then s:='In Dynamic region   
('+s+' )';
     Caption:=s;
end;
procedure TForm1.FormPaint(Sender: TObject);
begin
     Canvas.Pen.Color:=clYellow;
     Canvas.Brush.Color:=clYellow;
     Canvas.Rectangle(aPointsStatic[0].X,aPointsStatic[0].Y, 
aPointsStatic[2].X,aPointsStatic[2].Y);
     //
     Canvas.Brush.Color:=clLime;
     Canvas.Pen.Color:=clLime;
     Canvas.Rectangle(aPointsDinamyc[0].X,aPointsDinamyc[0].Y, 
aPointsDinamyc[2].X,aPointsDinamyc[2].Y);
end;
end.
//-------------------------------------------------------------------
AtcBrambo
--- posted by geoForum on 
http://www.delphiedintorni.it

Cosa non va ? Tanto per non dover copiare e compilare il codice che hai 
postato ?


Utilizzando array dinamici la funzione
CreatePolygonRgn(aPointsDinamyc,4,WINDING);
mi ritorna zero e quindi errore ... ma quale ...
Grazie
AtcBrambo


 Qualcuno vole fare la mia fine ???
<CUT>
Se vogliamo vedere .... non funziona nemmeno la parte dell'array statico 
:)))
cmq il problema è dall'help:
HRGN CreatePolygonRgn(
     CONST POINT *lppt,	// pointer to array of points
     int cPoints,	// number of points in array
     int fnPolyFillMode 	// polygon-filling mode
    );
il primo parametro è un puntatore
tu hai usato
    rgnStatic:=CreatePolygonRgn(aPointsStatic,4,WINDING);
dunque in base al (*) l'uso corretto è
    rgnStatic:=CreatePolygonRgn(aPointsStatic[0],4,WINDING);
a meno di aver detto una cavolata cosi' dovrebbe funzionare
Saluti Goblin
-- 
Ibis et redibis non morietur in bellum.

No. La parte con Static funziona. E anche bene.
Forse il problema risiede nella formattazione del testo che compilando 
da errore. Ma ti posso garantire che funziona. 
Andrew De La Forge credo possa confermare.
Ciao


Ma dove l' hai trovata questa 
3DCreatePolygonRgn ????
Delphi non accetta nomi di funzioni che iniziano con un numero ....
Boh.... scusa la mia ignoranza.... in caso ....


 Forse il problema risiede nella formattazione del testo che compilando 
Yes hai ragione ...
Mi sono accorto dopo che ho fatto un copia e incolla sbagliato :P


 3DCreatePolygonRgn ????
????
3DCreatePolygonRgn non mi sembra di averlo mai scritto
e cmq con
rgnDinamyc:=CreatePolygonRgn(aPointsDinamyc[0],4,WINDING);
a me funziona :)


Saluti Goblin
Ma sei QUEL Goblin? :D

 
Ciao Log ... se conosci Juza .... SI!


Ciao Log ... se conosci Juza .... SI!
ROTFL ROTFL ROTFL :D