Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
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-02-2006
Avatar de Sergei
Sergei Sergei is offline
Miembro
 
Registrado: ene 2006
Posts: 12
Poder: 0
Sergei Va por buen camino
Question No se usar el label. Ayuda.

Hola, recien estoy ejercitando mi paso de Turbo Pascal a Delphi y ya tengo problemas. En mi Pascalito querido hacia algo como:


For i:= Low(Matriz) To High(Matriz) Do
Begin
Write(Matriz[i]);
Delay(1000); // mini pausa
End;


Para recorrer un simple array y mostrar su contenido, por ejemplo, 10 numeros. Quize hacer lo mismo en Delphi, pero solo "veo" el ultimo numero ingresado (10), y noo uno por uno (con intervalo de 1 segundo) como lo podia hacer con Turbo Pascal

No traje el codigo Delphi conmigo pero creo que era algo como :

For i:= 0 To 10 Do
Begin
Label1.Caption := IntToStr(Matriz[i]);
Sleep(1);
End;

y solo obtengo el ultimo numero en el Label.

Cómo debo hacer para colocar los numeros que se van incrementando uno al lado del otro dentro del mismo label?
Es algo muy tonto para el que ya sabe programar en Delphi, pero yo no logro encontrarle la vuelta.
Con ShowMessage si me resulta, porque me pone una por una las ventanas con el numero correspondiente, y el boton que al presionar Aceptar pasa a la otra iteraccion... Pero no es lo que busco dominar por ahora. Quiero hacer esto con un label.
Espero me hayan entendido, gracias.
Responder Con Cita
  #2  
Antiguo 02-02-2006
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
En lugar de Label1.Caption := IntToStr(Matriz[i]) puedes poner

Código Delphi [-]
Label1.Caption := Label1.Caption + IntToStr(Matriz[i]);

de esta forma vas "aumentando" lo que contiene el Label.


Al margen de esto, yo te recomiendo que te olvides de una buena vez de Turbo Pascal. En lugar de tratar de pasar ejemplos de TP a Delphi, búscate un libro de Delphi y estúdialo. Estudia también los ejemplos que vienen con Delphi, pero olvídate de seguir pensando "como antes"

// Saludos
Responder Con Cita
  #3  
Antiguo 03-02-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Por si tienes curiosidad tu codigo no funcionaba primero, porque mientras no sales del bucle el label no se actualiza. Y segundo pones un retrado de 1 milisegundo eso es un poco rapido.

Podrias probar con esto
Código:
For i:= 0 To 10 Do
  Begin
    Label1.Caption := IntToStr(Matriz[i]); 
    Application.ProcessMessages;
    Sleep(500);
  End;
Responder Con Cita
  #4  
Antiguo 06-02-2006
Avatar de Sergei
Sergei Sergei is offline
Miembro
 
Registrado: ene 2006
Posts: 12
Poder: 0
Sergei Va por buen camino
Cita:
Empezado por seoane
Por si tienes curiosidad tu codigo no funcionaba primero, porque mientras no sales del bucle el label no se actualiza. Y segundo pones un retrado de 1 milisegundo eso es un poco rapido.

Podrias probar con esto
Código:
For i:= 0 To 10 Do
  Begin
    Label1.Caption := IntToStr(Matriz[i]); 
    Application.ProcessMessages;
    Sleep(500);
  End;
Como que el label no se actualiza hasta que no salga del Loop???
Perdon que insista con Pascal, pero "ahi", en vez de un Label tendriamos algo
como:
For i := 1 To 10 Do
Write(Matriz[i]);

y la variable i que hace de indice, haria que se muestre todo el contenido del array, hasta que se llegue al 10.
No entiendo esto que me decis de que no se actualiza hasta salir del Loop.
Si no entendi mal, no se sale del loop hasta que este se termine. Salvo que forcemos la salida. Por otra parte, una vez que salgo del bucle FOR ya no vuelvo a este, y por lo tanto no se ejecutaria el label !!!
Que es lo que no entendi entonces ?
Responder Con Cita
  #5  
Antiguo 06-02-2006
Avatar de Sergei
Sergei Sergei is offline
Miembro
 
Registrado: ene 2006
Posts: 12
Poder: 0
Sergei Va por buen camino
Cita:
Empezado por roman
Al margen de esto, yo te recomiendo que te olvides de una buena vez de Turbo Pascal. En lugar de tratar de pasar ejemplos de TP a Delphi, búscate un libro de Delphi y estúdialo. Estudia también los ejemplos que vienen con Delphi, pero olvídate de seguir pensando "como antes"
// Saludos
No entendi esa parte de no seguir pensando "como antes", pero bueno, supongo que con el tiempo la entendere.
Por otra parte, no consigo libros de Delphi!!
No se de donde sos, pero en Buenos Aires, tenemos grandes cadenas de librerias (Como Cuspide y Drystal) y encontre libros de todos los lenguajes, incluso de Clipper !!!! pero ni uno de Delphi.
Bueno si, uno, pero era la version 4
En una feria de mi ciudad, encontre uno usado de Delphi 5, creo que era de Francisco Charte si no me equivoco. Algo asi me serviria para empezar?
Cuspide me trae el libro de Delphi que quiera desde España, pero amen del precio se encarece por traerme algo solo para mi, tardara un mes en llegar.
Que me aconsejas Roman?
Responder Con Cita
  #6  
Antiguo 06-02-2006
Avatar de Sergei
Sergei Sergei is offline
Miembro
 
Registrado: ene 2006
Posts: 12
Poder: 0
Sergei Va por buen camino
Cita:
Empezado por seoane
Podrias probar con esto
Código:
For i:= 0 To 10 Do
  Begin
    Label1.Caption := IntToStr(Matriz[i]); 
    Application.ProcessMessages;
    Sleep(500);
  End;
Queria contarte tambien que, mi Delphi se volvio loco!
Si talcual! Tenia este codigo que ves para cargar el array, y otro bucle For para mostrar el contenido del array, bien, en el segundo bucle, pretendia mostrar el contenido del array utilizando de nuevo la variable indice i, pero reinicializandola:
For i := 1 To 10
...

Pero voy a la ventana Watch y, la variable i tenia el valor 11 !!!
Ok, me resigne, entonces cree otra variable (tambien integer) llamada k que la usaria como indice en reemplazo de i
Corro el programa de nuevo y, adivina! Si, k tambien tomaba el valor 11 !!!
Como si fuera poco, la reinicializaba ANTES de iniciar el bocle FOR.

k := 0; //al inicio del programa
For K := 1 To 10
...

Pero esto no es nada, el punto maximo de locura fue cuando, reemplace el segundo for (el que deberia mostrar el contenido del array) por un bucle While; Cuando utilice While en vez de FOR, la variable k tomo el valor 1.
Lo dicho, mi compilador se volvio loco.
(Uso Delphi 6)
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
Ayuda al usar Rave Coco_jac Impresión 2 09-12-2005 18:08:06
Ayuda para empezar usar Internet en Delphi ggram2 Internet 3 09-11-2005 18:27:20
La increíble tecla F1 en Delphi dec Varios 1 31-08-2005 22:26:45
novato, ayuda para usar aplicacion en otro ordenador zastilla Conexión con bases de datos 2 25-07-2005 12:41:47
Ayuda :para usar eof alcides SQL 3 15-04-2004 04:42:39


La franja horaria es GMT +2. Ahora son las 05:59:01.


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