Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
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-09-2007
emeceuy emeceuy is offline
Miembro
 
Registrado: jun 2003
Ubicación: Uruguay
Posts: 122
Poder: 21
emeceuy Va por buen camino
Establecer parametros determinados en funciones y procedimientos

hola, la pregunta que tengo es sencilla, pero la verdad que no se bien como se hace...

como se le pasa parametros acotados a una funcion? por ejemplo, si tengo:

Código Delphi [-]
function MyFunction(Parametro: Char):boolean;

quiero poder restringir que "Parametro" solo sea la letra "A" o "B" por ejemplo... se puede?
tambien cuando se defnen arrays de Chars creo que se puede decir que los chars admitidos sean tales, o arrays de numeros, que sean de tal numero a tal otro... como se hace?

Muchas gracias !!!
__________________
Marcelo C.
Responder Con Cita
  #2  
Antiguo 02-09-2007
Avatar de Emilio
*Emilio* Emilio is offline
Capo
 
Registrado: may 2003
Ubicación: Palma de Mallorca
Posts: 2.635
Poder: 10
Emilio Va por buen camino
Entiendo que para eso debes poner un condicional dentro de tu función.
__________________
Saludos
Emilio
Responder Con Cita
  #3  
Antiguo 02-09-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hola emeceuy,
Creo entender lo que pides.
Una manera de conseguir lo que pides, es declarar un tipo que acepte esto, se lo conoce como del tipo enumerado.

Código Delphi [-]
type
TSoloAyB: 'A'..'B'; // solo se acepta A o B

TRango: 1..10; // solo se acepta desde el 1 al 10

E incluso puedes usar estos "rangos" para otros tipos. Por ejemplo:
Código Delphi [-]
Type
TArray10Int = array[TRango] of integer;
TArray2Str = array[TSoloAyB] of char;

La otra opción es que dentro de la función incorpores un control del parámetro es decir IFs, como bien dijo Emilio.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]

Última edición por Delphius fecha: 02-09-2007 a las 22:23:01.
Responder Con Cita
  #4  
Antiguo 02-09-2007
emeceuy emeceuy is offline
Miembro
 
Registrado: jun 2003
Ubicación: Uruguay
Posts: 122
Poder: 21
emeceuy Va por buen camino
muchas gracias por las respuestas ! pensaba que se podía definir el tipo en la misma declaracion de la funcion, pero así está bien igual

gracias !
__________________
Marcelo C.
Responder Con Cita
  #5  
Antiguo 03-09-2007
emeceuy emeceuy is offline
Miembro
 
Registrado: jun 2003
Ubicación: Uruguay
Posts: 122
Poder: 21
emeceuy Va por buen camino
me quedó una duda... como hago para definir un tipo que tenga solo determinados caracteres?

por ejemplo, si pongo 'A'..'C' mi tipo aceptará A, B y C... pero que pasa si quiero que tenga 'L','C','T' y 'U'? como se define?

salu2 gracias
__________________
Marcelo C.
Responder Con Cita
  #6  
Antiguo 03-09-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Hola

Yo lo haría con un Case, algo así

Código Delphi [-]
 
MiFuncion(Letra:Char):Boolean;
begin
  Case Letra of
      'A'..'C' : begin
          //hago lo que quiera
         result := True;
      end;
      else begin
               ShowMessage('Letra invalida');
               result := False;
      end;
  end;
end;

Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #7  
Antiguo 03-09-2007
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Cita:
Empezado por emeceuy Ver Mensaje
me quedó una duda... como hago para definir un tipo que tenga solo determinados caracteres?

por ejemplo, si pongo 'A'..'C' mi tipo aceptará A, B y C... pero que pasa si quiero que tenga 'L','C','T' y 'U'? como se define?

salu2 gracias
Código Delphi [-]
TSoloChars: 'A'..'C', 'L','C','T', 'U';
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #8  
Antiguo 03-09-2007
emeceuy emeceuy is offline
Miembro
 
Registrado: jun 2003
Ubicación: Uruguay
Posts: 122
Poder: 21
emeceuy Va por buen camino
gracias por las respuestas !! pero sigo sin poder hacerlo funcionar...

podría hacerlo dentro de la funcion, pero me gustaria tener mas seguridad en tiempo de edicion, por eso es que quiero que solo admita ciertas letras.

si pongo
Código Delphi [-]
type
   TSoloChars : 'A'..'C', 'L','C','T', 'U';
end;
en la parte de arriba, donde se declaran los otros tipos, me dice que se esperaba = pero que se encontró :
entonces pongo = y me dice, que se esperaba ; y se encontró , como si no dejara definir más de una letra o conjunto de letras...

como es? que confusion !!!
__________________
Marcelo C.
Responder Con Cita
  #9  
Antiguo 03-09-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hola,

En ese caso puedes hacer algo como esto:

Código Delphi [-]
function CaracterPermitido(Caracter: Char): boolean;
begin
  result := Pos(Caracter,SOLO_CHARS) > 0;
end;

Siendo, SOLO_CHARS de esta forma:

Código Delphi [-]
const
  SOLO_CHARS = 'ABCLTU';

De modo que sólo tienes que hacer tu función (o procedimiento) de modo tal que llame a la función anterior para comprobar si es un caracter válido y de allí hacer la operatoria necesaria.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]

Última edición por Delphius fecha: 03-09-2007 a las 19:25:40. Razón: corregir error en SOLO_CHARS
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
Definición de procedimientos y/o funciones mauqu Varios 2 27-08-2007 16:00:19
Procedimientos y funciones en formularios MDI joumont OOP 9 05-03-2007 21:21:34
Sobre procedimientos y funciones Perrero80 OOP 3 17-05-2006 11:55:42
donde almacenar los procedimientos y funciones olbeup MS SQL Server 2 16-04-2006 20:56:07
Procedimientos y funciones en paquetes MARIOR Varios 2 08-01-2004 23:50:51


La franja horaria es GMT +2. Ahora son las 12:12:11.


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