Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > Lazarus, FreePascal, Kylix, etc.
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-07-2013
chuli17 chuli17 is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 11
Poder: 0
chuli17 Va por buen camino
Question Type of expression must be BOOLEAN

Hola buenas, aber si alguien me echa una mano, en la primera linea de ese codigo me da error "Type of expression must be BOOLEAN" y con mas vueltas que le doy nose porque... lo agradeceria muchisimo si me echais una mano

Código Delphi [-]
if Buscar(Lista,s + 'Nueva carpeta',Mascaras)then
      Form2.Show;
      Form2.RichEdit1.Lines.Add(Lista.Text);
      else
      ShowMessage('Nada Encontrado');
Responder Con Cita
  #2  
Antiguo 22-07-2013
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
puedes colocar el código de la función buscar?
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #3  
Antiguo 22-07-2013
Avatar de ElKurgan
[ElKurgan] ElKurgan is offline
Miembro Premium
 
Registrado: nov 2005
Posts: 1.234
Poder: 20
ElKurgan Va camino a la fama
¿Y como está definida la función "Buscar"?

Saludos
Responder Con Cita
  #4  
Antiguo 22-07-2013
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 913
Poder: 22
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
Creo que el código que escribiste tiene algunos problemillas..

Código Delphi [-]
if Buscar(Lista,s + 'Nueva carpeta',Mascaras)then
begin
      Form2.Show;
      Form2.RichEdit1.Lines.Add(Lista.Text);
end
else
      ShowMessage('Nada Encontrado');

Saludos
Responder Con Cita
  #5  
Antiguo 22-07-2013
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
Cita:
Empezado por cloayza Ver Mensaje
Creo que el código que escribiste tiene algunos problemillas..

Código Delphi [-]
if Buscar(Lista,s + 'Nueva carpeta',Mascaras)then
begin
      Form2.Show;
      Form2.RichEdit1.Lines.Add(Lista.Text);
end
else
      ShowMessage('Nada Encontrado');

Saludos
eso iba a indicarle, te me adelantaste
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #6  
Antiguo 24-07-2013
chuli17 chuli17 is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 11
Poder: 0
chuli17 Va por buen camino
Hola buenas aqui esta la funcion buscar, y gracias a todos por responder.

Código Delphi [-]
procedure Buscar(Lista: TStringList; Path, Mascara: String); overload;
var
  SR: TSearchRec;
begin
  Path:= IncludeTrailingPathDelimiter(Path);
  if FindFirst(Path + '*.*', faAnyfile, SR) = 0 then
  repeat
    if (SR.Name <>  '.') and (SR.Name <> '..') then
      if (SR.Attr and faDirectory) = faDirectory then
        Buscar(Lista,Path+SR.Name,Mascara);
  until FindNext(SR) <> 0;
  FindClose(SR);
  if FindFirst(Path + Mascara, faAnyfile, SR) = 0 then
  repeat
    if (SR.Name <>  '.') and (SR.Name <> '..') then
      if (SR.Attr and faDirectory) <> faDirectory then
        Lista.Add(Path + SR.Name);
  until FindNext(SR) <> 0;
  FindClose(SR);
end;

procedure Buscar(Lista: TStringList; Path: String; Mascaras: TStringList); overload;
var
  i: Integer;
begin
  for i:= 0 to Mascaras.Count - 1 do
    Buscar(Lista,Path,Mascaras[i]);
end;


procedure TForm1.FormCreate(Sender: TObject);

var
   drive : Char;
   tipo : Integer;
begin
   for drive:= 'A' to 'Z' do
   begin
      tipo := GetDriveType(PChar(drive+':\'));
      if tipo <> 0 then
       case tipo of
         DRIVE_REMOVABLE: Combobox1.Items.Add(drive + ':\' + '   (Disco Extraible)');
         DRIVE_FIXED: Combobox1.Items.Add(drive + ':\' + '   (Disco Duro)');
         DRIVE_RAMDISK: Combobox1.Items.Add(drive + ':\' + '   (Ram Disk)');
       end;//Case
   end;
   end;

procedure TForm1.Button1Click(Sender: TObject);
var
  Lista: TStringList;
  Mascaras: TStringList;
  s: string;
begin
  Lista:= TStringList.Create;
  try
    Mascaras:= TStringList.Create;
    try
      Mascaras.Add('1.DAT');
      Mascaras.Add('2.DAT');
      Mascaras.Add('3.DAT');
      s:= Copy(Combobox1.Text,1,3);
      if Buscar(Lista,s + 'Nueva carpeta',Mascaras)then // Aqui en esta linea da el error
      begin
      Form2.Show;
      Form2.RichEdit1.Lines.Add(Lista.Text);
      end
else
      ShowMessage('Nada Encontrado');
    finally
      Mascaras.Free;
    end;

  finally
    Lista.Free;
  end;
end;
Responder Con Cita
  #7  
Antiguo 24-07-2013
Avatar de TiammatMX
TiammatMX TiammatMX is offline
Miembro
 
Registrado: jun 2006
Ubicación: Universo Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Puebla\Heróica Puebla de Zaragoza\Jardines de San Manuel\Home
Posts: 746
Poder: 18
TiammatMX Va camino a la fama
Pues es claro..., Buscar primeramente debe ser una FUNCIÓN (no un procedimiento) y ésta función debe regresar un valor booleano o lógico para que la condición que la llama sea correcta.
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively...

"Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum.

Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco
Responder Con Cita
  #8  
Antiguo 24-07-2013
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 chuli17.

Tal como te indica tiammat un procedimiento no devuelve valor alguno.

Lo que podrías hacer es:
Código Delphi [-]
...
  Buscar(Lista, s + 'Nueva carpeta', Mascaras);
  if Lista.Count > 0 then // Si encontro alguna coincidencia...
  begin
     ...

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
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
ERROR: Data Type mismatch in criteria expression El Mike Conexión con bases de datos 7 01-12-2008 22:22:46
Statement expected, but expression of type 'Boolean' found Shikanda Conexión con bases de datos 7 06-09-2007 13:26:19
Error: Type mismatch in expression gusanita Varios 11 28-01-2006 18:12:17
type mismatch in expression noe SQL 1 12-02-2005 02:41:26
Database Desktop, Type Mismatch Expression en campo fecha fjolivares SQL 1 19-01-2005 13:45:53


La franja horaria es GMT +2. Ahora son las 02:29:45.


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