Página 1 de 1

Se puede hacer Undo ?

Publicado: 07 Jul 2011 10:35
por CIRCEX
Al pulsar doble click sobre un item de un listbox este se me borra, lo quiero así,,,, pero que pasa si me equivoco y quiero deshacer ese borrado. Existe algun script para un button que me haga undo de esa operacon de borrado ?


Gracias de veras atodos!

Re: Se puede hacer Undo ?

Publicado: 07 Jul 2011 10:53
por rafaxplayer
- Cada vez que borras tendrias que realizar un registro en un ini o algo con los datos del item borrado
- Asignale un numero de registros 10 o así.
- Cuando le des al botón undo añada al listbox con los datos del ini el item borrado , contando desde el ultimo.
Algo así... si se puede hacer.

Re: Se puede hacer Undo ?

Publicado: 07 Jul 2011 11:31
por Ceone
si quieres hacer undo... por ejemplo gestionado por INI seria así:
(te pongo el codigo y abajo un ejemplo)

Delete:
Seleccionado = ListBox.GetSelected("ListBox1");
-- Detecta si Seleccionado no es valor real o es nil.
if Seleccionado then
	-- Filtro para detectar si Num_Undo es nil o por la contra
	-- es ya un numero entonces se suma 1 a Num_Undo.
	if Num_Undo == nil then
		Num_Undo = 1;
	else
		Num_Undo = Num_Undo+1;
	end
	
	-- Loop para guardar los items en el archivo Undo.dat.
	Num_total = ListBox.GetCount("ListBox1");
	INIFile.SetValue("AutoPlay\\Docs\\Undo.dat", "Undo"..Num_Undo, "Total", Num_total);
	for count = 1, Num_total do
		Text_I = ListBox.GetItemText("ListBox1", count);
		Data_I = ListBox.GetItemData("ListBox1", count);
		INIFile.SetValue("AutoPlay\\Docs\\Undo.dat", "Undo"..Num_Undo, "Text"..count, Text_I);
		INIFile.SetValue("AutoPlay\\Docs\\Undo.dat", "Undo"..Num_Undo, "Data"..count, Data_I);
	end
	
	-- Y por ultimo se elimina el item deseado.
	ListBox.DeleteItem("ListBox1", Seleccionado[1]);
end
Undo:
-- Detecta si existe el archivo que contiene los datos del undo.
if File.DoesExist("AutoPlay\\Docs\\Undo.dat") then
	-- Detecta si Num_Undo no es nil.
	if Num_Undo ~= nil then
		-- Loop para eliminar todos los items de la lista.
		Num_total_A = ListBox.GetCount("ListBox1");
		for count = 1, Num_total_A do
			ListBox.DeleteItem("ListBox1", 1);
		end
		-- Loop para añadir los items anteriores a la lista.
		Num_total_B = INIFile.GetValue("AutoPlay\\Docs\\Undo.dat", "Undo"..Num_Undo, "Total");
		for count = 1, Num_total_B do
			Text_I = INIFile.GetValue("AutoPlay\\Docs\\Undo.dat", "Undo"..Num_Undo, "Text"..count);
			Data_I = INIFile.GetValue("AutoPlay\\Docs\\Undo.dat", "Undo"..Num_Undo, "Data"..count);
			ListBox.AddItem("ListBox1", Text_I, Data_I);		
		end
		
		-- Elimina "Undo"..Num_Undo para que no restaure de nuevo estos datos.
		INIFile.DeleteSection("AutoPlay\\Docs\\Undo.dat", "Undo"..Num_Undo);
		-- Resta 1 a Num_Undo.
		Num_Undo = Num_Undo-1;
		-- Este filtro detecta si Num_Undo es igual o menos a 0 y lo fija en nil.
		if Num_Undo <= 0 then
			Num_Undo = nil;
		end
	else
		-- Este mesaje es lanzado cuando no existen undos.
		Dialog.Message("Información", "No existen datos que restaurar.");
	end
end
Ejemplo APZ:
HIDE: ON
Hidebb Message Hidden Description

Re: Se puede hacer Undo ?

Publicado: 07 Jul 2011 12:22
por abood1987
thanks

Re: Se puede hacer Undo ?

Publicado: 08 Jul 2011 00:04
por CIRCEX
GRacias, pero  al usar ams 7.5 no puedo usar xButton,

Por cierto, es posible instalar y que funcione ams 7.5 en windows 7 a 64 bits ?

Re: Se puede hacer Undo ?

Publicado: 08 Jul 2011 00:24
por xxsolracxx
gracias

Re: Se puede hacer Undo ?

Publicado: 08 Jul 2011 14:05
por CIRCEX
GRacias un millon.......... si funciona el undo !!!!!!!, no es necesario usar xButton como en el ejemplo, simplemete un button para delete y otro button para el undo, ese es el requisito.

Por cierto:::::
Funciona AMS 7.5 en windows 7 a 64 bits ???

Re: Se puede hacer Undo ?

Publicado: 20 Abr 2018 21:41
por luasqlite
Gracias :pc:

Re: Se puede hacer Undo ?

Publicado: 12 May 2018 15:34
por hdd.utilities
graças

Re: Se puede hacer Undo ?

Publicado: 28 Ene 2021 16:09
por lazkopat
thnak you