Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > Lazarus, FreePascal, Kylix, etc.
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-06-2007
Avatar de walito
walito walito is offline
Miembro
 
Registrado: jun 2005
Posts: 121
Poder: 19
walito Va por buen camino
Problemas con lazarus

Buenas, les cuento el inconveniente que estoy teniendo para ver si alguno le paso alguna vez.

Resulta que el siguiente codigo anda en delphi pero no en lazarus:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  array1: array of byte;
  txt: string;
begin
    SetLength(array1, 20);
    ZeroMemory(@array1[0], high(array1));

    txt := 'hola mundo';

    StrPLCopy(@array1[0], txt, High(array1));
end;

este ejemplo lo encontre en el foro y en delphi anda bien, ahora en lazarus me da la impresion que el SetLength no funciona ya que hace cualquier cosa, por empezar no me setea a la longitud que yo quiero y el ZeroMemory no me pone en #0 los valores.

Que puede ser? ya no se que mas buscar, en la pagina de la documentacion del freepascal sale que se usa asi pero ami no me anda.

Algun TIP por ahi?

Gracias
Responder Con Cita
  #2  
Antiguo 21-06-2007
Robert01 Robert01 is offline
Miembro
 
Registrado: feb 2006
Ubicación: Córdoba, Argentina
Posts: 895
Poder: 19
Robert01 Va por buen camino
Que es ZeroMemory? Es un procedure? Yo no entiendo lo que hiciste ahí, está poco claro.

Yo definiría fuera del evento click del botón. Además me parece que tendrías que difinir lo que es ZeroMemory salvo que yo esté equivocado.

Saludos
Responder Con Cita
  #3  
Antiguo 21-06-2007
Robert01 Robert01 is offline
Miembro
 
Registrado: feb 2006
Ubicación: Córdoba, Argentina
Posts: 895
Poder: 19
Robert01 Va por buen camino
El código compila sin errores en Lazarus. Mira si agregaste Windows en uses

Código Delphi [-]
Uses Windows;


Además se requiere definir la constante MAX_LENGTH
Código Delphi [-]
MAX_LENGTH = 10;


Saludos
Responder Con Cita
  #4  
Antiguo 21-06-2007
Avatar de walito
walito walito is offline
Miembro
 
Registrado: jun 2005
Posts: 121
Poder: 19
walito Va por buen camino
Cita:
Empezado por Robert01
Que es ZeroMemory? Es un procedure? Yo no entiendo lo que hiciste ahí, está poco claro.

Yo definiría fuera del evento click del botón. Además me parece que tendrías que difinir lo que es ZeroMemory salvo que yo esté equivocado.

Saludos
Estimado, ZeroMemory lo que hace es poner el array en 0 todos sus elementos.
Responder Con Cita
  #5  
Antiguo 21-06-2007
Avatar de walito
walito walito is offline
Miembro
 
Registrado: jun 2005
Posts: 121
Poder: 19
walito Va por buen camino
Cita:
Empezado por Robert01
El código compila sin errores en Lazarus. Mira si agregaste Windows en uses

Código Delphi [-]Uses Windows;



Además se requiere definir la constante MAX_LENGTH
Código Delphi [-]MAX_LENGTH = 10;



Saludos

Si, compilar compila bien, pero si haces un seguimiento linea por linea y vas inspeccionando vas a ver que hace cualquier cosa.

Por empesar cuando setea la longitud e inspeccionas vas a ver que no hace nada.
Responder Con Cita
  #6  
Antiguo 21-06-2007
Robert01 Robert01 is offline
Miembro
 
Registrado: feb 2006
Ubicación: Córdoba, Argentina
Posts: 895
Poder: 19
Robert01 Va por buen camino
Hola

Yo probé con el codigo que había en delphi en el foro (el que usa el memo, etc) y en lazarus anda perfectamente bien.

Debes tener en cuenta que lazarus no es un clon de delphi, hay cosas que son diferentes, posiblemente haya que cambiar algunas cosas.

Si tengo tiempo más tarde voy a ver que es lo que está pasando.

En la guía de conversión de código de delphi a lazarus hay algunas pautas sobre como pasar punteros, etc. No se si la has leído.

Posiblemente este sea un problema de ese tipo.

Saludos
Responder Con Cita
  #7  
Antiguo 21-06-2007
Avatar de walito
walito walito is offline
Miembro
 
Registrado: jun 2005
Posts: 121
Poder: 19
walito Va por buen camino
Cita:
Empezado por Robert01
Hola

Yo probé con el codigo que había en delphi en el foro (el que usa el memo, etc) y en lazarus anda perfectamente bien.

Debes tener en cuenta que lazarus no es un clon de delphi, hay cosas que son diferentes, posiblemente haya que cambiar algunas cosas.

Si tengo tiempo más tarde voy a ver que es lo que está pasando.

En la guía de conversión de código de delphi a lazarus hay algunas pautas sobre como pasar punteros, etc. No se si la has leído.

Posiblemente este sea un problema de ese tipo.

Saludos
Ah!! ese tip me interesa, donde esta?? igual en este LINK que es la doc de lazarus explica y es igual q delphi por eso me parece raro, pero por favor si tenes ese link me lo podrias compartir?

gracias
Responder Con Cita
  #8  
Antiguo 21-06-2007
Robert01 Robert01 is offline
Miembro
 
Registrado: feb 2006
Ubicación: Córdoba, Argentina
Posts: 895
Poder: 19
Robert01 Va por buen camino
Mirá estas páginas

1
2
3

Supongo que has buscado en wiki sobre lazarus. Yo he estado probando, he traducido varios ejemplos de aplicaciones. Siempre surgen dificultades pero esto es algo con lo que hay que contar.

Saludos
Responder Con Cita
  #9  
Antiguo 24-06-2007
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Cool Ok

Cita:
Empezado por Robert01
...Debes tener en cuenta que lazarus no es un clon de delphi, hay cosas que son diferentes, posiblemente haya que cambiar algunas cosas.
No es un clon, puede que sea basado en la IDE y el lenguaje pero eso no lo hace un clon, en definitiva hay que cambiar cosillas; Me baje el Lazarus, y podré ayudarte... pudiste lo del "hello world"? qué quieres hacer?

Saludos
Responder Con Cita
  #10  
Antiguo 24-06-2007
Avatar de walito
walito walito is offline
Miembro
 
Registrado: jun 2005
Posts: 121
Poder: 19
walito Va por buen camino
Ya lo solucione, por lo menos una function.
El ZeroMemory de delhpi es el FillByte en lazarus, ojo que es para mi caso.

Hay mas de FillChar, etc.

Estaba haciendo un server que empeze en windows pensando que era portable, pero NO!, cambian muchas cosas.

Recomiendo que si van hacer algo que es para Windows, lo hagan en windows, si van hacer algo para Linux lo hagan en linux, esto ya para cosas un poco mas complejas. Si van hacer unos Fomrs no hay drama.

Gracias a todos y saludos.
Responder Con Cita
  #11  
Antiguo 24-06-2007
Robert01 Robert01 is offline
Miembro
 
Registrado: feb 2006
Ubicación: Córdoba, Argentina
Posts: 895
Poder: 19
Robert01 Va por buen camino
Cita:
Empezado por walito
Recomiendo que si van hacer algo que es para Windows, lo hagan en windows, si van hacer algo para Linux lo hagan en linux, esto ya para cosas un poco mas complejas.
A ese problema ya lo he tenido, por ejemplo con el procedure polybezier:

En unit windows

Código Delphi [-]
polybezier(image1.canvas.handle, BB, NB2+1);


En unit Graphics esta

Código Delphi [-]
procedure PolyBezier(Points: PPoint; NumPts: Integer;Filled: boolean = False;

Pero en lazarus para linux polybezier es diferente a estas dos

Saludos
Responder Con Cita
  #12  
Antiguo 24-06-2007
Robert01 Robert01 is offline
Miembro
 
Registrado: feb 2006
Ubicación: Córdoba, Argentina
Posts: 895
Poder: 19
Robert01 Va por buen camino
Perdón pero cometí un error, en la unit windows de lazarus no hay procedure polybezier, me confundí con delphi.

saludos
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Lazarus 0.9.22 liberado. Ñuño Martínez Noticias 1 05-04-2007 07:07:13
¡ayuda, problemas al ejecutar lazarus! Robert01 Linux 2 28-09-2006 03:34:38
[Lazarus] GTK+-devel en SUSE. problema instalar lazarus de esa libreria. sakuragi Lazarus, FreePascal, Kylix, etc. 3 28-09-2006 03:31:09
Lazarus shaktale Varios 1 22-12-2003 19:27:52
Lazarus DJ VMan Varios 2 01-08-2003 23:54:56


La franja horaria es GMT +2. Ahora son las 05:00:22.


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