Foros Club Delphi

Foros Club Delphi (http://www.clubdelphi.com/foros/index.php)
-   Varios (http://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   ayuda con cargar datos de un archivo .dat (http://www.clubdelphi.com/foros/showthread.php?t=92885)

branncg 04-03-2018 04:49:22

ayuda con cargar datos de un archivo .dat
 
Hola a todos, tengo una duda, tengo un pequeño juego que consiste en comer manzanas para pasar de nivel, cada jugador registra su nombre y se le registra el tiempo en segundos en que tardó en pasar todos los niveles, hay una procedure que es para mostrar todos los nombres y todas las puntuaciones de todos los tiempos, este es el código:

Código Delphi [-]
procedure TJuegoPixel.mostrarpuntuaciones;
type
 jugador=record
   nombre:string[30];
   tiempo:integer;
 end;
var f:file of jugador;
r:jugador;c:integer;
begin
assignfile(f,'C:\Users\Brandon\Desktop\BRANDONCG\juego\imagenes\Datos.Dat');
reset(f);
c:=0;
while not eof(f) do begin
seek(f,c);
read(f,r);
showmessage(r.nombre+' '+inttostr(r.tiempo));
c:=c+1;
end;
end;

Funciona bien pero muestra primero una puntuación y nombre luego otra puntuacion y nombre, como pueden ver el showmessage hace ese ciclo hasta acabar de leer todo el archivo, ahora mi duda es: ¿cómo puedo hacer para que en lugar de mostrar varios showmessage, muestre una lista con todos los nombres de los jugadores y su tiempo(puntuacion), quizás en en memo o un edit?, pero al momento de querer poner un memo o un edit y al correr la aplicación, no capta los eventos del teclado(que son con los que funciona el juego), sino se va al memo o al edit(al que hubiera puesto) y espera que yo escriba algo en el, muchas gracias de antemano por su ayuda.(lo siento si al momento de poner el código no puse bien las etiquetas de código)

Ñuño Martínez 06-03-2018 12:47:46

Si configuras el "memo" para sólo lectura (readonly) no deberías tener problemas.

En cualquier caso, para desarrollar juegos no te recomiendo que uses la VCL. Mejor usa bibliotecas (o motores) específicamente diseñados para hacer juegos; así no tendrás que lidiar con problemas como este.

Si estás interesado en el desarrollo de videojuegos, pásate por http://www.pascalgamedevelopment.com. También puedes echar un vistazo al portal de desarrollo de videojuegos de la wiki de Lazarus (muchas bibliotecas y motores que hay ahí funcionan con Delphi).

ElDioni 06-03-2018 14:49:34

Supongo que también te servirá algo así.

Código Delphi [-]
var   
temp:string;  
begin    
  assignfile(f,'C:\Users\Brandon\Desktop\BRANDONCG\juego\imagenes\Datos.Dat');    
  reset(f);    
  c:=0;    
  temp:='';    
  while not eof(f) do         
    begin            
      seek(f,c);            
      read(f,r);            
      Temp:=temp+(r.nombre+' '+inttostr(r.tiempo)+#$A#$D;            
      c:=c+1;        
    end;    
  showmessage(temp);  
end;


Saludos.

branncg 22-03-2018 00:58:12

gracias a ambos por sus respuestas, me sirvió


La franja horaria es GMT +2. Ahora son las 21:05:31.

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