• Viernes 29 de Marzo de 2024, 06:41

Autor Tema:  Linea en Tiempo de Ejecucion ???  (Leído 1764 veces)

okzoq

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Linea en Tiempo de Ejecucion ???
« en: Viernes 24 de Julio de 2009, 06:01 »
0
trate de crear una pero no sale  <_< ...
Citar
LINE linea
linea = CREATE LINE
linea.beginx = 0
linea.beginy = 0
linea.endx = 500
linea.endy = 500
// linea.show()
soy nuevo en esto y trato de realizar un pequeño grafico, ojala me puedan ayudar ...

Saludos  :hola:

nike425

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Linea en Tiempo de Ejecucion ???
« Respuesta #1 en: Jueves 30 de Julio de 2009, 22:03 »
0
q tal ... mmm ??? en Power Builder se puede utilizar funciones ubicadas en librerias .DLLs dentro de windows, a estas funciones se les denomina la API de Windows  :D

  • Declaras estas 3 funciones en 'Global External Functions' dentro de tu aplicacion
    Citar
    FUNCTION uLong GetDC (uLong hwnd) &
       LIBRARY "user32.dll" ALIAS FOR "GetDC; ansi"
       
    FUNCTION uLong LineTo (uLong hdc, uLong x, uLong y) &
       LIBRARY "gdi32.dll" ALIAS FOR "LineTo; ansi"

    FUNCTION uLong MoveToEx (uLong hdc, uLong x, uLong y, REF POINTAPI lpPoint) &
       LIBRARY "gdi32.dll" ALIAS FOR "MoveToEx; ansi"
  • Si te das cuenta la funcion 'MoveToEx' en el arg4 necesita una referencia a una estructura del tipo 'POINTAPI', por lo tanto creas una dentro de tu aplicacion.
    File -> New -> Pestaña 'PBObject' -> Structure  y Ok.
    Creas dos variables:
    Citar
    unsignedlong | X
    unsignedlong | Y
    y guardas la estructura como 'pointapi'

  • Utilizas las funciones API antes declaradas en tu codigo, ya tu ves en donde. Aqui te puse dos ejemplos.
    Dibujando una Linea:
    Citar
    uLong dc
    dc = GetDC(HANDLE(Parent))

    POINTAPI lpPoint // estructura POINTAPI
    lpPoint.x = 0; lpPoint.y = 0

    // Linea Simple
    MoveToEx(dc, 10, 10, lpPoint)
    LineTo(dc, 120, 50)
    Dibujando una funcion Seno:
    Citar
    uLong dc
    dc = GetDC(HANDLE(Parent))

    POINTAPI lpPoint // estructura POINTAPI
    lpPoint.x = 0; lpPoint.y = 0

    // Dibujando Sin(x)
    Integer dx, dy
    dx = 10; dy = 20
    Double pX, pY
    pX = 0 ;
    pY = Sin(pX/5) * 15
    MoveToEx(dc, dx + pX, dy + pY, lpPoint)
    FOR pX = 0 TO 100
       pY = Sin(pX/5) * 15
       LineTo(dc, dx + pX, dy + pY)
    NEXT
Aqui puedes ver como salieron las gráficas:
[attachment=0:3ct8zlmi]outImages.png[/attachment:3ct8zlmi]
Bueno espero que te sirva  :devil:, nos vemos  :good:

Salu2 !!!
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
« última modificación: Domingo 14 de Agosto de 2011, 00:46 por nike425 »

okzoq

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Linea en Tiempo de Ejecucion ???
« Respuesta #2 en: Viernes 31 de Julio de 2009, 07:20 »
0
hey nike425 :good: muchas gracias por la respuesta, tratare de implementarlo :comp:, te pasastes :beer:. Bye cuidate  :hola: