Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Go Back   Foros Club Delphi > Principal > OOP
Register FAQ Members List Calendar Guía de estilo Today's Posts

Coloboración Paypal con ClubDelphi

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 26/06/2006
momo momo is offline
Registrado
 
Join Date: Jun 2006
Posts: 9
Poder: 0
momo Va por buen camino
Return value of function might be undefined

Buen dia

Tengo un problema con una funcion en la cual el compilador me marca warning, debido a que el codigo no es suficiente para asignar el resultado de la funcion es decir, no he identificado todos los comportamientos posibles de mi funcion. Le he dado vueltas y no puedo identificar que me falta.
Todavia me encuentro atrapada en la programacion procedural.

Código Delphi [-]
function TFrmRepClients.borrarLista(cajaverifica: string):Boolean; 
var b: integer;
 begin
 if (ListFirst.Items.Count = 0 ) then BorrarLista:= False
 else
 begin
   For b:= 0 to (ListFirst.Items.Count-1) do
    begin
        if (ListFirst.Items[b] = cajaverifica) then
        begin
            ListFirst.Items.Delete(b);
            borrarLista:= True;
            break;
        end
        else borrarLista:= False;
    end;
 end;
   end;

Gracias

Last edited by dec : 27/06/2006 at 11:04.
Reply With Quote
  #2  
Old 26/06/2006
Melcv Melcv is offline
Miembro
 
Join Date: Jun 2006
Posts: 10
Poder: 0
Melcv Va por buen camino
For

el problema esta en que nada te asegura que se ejecute por lo menos alguna vez el ciclo for

For b:= 0 to (ListFirst.Items.Count-1) do

con lo cual terminas la funcion sin asignar un valor
Reply With Quote
  #3  
Old 26/06/2006
Mick Mick is offline
Miembro
 
Join Date: May 2003
Posts: 405
Poder: 24
Mick Va por buen camino
Hola,

Si ListFirst.Items.Count es menor que 0 nunca se asignaria un resultado de retorno, y esto es lo que te marca el compilador, no importa demasiado el warning debido a que Items.Count en la practica nunca es menor que cero, pero esta propiedad esta definida en el objeto TStrings como integer , lo que significa que teoricamente podria tener un valor negativo.

Saludos
Reply With Quote
  #4  
Old 26/06/2006
momo momo is offline
Registrado
 
Join Date: Jun 2006
Posts: 9
Poder: 0
momo Va por buen camino
Gracias por la ayuda

He resuelto el problema. El que se ejecute o no el codigo depende del estado de la caja de verificacion.

Saludos y buen resto de dia
Reply With Quote
  #5  
Old 27/06/2006
Lepe's Avatar
[Lepe] Lepe is offline
Miembro Premium
 
Join Date: May 2003
Posts: 7,424
Poder: 31
Lepe Va por buen camino
Normalmente al inicio de ese tipo de funciones, se suele poner Result:= false; de esta forma eliminas la advertencia del compilador, y le das un valor según convenga.

Result := false equivale a BorrarLista:= False

Me gusta más usar "Result", porque usando el nombre de la función, puede parecer que es una variable; al leer el código suele desconcertarme.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Reply With Quote
  #6  
Old 27/06/2006
momo momo is offline
Registrado
 
Join Date: Jun 2006
Posts: 9
Poder: 0
momo Va por buen camino
Efectivamente el Result debe inicializarse con un valor

Efectivamente mi problema tambien radicaba que no inicializaba Result

Gracias por el comentario Lepe
Reply With Quote
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Undefined service gds_db/tcp StartKill Firebird e Interbase 7 10/05/2012 00:15
Function vtdeleon OOP 1 25/11/2004 07:22
Problema: "undefined service gds_db/tcp Marc Gaspà Firebird e Interbase 4 10/05/2004 08:03
return un Array rjtostado Oracle 0 15/04/2004 04:44
'Return no-apply' Roy Varios 9 10/06/2003 22:37


All times are GMT +2. The time now is 02:16.


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