Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Llenar datos en StringList (https://www.clubdelphi.com/foros/showthread.php?t=27115)

Caro 11-11-2005 20:16:08

Llenar datos en StringList
 
Hola a todos

En un vector yo puedo inicializar con algunos datos ej.

Código Delphi [-]
    vOpcion:Array[0..3] of String=('N','N','N','N');

quisiera saber si se puede hacer lo mismo con un StringList por ahora lo hago

Código Delphi [-]
    slOpcion.add('N');
    slOpcion.add('N');
    slOpcion.add('N');
    slOpcion.add('N');

Agredecere un monton cualquier comentario o sugerencia que me den gracias.

Lepe 12-11-2005 13:28:07

No se puede.

En principio, el StringList está totalmente vacío, es decir, no tiene elementos, por tanto no se pueden inicializar.

Se puede crear un bucle, aunque para 4 elementos , es demasiado.
Código Delphi [-]
procedure Inicializa(Lista:TStringList; Elementos:integer; ValorInicial:string);
begin
if not assigned(Lista) then // si no está creada
  Lista := TStringList.Create;

for i:=0 to Elementos -1 do // como empieza en 0, siempre es uno menos.
 if i > Lista.Count-1 then  // si queremos más elementos de los que hay
  Lista.Add(valorinicial)
 else
  Lista[i] := valorinicial; // damos el valor inicial.
end;

saludos

dec 12-11-2005 17:20:57

Hola,

Yo supongo que hacer algo así es demasiado también, ¿no?

Código Delphi [-]
 unit UMiStrings;
 
 interface
 
 uses
   Classes;
 
 type
   TMiStrings = class(TStringList)
     constructor Create;
   end;
 
 implementation
 
 { TMiStrings }
 
 constructor TMiStrings.Create;
 begin
   Self.Add('Una cadena');
   Self.Add('Otra cadena');
   Self.Add('Una cadena más');
 end;
 
 end.
O, cuando no, tal vez ir un poco más allá, o más acá... veremos a ver... ;)

Código Delphi [-]
 unit UMiStrings;
 
 interface
 
 uses
   Classes;
 
 type
   TMiStringList = class(TStringList)
     constructor Create(const elementos: array of string);
   end;
 
 implementation
 
 { TMiStrings }
 
 constructor TMiStringList.Create(const elementos: array of string);
 var
   i: integer;
 begin
   for i := 0 to High(elementos) do
   begin
     Self.Add(elementos[i]);
   end;
 end;
 
 end.
Lo cual podría utilizarse más o menos de este modo:

Código Delphi [-]
 var
   LS: TMiStringList;
   SA: array[1..3] of string;
 begin
   SA[1] := 'Una cadena';
   SA[2] := 'Otra cadena';
   SA[3] := 'Una cadena más';
 
   LS := TMiStringList.Create(SA);
 
   ShowMessage(LS.Text);
 
   LS.Free;
 end;
No sé. Espero que lo dicho no sea tan todo disparatado como me lo está pareciendo ya... ;)


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

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