Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-07-2014
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.441
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Casimiro Notevi Ver Mensaje
pd: es que no se me ocurre un título descriptivo y no quiero enviarme un mensaje diciendo que escriba un título descriptivo porque entraría en un bucle sin fin


Esto es programación pura y dura... Ponte un flag para evitar la reentrada.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #2  
Antiguo 17-07-2014
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 23
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
santiago14,

Cita:
Empezado por santiago14
...tengo un StringList y quiero ponerle un valor y un objeto...pero a la hora de visualizarlo..devuelve basura...¿Qué estoy haciendo mal?...


Revisa estas variantes al código propuesto en el Msg #2 y que siguen la línea de diversas opciones propuestas en este hilo a tu requerimiento:
Código Delphi [-]
 unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  TData = Class(TObject)
    Item : String;
    Objeto : string;
  end;

  TReg = Record
    Item : String;
    Objeto : string;
  End;

const
   A1 : Array[0..3] of String = ('Item-1', 'Item-2', 'Item-3', 'Item-4');
   A2 : Array[0..3] of String = ('Objeto-1', 'Objeto-2', 'Objeto-3', 'Objeto-4');

var
  Form1: TForm1;

implementation

{$R *.dfm}

// Gestión de Listas de Datos por medio de TList y Objetos
procedure TForm1.Button1Click(Sender: TObject);
var
   List : TList;
   i : Integer;
   S1, S2 : String;
   Data : TData;

begin

   List := TList.Create;

   for i := 0 to 3 do
   begin
      Data := TData.Create;
      Data.Item := A1[i];
      Data.Objeto := A2[i];
      List.Add(Data)
   end;

   for i := 0 to List.Count - 1 do
   begin
      S1 := TData(List.Items[i]).Item;
      S2 := TData(List.Items[i]).Objeto;
      ShowMessage( S1 + ',' + S2);
   end;

   for i := 0 to List.Count - 1 do
      TData(List.Items[i]).Free;

   List.Free;

end;

// Gestión de Listas de Datos por medio de TStringList (Name = Value)
procedure TForm1.Button2Click(Sender: TObject);
var
   SL : TStringList;
   i : Integer;
   S1, S2 : String;

begin

   SL := TStringList.Create;

   for i := 0 to 3 do
      SL.Add(A1[i] + '=' + A2[i]);

   for i := 0 to 3 do
   begin
      S1 := SL.Names[i];
      S2 := SL.ValueFromIndex[i];
      ShowMessage( S1 + ',' + S2);
   end;

   SL.Free;

end;

// Gestión de Listas de Datos por medio de Arreglos Dinámicos y Registros
procedure TForm1.Button3Click(Sender: TObject);
var
   A3 : Array of TReg;
   i : Integer;
   S1, S2 : String;

begin

   for i := 0 to 3 do
   begin
      SetLength(A3,Length(A3)+1);
      A3[High(A3)].Item := A1[i];
      A3[High(A3)].Objeto := A2[i];
   end;

   for i := Low(A3) to High(A3) do
   begin
      S1 := A3[i].Item;
      S2 := A3[i].Objeto;
      ShowMessage( S1 + ',' + S2);
   end;

   Finalize(A3);

end;

end.
El código anterior en Delphi 7 bajo Windows 7 Professional x32, ejemplifica diferentes métodos para el manejo de listas de datos.

Nota: La entrada de datos es simulada con los arreglos de constantes A1 y A2 para facilitar las pruebas del código propuesto.

Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 17-07-2014 a las 22:38:34.
Responder Con Cita
  #3  
Antiguo 18-07-2014
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 23
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
santiago14,

Continuación del Msg #11

Revisa estas variantes complementarias al código propuesto en el Msg #2 y que siguen la línea de diversas opciones propuestas en este hilo a tu requerimiento:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Contnrs;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  TReg = Record
    Item : String;
    Objeto : String;
  End;

  TPtrLista = ^TLista;

  TLista = Record
    Item : String;
    Objeto : String;
    Next : TPtrLista;
  End;

const
   A1 : Array[0..3] of String = ('Item-1', 'Item-2', 'Item-3', 'Item-4');
   A2 : Array[0..3] of String = ('Objeto-1', 'Objeto-2', 'Objeto-3', 'Objeto-4');

var
  Form1: TForm1;

implementation

{$R *.dfm}

// Gestión de Listas de Datos por medio de Punteros
procedure TForm1.Button1Click(Sender: TObject);
var
   PtrLista, PriLista, UltLista, AuxLista : TPtrLista;
   S1, S2 : String;
   FirstPtr : Boolean;
   i : Integer;

begin

   FirstPtr := True;

   for i := 0 to 3 do
   begin

      New(PtrLista);
      PtrLista^.Item := A1[i];
      PtrLista^.Objeto := A2[i];
      PtrLista^.Next := nil;

      if FirstPtr then
      begin
         PriLista := PtrLista;
         FirstPtr := False;
      end
      else
         UltLista^.Next := PtrLista;

      UltLista := PtrLista;

   end;

   PtrLista := PriLista;

   while PtrLista <> nil do
   begin
      S1 := PtrLista^.Item;
      S2 := PtrLista^.Objeto;
      ShowMessage( S1 + ',' + S2);
      PtrLista := PtrLista^.Next;
   end;

   PtrLista := PriLista;

   while PtrLista <> nil do
   begin
      AuxLista := PtrLista^.Next;
      Dispose(PtrLista);
      PtrLista := AuxLista;
   end;

end;

// Gestión de Listas de Datos por medio de TList y Punteros
procedure TForm1.Button2Click(Sender: TObject);
var
   List : TList;
   i : Integer;
   S1, S2 : String;
   PReg : ^TReg;

begin

   List := TList.Create;

   for i := 0 to 3 do
   begin
      New(PReg);
      PReg^.Item := A1[i];
      PReg^.Objeto := A2[i];
      List.Add(PReg)
   end;

   for i := 0 to List.Count - 1 do
   begin
      S1 := TReg(List.Items[i]^).Item;
      S2 := TReg(List.Items[i]^).Objeto;
      ShowMessage( S1 + ',' + S2);
   end;

   for i := 0 to List.Count - 1 do
      Dispose(List.Items[i]);

   List.Free;

end;

// Gestión de Listas de Datos por medio de TQueue
procedure TForm1.Button3Click(Sender: TObject);
var
   Queue: TQueue;
   i : Integer;
   S1, S2 : String;
   PReg : ^TReg;

begin

   Queue:= TQueue.Create;

   for i := 0 to 3 do
   begin
      New(PReg);
      PReg^.Item := A1[i];
      PReg^.Objeto := A2[i];
      Queue.Push(PReg);
   end;

   for i := 0 to Queue.Count - 1 do
   begin
      PReg := Queue.Pop;
      S1 := PReg.Item;
      S2 := PReg.Objeto;
      ShowMessage( S1 + ',' + S2);
   end;

   Queue.Free;

end;

// Gestión de Listas de Datos por medio de TStack
procedure TForm1.Button4Click(Sender: TObject);
var
   Stack: TStack;
   i : Integer;
   S1, S2 : String;
   PReg : ^TReg;

begin

   Stack:= TStack.Create;

   for i := 0 to 3 do
   begin
      New(PReg);
      PReg^.Item := A1[i];
      PReg^.Objeto := A2[i];
      Stack.Push(PReg);
   end;

   for i := 0 to Stack.Count - 1 do
   begin
      PReg := Stack.Pop;
      S1 := PReg.Item;
      S2 := PReg.Objeto;
      ShowMessage( S1 + ',' + S2);
   end;

   Stack.Free;

end;

end.
El código anterior en Delphi 7 bajo Windows 7 Professional x32, ejemplifica diferentes métodos para el manejo de listas de datos.

Nota: El ejemplo basado en el tipo TStack no se adapta a tu requerimiento por ser una pila (LIFO-Last In First Out), fue puesto solo como complemento del ejemplo con el tipo TQueue (FIFO-First In First Out), el cual se adapta a lo solicitado.

Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 18-07-2014 a las 07:35:28.
Responder Con Cita
  #4  
Antiguo 18-07-2014
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.671
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
¡Qué completo y didáctico está resultando este hilo!
Incluso se podría preparar un sencillo tutorial explicando cada una de las propuestas planteadas, con sus ejemplos, código homogéneo, etc.
Pero eso para quien tenga tiempo y ganas
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Listas dinámicas para almacenar objetos noob OOP 2 17-07-2012 11:34:19
Almacenar y recuperar archivos binarios en BD PostgresSQL con ADO y ODBC KATODO Trucos 4 01-09-2008 00:08:24
Liberar memoria de objetos y listas aggg63 OOP 1 13-02-2008 17:35:08
Manejo de Multi-Listas (listas de listas) DelphiRat OOP 4 03-07-2006 19:42:58
Cómo almacenar, editar y recuperar una archivo de imagen guardado en la base de datos JKM MS SQL Server 0 03-05-2006 22:29:41


La franja horaria es GMT +2. Ahora son las 16:18:58.


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