Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Arreglo String (https://www.clubdelphi.com/foros/showthread.php?t=35461)

Carliviris 11-09-2006 22:47:18

Arreglo String
 
Saludos a todos:

Estoy asignandole valores a un arreglo de string estatico, dentro de un procedure. Todo esta muy bien y normal, pero cuando llamo a el procedure, los valores que corresponden a una posicion, no son los que deberian de ser.

Lo extraño del caso es que no son valores tomados de tablas, son valores que asigno yo mismo, cadenas de strings.Por ejemplo:

Arreglo[1] := '<DIA_LETRA_HOY>';

Y cuando invoco el procedure en el mismo arreglo de la misma posicion me dice que es igua a 'P'

Que podria ser??? yo pongo showmessages dentro del procedure para chequear si se estan asignando los valores bien y asi es. Pero porque se me cambian de un momento a otro, si esos valores son fijos y no hay formas dentro del codigo de cambiarlo??

marcoszorrilla 11-09-2006 23:03:49

Si colocas todo el código que te da el error, verás como alguien te ayudará a resolver el problema.

Un Saludo.

Carliviris 11-09-2006 23:17:38

Observen esto:


Código Delphi [-]
procedure TwinMain.ArregloSearchString;
var
  SearchString  : array[1..3] of String;
  ReplaceString : array[1..3] of String;
begin
 
  //Corresponde al valor del dia en letras//
  SearchString[1] := 'DIAS_HOY_LETRAS';
  ReplaceString[1] := palabra;
 
  //Corresponde al valor del dia en numeros//
  SearchString[2] := 'DIAS_HOY';
  ReplaceString[2] := IntToStr(DayOf(Now));
 
  //Corresponde al valor del mes en letras//
   SearchString[3] := 'MES_HOY';
   ReplaceString[3] := IntToStr(MonthOf(Now));
 
{entonces, que en un lugar x del programa yo invoque el codigo:}
 

ArregloSearchString;


Mientras se estan asignando los valores, esta de lo mas bien y lo veo pk tengo showmessages. Pero luego que sale del procedure y trato de acceder a algun valor del arreglo 'SearchString', me aparecen letras, no los valores que yo asigne en cada posicion del arreglo. Esta mas entendible??

seoane 11-09-2006 23:23:20

:confused: Si la variable SearchString esta declarada dentro del procedure, ¿como haces para acceder a ella desde fuera?

marcoszorrilla 11-09-2006 23:24:16

Si quieres que una vez abandonado el procedimiento prevalezcan los valores no declares las variables dentro del mismo, sino en la sección pública del módulo.

Código Delphi [-]
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
  private
    { Private declarations }
  public
  SearchString  : array[1..3] of String;
  ReplaceString : array[1..3] of String;
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

Un Saludo.

roman 11-09-2006 23:24:42

Yo creo que te estás confundiendo entre variables locales y globales. Cuando sales del procedimiento ya no es posible acceder a SearchString y ReplaceString, no al menos, a las declaradas dentro del procedimiento. Si tienes otras declaradas fuera del procedimiento, entonces es lógico que no veas los resultados esperados pues el procedimiento está alterando otras variables (que se llaman igual).

// Saludos

marcoszorrilla 11-09-2006 23:26:02

Te habrás dado cuenta del efecto de presentar el código aludido?
3 respuestas en un minuto.

Un Saludo.

Carliviris 11-09-2006 23:26:26

real, es verdad,falle en un tonto error
todos tienen mucha razon, muchas gracias a todos


La franja horaria es GMT +2. Ahora son las 22:21:43.

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