Club Delphi  
    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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-12-2017
ingel ingel is offline
Miembro
 
Registrado: jun 2003
Posts: 239
Poder: 21
ingel Va por buen camino
Matriz como Paramentro de una funcion

Buendia a todos , seguramente este preguntando algo muy simple pero no logro resolverlo ,
En Delfi 5 , necesito pasar un parametro como VAR a una funcion y tengo problema en la definicion de
la misma . Asi es como lo hice :

Funcion mifuncion(p1:string; VAR vITems : array[1..4] of array[1..5] of string ):string;

Pero cuando asigno un valor String a la matriz :

vITems[0,i]:= fieldbyname('CAMPO').asstring;

Me da error diciendome que STRING y CHAR son incompatibles ... pero la matriz la declare de String no CHAR !!

si asigno esto NO me da error:
vITems[0,i]:='A'


probé otras forma de declarar la matriz pero ninguna me funcionó...
Gracias
sds
Responder Con Cita
  #2  
Antiguo 12-12-2017
ingel ingel is offline
Miembro
 
Registrado: jun 2003
Posts: 239
Poder: 21
ingel Va por buen camino
Perdon.. la declaracion de la funcion estaba asi

Function Mifuncion(p1:string ; VAR vITems : array of string ):string;

y en el procedimiento que la llama la matriz esta declarada localmente como :

VAR vDetalleItems : array [1..4,1..5] of string;

y el error lo da al COMPILAR :

[Error] Uutiles.pas(499): Incompatible types: 'Char' and 'String'
Responder Con Cita
  #3  
Antiguo 12-12-2017
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Un ejemplo base:
Código Delphi [-]
...
type
  TMatStr4x5 = array [1..4,1..5] of string;

function foo(p1:string; var mt : TMatStr4x5 ):string;
begin
  mt[1,1] := 'mt[1,1] = ' + p1;
  Result  := mt[1,1];
end;

Ejemplo de uso:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  mt: TMatStr4x5;
  s : string;
begin
  s := foo('hola', mt);
  ShowMessage(s + #10 + mt[1,1]);
end;

Saludos

Pd.: Recuerda usar las etiquetas cuando incluyas código fuente.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 12-12-2017 a las 18:09:42.
Responder Con Cita
  #4  
Antiguo 12-12-2017
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 910
Poder: 22
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
Te sugiero este código:
Código Delphi [-]
type
  TMatrizString=array[1..4,1..5] Of string;

  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure MatrizCeros(var m:TMatrizString);
    procedure MatrizPrint(var m:TMatrizString);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.MatrizCeros(var m:TMatrizString);
var
   i:Integer;
  j: Integer;
begin
     for i := 1 to 4 do
        for j := 1 to 5 do
            m[i,j]:='0';
end;

procedure TForm1.MatrizPrint(var m:TMatrizString);
var
   i:Integer;
  j: Integer;
begin
     Memo1.Lines.Clear;
     for i := 1 to 4 do
        for j := 1 to 5 do
            Memo1.Lines.Add(Format('m[%d,%d]=%s',[i,j, m[i,j]]));
end;


procedure TForm1.Button1Click(Sender: TObject);
var
   m:TMatrizString;
begin
     MatrizCeros(m);
     MatrizPrint(m);
end;

Saludos cordiales
Responder Con Cita
  #5  
Antiguo 12-12-2017
ingel ingel is offline
Miembro
 
Registrado: jun 2003
Posts: 239
Poder: 21
ingel Va por buen camino
GENIAL !! Gracias a ambos !!

Solucionado... Muchas GRacias !!
Responder Con Cita
  #6  
Antiguo 12-12-2017
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 910
Poder: 22
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular


Cuando respondí no había ninguna respuesta...

No se le ocurra pensar Don Ecfisa, que fue un copy - paste...

Los meritos son suyos...así lo indica la hora...

Un abrazo
Responder Con Cita
  #7  
Antiguo 12-12-2017
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por cloayza Ver Mensaje

...
Cuando respondí no había ninguna respuesta...
Los meritos son suyos...así lo indica la hora...
Ni lo menciones, eso me ha pasado montones de veces. Por otro lado, tu respuesta es mucho mas completa

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
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
[Delphi7] Crear función para el determinante de una matriz franco_cvm Varios 3 08-05-2015 04:56:31
Pasar formulario como paramentro Hugorr Varios 4 24-08-2005 16:38:37
Como inicializo una matriz Alejo Varios 1 10-07-2003 07:59:47
Como paso una matriz a una funcion Alejo Varios 5 04-07-2003 22:21:49
como hacceder a un dbGrid como si fuese una matriz[i,j] orfeo OOP 7 28-05-2003 04:53:43


La franja horaria es GMT +2. Ahora son las 15:24:59.


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