Club Delphi  
    FTP   CCD     Enlaces   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

Respuesta
 
Herramientas Desplegado
  #1  
Antiguo 20-05-2004
Xavierator Xavierator is offline
Miembro
 
Registrado: nov 2003
Posts: 31
Xavierator Va por buen camino
A call to an OS function failed ...

Hola, me encuentro con algun cliente (no todos), que al ejecutar la aplicacion, le aparece el error:

"Error reading NombreDeUnComboBox.Items.Strings: A call to an OS function failed."

¿ Alguien sabe a que se puede deber o en todo caso que se puede hacer en el programa para intentar averiguar mas al respecto ?

Gracias, Xavierator.

Última edición por Xavierator fecha: 20-05-2004 a las 12:58:19.
Responder Con Cita
  #2  
Antiguo 20-05-2004
Avatar de marto
marto marto is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona, Catalunya
Posts: 882
marto Va por buen camino
Wop!

Pues nunca he visto ese mensaje, pero con los datos que das, yo creo que tiene que haber algo "roto" en los ordenadores. El error se produce al llamar a una rutina de SO y dices que solamente pasa en algunos ordenadore y encima se produce al leer la propiedad Strings de TComboBox... todo eso me hace pensar que algo está mal instalado...
__________________
E pur si muove
Responder Con Cita
  #3  
Antiguo 20-05-2004
Xavierator Xavierator is offline
Miembro
 
Registrado: nov 2003
Posts: 31
Xavierator Va por buen camino
Ampliacion ...

Hola, yo tampoco habia visto el mensaje hasta ayer, pero por lo que he podido encontrar buscando el texto del mensaje a traves del google, la teoria mas aceptable, es que parece un problema de recursos de los pc's, ya que el error parece dar al crear un formulario con muchos controles de tipo tlistbox y tcombobox.

http://groups.google.es/groups?q=A+c...40dnews&rnum=1

http://groups.google.es/groups?hl=ca...ews%26rnum%3D6

Si el problema son demasiados controles en un mismo form, pues tiene solucion cambiando controles a otros forms, pero si el problema es el numero general de controles, cambiarlos de sitio no resolvera el tema.

Sabiendo esto, ¿ se os ocurre alguna solucion ?

¿ Hay alguna manera (control, api, ...) de controlar los recursos dentro de un programa en Delphi ?

Lo que en ningun queda muy claro, es si los recursos, estan ligados unicamente al sistema operativo y como los organiza o si la cantidad de memoria ram tiene algo que ver.

Saludos y gracias, Xavierator.

Última edición por Xavierator fecha: 20-05-2004 a las 15:15:31.
Responder Con Cita
  #4  
Antiguo 20-05-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.868
delphi.com.ar Va por buen camino
Simplemente los Items de un TString se cargan por streaming, este flujo de datos suele estar basado en funciones del SO. Evidentemente falla por algún motivo, es una lástima que no sea mas específico, pero los motivos pueden ser variados, desde errores de disco hasta problemas de privilegios.
El error aparenta producirlo el TReader que es el que lee el stream del "DFM" que queda itegrado en el EXE, no descarto que desde el código estes cargando los items mediante un LoadFormFile / LoadFromStream.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #5  
Antiguo 20-05-2004
Xavierator Xavierator is offline
Miembro
 
Registrado: nov 2003
Posts: 31
Xavierator Va por buen camino
"Resuelto"

Hola, no es que este resuelto, pero ya tengo el problema localizado, os cuento:

efectivamente es un problema de recursos, ya que para poder reproducirlo en un pc con un win98, simplemente he ejecutado el programa dos veces para obtener el mismo tipo de error. Lo que es mas extraño es que me digan que tambien pasa en windows xp, ya que un pc con win xp, he ejecutado el programa hasta 6 veces (ya me he cansado de ejecutarlo mas veces) para ver que ni asi falla.

Y ya he comprobado que la memoria, no afecta a los recursos disponibles ni en un win98 ni en win XP.

Saludos, Xavierator.
Responder Con Cita
  #6  
Antiguo 02-08-2004
jgutti jgutti is offline
Miembro
 
Registrado: may 2003
Posts: 159
jgutti Va por buen camino
A call to an OS function failed ...

Hola al foro.

Xavierator, Como solucionaste este error para "A call to an OS function failed" para windows 98
Responder Con Cita
  #7  
Antiguo 02-08-2004
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.636
guillotmarc Va por buen camino
Hola.

Yo también tengo este error en una rutina concreta. Siempre que se ejecuta sobre Windows 98 da ese error, y en Windows superiores funciona correctamente. Esa rutina no hace nada raro : ejecuta unos procedimientos almacenados, cierra una conexión de datos, y descarga un formulario.

No lo relacioné con los recursos de Windows, porqué en Windows 98 ocurre siempre (independientemente de si hay muchos programas cargados, o ningún otro).

Aún no lo he depurado porqué no tengo ningún Windows 98 con Delphi instalado.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #8  
Antiguo 02-08-2004
Avatar de marto
marto marto is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona, Catalunya
Posts: 882
marto Va por buen camino
Mirando por ahí he encontrado que el tema puede estar relacionado con un exceso de "windowed controls" (¿Como trduzco eso?). También comentan que tiene que ver con un límite lógico, con de memoria, por eso en versiones 2k/xp es más difícil que pase.
¿Puede ser que vayan por ahí los tiros?
__________________
E pur si muove
Responder Con Cita
  #9  
Antiguo 03-08-2004
Xavierator Xavierator is offline
Miembro
 
Registrado: nov 2003
Posts: 31
Xavierator Va por buen camino
Comentarios

Hola, hace tiempo que no me pasaba por el foro y acabo de ver que el hilo ha ido creciendo.

Pues bien, el problema sigue sin solucionarse, ya que aunque yo lo pueda reproducir en un Win98 simplemente ejecutando dos veces el mismo programa, ya sea al leer, crear, ... algun componente, ¿ que solucion se le puede dar a esto ?, bien habra que leerlo, crearlo, ..., por lo que no vale poner algun control de que si no puede crearlo por ejemplo, no lo haga y ya esta, ya que el programa con mensaje de error o sin, seguira sin funcionar, por lo que no se que solucion hay que darle a este tema. Teniendo en cuenta que alli donde se produce, no lo arrancan dos veces y supongo que se debera a otros programas cargados en memoria que hacen que simplemente ejecutando uno solo de los mios ya de el error, si pudiera, me gustaria ver el administrador de procesos o de recursos de windows para ver como va el PC antes y mientras se arranca mi programa, pero esto no puede ser, si alguien tienen alguna idea mejor, pues adelante...

Intente buscar alguna herramienta que permitiera saber si hay suficientes recursos o no para intentar controlar algo, pero simplemente como control para que el mensaje de la aplicacion sea entendible no como el de ahora ni como solucion, y encontre en la Delphi Super Page las herramientas MSIC.zip (MiTeC System Information), pero no las he puesto en practica a exceppcion del ejecutable demo para que la informacion que da.

Saludos, Xaviaretor.

Última edición por Xavierator fecha: 03-08-2004 a las 08:34:12.
Responder Con Cita
  #10  
Antiguo 03-08-2004
Avatar de marto
marto marto is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona, Catalunya
Posts: 882
marto Va por buen camino
Wop!

¿Tienes muchos forms como autocreate? Si los forms tienen muchos controles, es posible que, al tenerlos todos creados aunque invisibles, excedas el límite de win98.
__________________
E pur si muove
Responder Con Cita
  #11  
Antiguo 03-08-2004
Xavierator Xavierator is offline
Miembro
 
Registrado: nov 2003
Posts: 31
Xavierator Va por buen camino
El problema, en mi caso, no son muchos forms, sino todo lo contrario, unicamente que hay uno de los pocos que tengo, que por necesidad, tiene muchisimos TComboBox, por lo que supongo que si Windows no tiene suficientes recursos, pues no puede crear todos los componentes, pero cuando esto pasa en poquisimos casos, quiere decir que no es tanto el programa en si mismo, sino alguna caracteristica o condicion de windows o los programas que hay en ese momento.

Saludos, Xavierator.

Última edición por Xavierator fecha: 03-08-2004 a las 09:41:45.
Responder Con Cita
  #12  
Antiguo 03-08-2004
Avatar de marto
marto marto is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona, Catalunya
Posts: 882
marto Va por buen camino
Cita:
Empezado por Xavierator
quiere decir que no es tanto el programa en si mismo, sino alguna caracteristica o condicion de windows o los programas que hay en ese momento.
En eso estamos totalmente de acuerdo. De todas maneras, si excedes el límite de la máquina o, en este caso del sistema operativo... no veo más solución que cambiarlo, o eso, o te las apañas para "descargar" el form de tanto combo!
__________________
E pur si muove
Responder Con Cita
Respuesta


Herramientas
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


La franja horaria es GMT +2. Ahora son las 00:08:20.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi