Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-09-2004
Avatar de yusnerqui
yusnerqui yusnerqui is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuba
Posts: 679
Poder: 21
yusnerqui Va por buen camino
Regiones y arreglos dinámicos

Un saludo a todos, estoy tratando de hacer un programa que me cree una región a partir de una serie de puntos que le indique en tiempo de ejecución, estoy usando la función

Código Delphi [-]
var
  RG : HRGN;
begin
  RG := CreatePolygonRgn(PT,High(PT),ALTERNATE);
//PT es un arreglo de TPoint
end;
Resulta que necesito que este arreglo PT sea dinámico puesto que en tiempo de diseño no se la cantidad de puntos que va a tener mi región.

El hecho es que si el arreglo es estático lo hace perfecto, pero esto mismo con el arreglo dinámico no crea la región, ya comprobé que el arreglo dinámico se crea bien, y con los valores correctos.

No admite esta función arreglos dinámicos???

Alguna idea de como hacer lo que quiero???

De antemano mil gracias

Un saludo

__________________
Lo importante no es llegar primero, sino saber llegar.

Para que puedas llegar mejor lee la Guia de Estilo

Responder Con Cita
  #2  
Antiguo 02-09-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por yusnerqui

Alguna idea de como hacer lo que quiero???
Sí.

En lugar de

Código Delphi [-]
RG := CreatePolygonRgn(PT, High(PT), ALTERNATE);

pon

Código Delphi [-]
RG := CreatePolygonRgn(Pointer(PT)^, Length(PT), ALTERNATE);

Cuando usas un arreglo dinámico, PT en realidad no es un arreglo sino un apuntador al arreglo por lo que hay que pasar la dirección a la que apunta.

Por cierto, usa Length y no High ya que High = Length - 1 (los arreglos dinámicos siempre están basados en 0).

// Saludos
Responder Con Cita
  #3  
Antiguo 02-09-2004
Avatar de yusnerqui
yusnerqui yusnerqui is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuba
Posts: 679
Poder: 21
yusnerqui Va por buen camino
Gracias

Mil gracias Román, funciona a la perfección.

Cita:
Empezado por Roman
Por cierto, usa Length y no High ya que High = Length - 1 (los arreglos dinámicos siempre están basados en 0).
que pena, ojalá y este hilo no lo lea mi jefe, pues me echaría por ignorante.

Gracias nuevamente Roman y un saludo.
__________________
Lo importante no es llegar primero, sino saber llegar.

Para que puedas llegar mejor lee la Guia de Estilo

Responder Con Cita
Respuesta



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


La franja horaria es GMT +2. Ahora son las 06:21:59.


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