Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 31-03-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¿Qué no basta mostrar el formulario del memo con ShowModal? Juaría que con esto, sin continue ni ProcessMessages bastaría.



// Saludos
Responder Con Cita
  #2  
Antiguo 31-03-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Te me adelantaste cadetill. Pero reitero lo dicho. No considero necesario ProcessMessages. Dicha línea no se ejecutará mientras esté desplegada la ventana modal. Y en el supuesto de que se ejecutara querría decir que el ciclo sigue corriendo mientras se muestra en lugar de pausarse como se requiere.

// Saludos
Responder Con Cita
  #3  
Antiguo 31-03-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Cita:
Empezado por roman
Te me adelantaste cadetill. Pero reitero lo dicho. No considero necesario ProcessMessages. Dicha línea no se ejecutará mientras esté desplegada la ventana modal. Y en el supuesto de que se ejecutara querría decir que el ciclo sigue corriendo mientras se muestra en lugar de pausarse como se requiere.
Es que no se exactamente lo que quiere conseguir Majo. No se si es lo que tu dices (mostrar otro formulario, con lo cual, tendrías razón) o simplemente dar al usuario la posibilidad de cancelar (acabar) el bucle en cualquier momento
Responder Con Cita
  #4  
Antiguo 31-03-2004
Majo Majo is offline
Miembro
 
Registrado: jun 2003
Posts: 43
Poder: 0
Majo Va por buen camino
Cool

Cita:
Empezado por cadetill
Es que no se exactamente lo que quiere conseguir Majo.
Lo que realmente necesito es pausar el ciclo no salirme de él... para salirme de él creo que basta con Break. Al referirme a pausar, quiero decir que "pare" en cierta linea, para mostrar ciertos datos (POr ejemplo en memobox) y luego dado cierto evento, por ejemplo el click en un botón continue conla lineas del ciclo.

el código es el que sigue

Código:
Convergencia:=False;
while not Convergencia do
begin
    Picalc:=PCalculado(Vi,Di,Y);
    Qicalc:=QCalculado(Vi,Di,Y);
    Pprog:=PProgramada();
    Qprog:=QProgramada();
    DPi:=DP(Picalc,Pprog);
    DQi:=DQ(Qicalc,Qprog);
    DPi:=DividirPorVoltajes(DPi,Vi);
    DQi:=DividirPorVoltajes(DQi,Vi);
    
    HallarSubmatricesHNJL(H,N,J,L,Picalc,Qicalc,Vi,Di,Y);
    SetLength(L,NroDeBarras-1-Ng,NroDeBarras-1-Ng);

    VectorDP:=VectorColumna(DPi,VectorVacio);
    VectorDQ:=VectorColumna(DQi,VectorVacio);
    
    {Acá se debe mostrar una form que posee un memobox y un botón. En     
     el memobox se imprimen los vectores "VectorDP y Vector DQ. es en este 
     linea que quiero que el ciclo se pause y que solo continue cuando se de
     click sobre el boton aceptar. el problema que tengo es que la form se 
      muestra pero el ciclo no se detiene y sigue ejecutándose hasta que
      termina}

    Plasd:=Plasd+1;
    VectorDeltaD:=MultiplicarMatrices(InvMatReal(H),VectorDP);
    VectorDeltaV:=MultiplicarMatrices(InvMatReal(L),VectorDQ);


    if not convergencia then
        begin
         ActualizarV(Vi,VectorDeltaV);
         ActualizarD(Di,VectorDeltaD);
        end;
  end;
Responder Con Cita
  #5  
Antiguo 31-03-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Pues no hay ningún problema. Simplemente muestra el form con ShowModal. Probablemente lo intentas mostrar con Show lo cual, efectivamente, no detendrá el ciclo pero ShowModal sí. Por ejemplo, en este ciclo

Código:
var
  I: Integer;

begin
  for I := 0 to 10000 do
  begin
    Caption := IntToStr(I);
    if I = 5000 then Form2.ShowModal;
  end;
verás que la ejecución se detiene en 5000 y no se reanuda sino hasta que cierras Form2.

// Saludos
Responder Con Cita
  #6  
Antiguo 31-03-2004
Majo Majo is offline
Miembro
 
Registrado: jun 2003
Posts: 43
Poder: 0
Majo Va por buen camino
Cool

Gracias Roman "ShowModal" era precisamente lo que necesitaba.

Gracias al foro por su colaboración.... En cada una de las respuestas aprendemos algo nuevo
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


La franja horaria es GMT +2. Ahora son las 02:07:10.


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