[Lazarus-es] M?s dudas
Javier Jait
javierjait en yahoo.com
Mie Nov 25 19:05:01 CET 2009
En cualquier caso podrías hacer una compilación condicional.
Por ejemplo:
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics,
Dialogs, StdCtrls
{$IFDEF Windows}
, Windows
{$ENDIF}
;
En el caso del Click.
{$IFDEF Windows}
GetComputerName (...)
{$ELSE}
// Procedimiento para conseguir el nombre de la PC en Linux
{$ENDIF}
Saludos
-----Mensaje original-----
De: Ismael L. Donis Garc?a [mailto:ismael en citricos.co.cu]
Enviado el: Miércoles, 25 de Noviembre de 2009 14:57
Para: Spanish version of Lazarus List
Asunto: Re: [Lazarus-es] M?s dudas
Perfecto. 1 millón de gracias.
Ahora abría que ver si esa referencia da error en LINUX, tengo debian 5
instalado pero no he podido instalar lazarus sobre él aun por problemas con
las dependencias.
Saludos
=========
¦¦ ISMAEL ¦¦
=========
----- Mensaje original -----
De: "Javier Jait" <javierjait en yahoo.com>
Para: "'Spanish version of Lazarus List'"
<lazarus-es en lists.lazarus.freepascal.org>
Enviado: miércoles, 25 de noviembre de 2009 10:13
Asunto: Re: [Lazarus-es] M?s dudas
Probaste usando la función "GetComputerName" que viene declarada en lazarus?
Yo hice una prueba, y funcionó bien.
Este es la prueba.
-------
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics,
Dialogs,
StdCtrls, Windows;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
var
pcComputer : PChar;
dwCSize : DWORD;
a : String;
begin
dwCSize := MAX_COMPUTERNAME_LENGTH + 1;
GetMem( pcComputer, dwCSize );
try
GetComputerName( pcComputer, dwCSize );
a:=pcComputer;
finally
FreeMem( pcComputer );
end;
ShowMessage (a);
end;
initialization
{$I unit1.lrs}
end.
------------------
Fijate que tenés que agregar el uses Windows, para que funcione, sino no
reconoce la función.
También te aclaro que lo estoy compilando en Windows XP.
Saludos
Javier
-----Mensaje original-----
De: Ismael L. Donis Garc?a [mailto:ismael en citricos.co.cu]
Enviado el: Miércoles, 25 de Noviembre de 2009 13:01
Para: Spanish version of Lazarus List
Asunto: Re: [Lazarus-es] M?s dudas
Pongo:
function GetComputerName(lpBuffer: PChar; nSize: DWORD):DWORD; stdcall;
external 'kernel32.dll' name 'GetComputerNameA';
Y me da el error:
udtmmp.pas(30,77) Error: Fields cannot appear after a method or property
definition, start a new visibility section first
udtmmp.pas(30,86) Fatal: Syntax error, ":" expected but "const string" found
Saludos reiterados
=========
¦¦ ISMAEL ¦¦
=========
----- Mensaje original -----
De: "Javier Jait" <javierjait en yahoo.com>
Para: "'Spanish version of Lazarus List'"
<lazarus-es en lists.lazarus.freepascal.org>
Enviado: martes, 24 de noviembre de 2009 05:09
Asunto: Re: [Lazarus-es] M?s dudas
Probaste agregar uses Windows;??
En el Lazarus está definida así:
function GetComputerName(lpBuffer:LPSTR; nSize:LPDWORD):WINBOOL; external
'kernel32' name 'GetComputerNameA';
Saludos
Javier
-----Mensaje original-----
De: Ismael L. Donis Garc?a [mailto:ismael en citricos.co.cu]
Enviado el: Martes, 24 de Noviembre de 2009 19:31
Para: Spanish version of Lazarus List
Asunto: Re: [Lazarus-es] M?s dudas
Me pide el valor de MAX_COMPUTERNAME_LENGTH aunque para mi entender debe ser
255
Y pienso que GetMem debe ser una función que tampoco tengo, al igual que
Windows.GetComputerName para lo cual pienso que debe haver alguna
declaración
Traté de poner:
Function GetComputerName Lib 'kernel32' Alias 'GetComputerNameA' (lpBuffer:
String, nSize: Long): Long
Pero me dió error. Además de no saber bien donde ubicar la declaración.
Saludos reiterados
=========
¦¦ ISMAEL ¦¦
=========
----- Mensaje original -----
De: "Claudio Romero" <clauslack en gmail.com>
Para: "Spanish version of Lazarus List"
<lazarus-es en lists.lazarus.freepascal.org>
Enviado: martes, 24 de noviembre de 2009 01:56
Asunto: Re: [Lazarus-es] Más dudas
Yo realizo algo parecido pero, utilizo los usuarios del Servidor
Firebird (o del que sea) y grabo los ingresos y salidas al servidor de
Base de datos con trigger(muy sencillo) Incluso los que ingresan con
un navegador (con páginas dinámicas)
Grabo estos datos:
usuario, fecha, hora, accion,coneccion,rol,IP_remoto,proceso_remoto
Si quieres buscar el nombre de la maquina, creo que debes hacer una
funcion para Windows, y otra para Linux.
En Windows obtener el nombre de la pc (funcionaba en Delphi)
function GetComputerName : String;
var
pcComputer : PChar;
dwCSize : DWORD;
begin
dwCSize := MAX_COMPUTERNAME_LENGTH + 1;
GetMem( pcComputer, dwCSize );
try
if Windows.GetComputerName( pcComputer, dwCSize ) then
Result := pcComputer;
finally
FreeMem( pcComputer );
end;
end;
En linux, esta el comando hostname, ifconfig y otros mas (podrias usar
TProcess)
No se si fpc tiene funciones para esto.
Pero me parece que con 2 trigers en la base es mas limpio, y transparente.
Lo otro es mas complicado de programar (ademas que te pueden cambiar
el nombre de la pc tranquilamente).
Saludos
_______________________________________________
Lazarus-es mailing list
Lazarus-es en lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
_______________________________________________
Lazarus-es mailing list
Lazarus-es en lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
_______________________________________________
Lazarus-es mailing list
Lazarus-es en lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
_______________________________________________
Lazarus-es mailing list
Lazarus-es en lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
_______________________________________________
Lazarus-es mailing list
Lazarus-es en lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
_______________________________________________
Lazarus-es mailing list
Lazarus-es en lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
More information about the Lazarus-es
mailing list