Ver Mensaje Individual
  #3  
Antiguo 19-05-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 31
Lepe Va por buen camino
Cita:
conseguir ese efecto de deshacer/rehacer ilimitado, no restringido a solo texto
El hecho de ser "ilimitado" es simplemente una lista de Objetos que crea/destruye los elementos dinámicamente, no quiere decir nada más.

Deberías concretar más sobre qué quieres aplicar el Deshacer/Rehacer.

Si un objeto tiene un método para pintar una linea:

Linea( origenX, OrigenY, DestinoX, destinoY:integer)

Puedes guardar los parámetros perfectamente y crear un método UndoLinea que elimine la linea.

Cuando se use el método Linea para pintar, guardas en una variable de tipo puntero el método UndoLinea, y eso es lo que añades a las pilas.

Aqui tienes 2 funciones, suma y resta; en un momento determinado cogemos una de las funciones, la guardamos en una variable "sel", y despues la mandamos a ejecutar.

Código Delphi [-]
type
  Tseleccion = function (a,b:Integer):Integer;

function Suma(a,b:integer):integer ;
begin
  Result := a+b;
end;

function Resta(a,b:integer):integer ;
begin
  Result := a-b;
end;

procedure TForm1.Button1Click(Sender: TObject);
  var sel:Tseleccion;
begin
   sel := Suma;
   ShowMessage(IntToStr(sel(3,5))); // Ejecutamos la función
end;

Espero sea lo que pidas o al menos te dé alguna idea

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 19-05-2006 a las 14:58:32.
Responder Con Cita