Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.10.2009, 19:45   #1
pesi
Подтвердите свой е-майл
 
Регистрация: 05.03.2009
Сообщений: 65
По умолчанию javascript и delphi

Здравствуйте!
Мне нужно это перевести на делфи но в javascript я не силен.
Скажите что здесь происходит?
это первая часть

Код:
//////// FUNCIONES PARA AJAX PINO
var http_request = false;
function peticionAjax(direccion, backf) {
	if (window.XMLHttpRequest) {
		try {
			http_request = new XMLHttpRequest();
	  } catch(e) {
			http_request = false;
	  }
	  if (http_request.overrideMimeType) http_request.overrideMimeType('text/xml');
	  
	} else if (window.ActiveXObject) {
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	
	if (http_request) {
	    http_request.onreadystatechange = backf;
	    http_request.open("GET", direccion, true);
	    http_request.setRequestHeader( "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT" ); // P IE :p
	    http_request.send(null);
	}
}

function identificador() {
	var idx = document.URL.lastIndexOf('/');
	return document.URL.substring(idx+1, document.URL.length);
}
function montaUrl() {
	return '/vt/'+idioma+'/resultado?'+iden+'-'+pres+'-'+ires;
}

function cambiaEstado(nuevo) {
	document.getElementById('status_cargando').style.display="none";
	document.getElementById('status_en_cola').style.display="none";
	document.getElementById('status_analizando').style.display="none";
	document.getElementById('status_terminado').style.display="none";
	document.getElementById('status_caducado').style.display="none";
	document.getElementById('status_detenido').style.display="none";
	document.getElementById('status_en_espera').style.display="none";
	document.getElementById('status_porcentaje').style.display="none";
	
	var muestraCargador=0;
	var muestraNuevoArchivo=0;
	if (nuevo == 'DETENIDO') {
		document.getElementById('status_detenido').style.display="inline";
	} else if (nuevo == 'ENCOLADO') {
		document.getElementById('status_en_cola').style.display="inline";
		muestraCargador=1;
	} else if (nuevo == 'ANALIZANDO') {
		document.getElementById('status_analizando').style.display="inline";
		muestraCargador=1;
	} else if (nuevo == 'TERMINADO') {
		document.getElementById('status_terminado').style.display="inline";
		document.getElementById('status_porcentaje').style.display="inline";
		muestraNuevoArchivo=1;
		calculaPorcentaje();
	} else if (nuevo == 'CADUCADO') {
		document.getElementById('status_caducado').style.display="inline";
		muestraNuevoArchivo=1;
	} else if (nuevo == 'REFRESCAR') {
		document.getElementById('status_en_espera').style.display="inline";
	}
	
	if (muestraCargador) {
		document.getElementById('status_cargador').style.display="inline";
	} else {
		document.getElementById('status_cargador').style.display="none";
	}

	if (muestraNuevoArchivo) {
		document.getElementById('nuevo_archivo').style.display="inline";
	} else {
		document.getElementById('nuevo_archivo').style.display="none";
	}
	
}
pesi вне форума Ответить с цитированием
Старый 03.10.2009, 19:47   #2
pesi
Подтвердите свой е-майл
 
Регистрация: 05.03.2009
Сообщений: 65
По умолчанию

это вторая часть

Код:
function cambiaMensaje(nuevo) {
	document.getElementById('message_cargando').style.display="none";
	document.getElementById('message_encolado').style.display="none";
	document.getElementById('message_analizando').style.display="none";
	document.getElementById('message_terminado').style.display="none";
	document.getElementById('message_caducado').style.display="none";
	document.getElementById('message_caducado').style.display="none";
	document.getElementById('message_esperando').style.display="none";
	
	var muestraCargador=0;
	if (nuevo == 'DETENIDO') {
		document.getElementById('message_detenido').style.display="inline";
	} else if (nuevo == 'ENCOLADO') {
		document.getElementById('message_encolado').style.display="inline";
		muestraCargador=1;
	} else if (nuevo == 'ANALIZANDO') {
		document.getElementById('message_analizando').style.display="inline";
		muestraCargador=1;
	} else if (nuevo == 'TERMINADO') {
		document.getElementById('message_terminado').style.display="inline";
	} else if (nuevo == 'CADUCADO') {
		document.getElementById('message_caducado').style.display="inline";
	} else if (nuevo == 'REFRESCAR') {
		document.getElementById('message_esperando').style.display="inline";
	}
}

var pres=0;
var ires=0;
var iden=identificador();

function cargaAnalisis() {
	peticionAjax(montaUrl(), procesaAnalisis)
}

function procesaAnalisis() {
	var respuesta='';
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			respuesta=http_request.responseText;
			var rti= eval("(" + respuesta + ")");
			
			var estado=rti[0];
			if ( estado == 'DETENIDO') {
				document.getElementById('status_nombre').innerHTML=rti[2][0];
				document.getElementById('status_fecha').innerHTML=rti[2][1];
				
				document.getElementById('detenido_posicion').innerHTML=rti[3][0];
				if (rti[3][1]) document.getElementById('info_detenido').style.display="inline";
				cambiaEstado(estado);
				cambiaMensaje(estado);
				
				var espera=rti[1]*1000;
				setTimeout("cargaAnalisis()", espera);

			} else if (estado == 'ENCOLADO') {
				document.getElementById('status_nombre').innerHTML=rti[2][0];
				document.getElementById('status_fecha').innerHTML=rti[2][1];
				
				document.getElementById('encolado_posicion').innerHTML=rti[3][0];
				document.getElementById('encolado_min').innerHTML=rti[3][1];
				document.getElementById('encolado_max').innerHTML=rti[3][2];
				document.getElementById('encolado_tiempo').innerHTML=rti[3][3];
				cambiaEstado(estado);
				cambiaMensaje(estado);
				
				var espera=rti[1]*1000;
				setTimeout("cargaAnalisis()", espera);

			} else if (estado == 'ANALIZANDO') {
				document.getElementById('status_nombre').innerHTML=rti[2][0];
				document.getElementById('status_fecha').innerHTML=rti[2][1];
				
				document.getElementById('tablas').style.display="block";
				
				for (var i=0; i < rti[3].length; i++) {
					introduceTablaResultados('tablaMotores', rti[3][i], 1);
					pres+=1;
				}
				for (var i=0; i < rti[4].length; i++) {
					introduceTablaResultados('tablaInformacion',rti[4][i]);
					ires+=1;
				}

				cambiaEstado(estado);
				cambiaMensaje(estado);
				
				var espera=rti[1]*1000;
				setTimeout("cargaAnalisis()", espera);

			} else if (estado == 'TERMINADO') {
				document.getElementById('status_nombre').innerHTML=rti[1][0];
				document.getElementById('status_fecha').innerHTML=rti[1][1];
				
				document.getElementById('tablas').style.display="block";
				
				for (var i=0; i < rti[2].length; i++) {
					introduceTablaResultados('tablaMotores', rti[2][i], 1);
					pres+=1;
				}
				for (var i=0; i < rti[3].length; i++) {
					introduceTablaResultados('tablaInformacion',rti[3][i]);
					ires+=1;
				}
				
				cambiaEstado(estado);
				cambiaMensaje(estado);
				
			} else if (estado == 'REFRESCAR') {
				cambiaEstado(estado);
				cambiaMensaje(estado);

				var espera=rti[1]*1000;
				setTimeout("cargaAnalisis()", espera);
				
			} else if (estado == 'CADUCADO') {
				cambiaEstado(estado);
				cambiaMensaje(estado);
			}
		
		} else {
			// Error...
			setTimeout("cargaAnalisis()", 60*1000);
		}
	}
}

function rellenaDetenido() {
	document.forms['form_detenido'].action="/vt/"+idioma+"/envioemail";
	document.forms['form_detenido'].muestra.value=iden;
	return true;
}

function calculaPorcentaje() {
	var tbl = document.getElementById('tablaMotores');
	var total=-1;
	var positivos=0;
	
	for (var i=0; i < tbl.rows.length; i++) {
		var row = tbl.rows[i];
		
		if ( (i > 0) && (row.cells[3].innerHTML != '-') ) {
			positivos++;
		}
		total++;
	}
	var porciento=Math.ceil(positivos*10000/total)/100;
	
	document.getElementById('porcentaje').innerHTML='<span style="color:red;">'+positivos+'</span>'+'/'+total+' ('+porciento+'%)';
}
pesi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как запустить JavaScript из Delphi& Xenofibrius Работа с сетью в Delphi 3 26.08.2011 22:12
javascript kettyrus Помощь студентам 1 03.10.2009 14:00
Использование JavaScript в Delphi... Valdis Общие вопросы Delphi 2 27.09.2007 08:45
Связать JavaScript с Delphi... Valdis Помощь студентам 1 27.09.2007 08:43