ProgressMessageEx (ihm)

De Wiki1000
(Différences entre les versions)
(Page créée avec « <source lang='delphi'>procedure ProgressMessageEx(iStatus:TMessageStatus; const iMessage:string);</source> Cette procedure affiche un message de progression dans l'interf... »)
 
Ligne 16 : Ligne 16 :
 
Exemple:
 
Exemple:
 
<source lang='delphi'>
 
<source lang='delphi'>
var ctn:Integer; aReason:string;
+
//Procedure Execute;
begin  
+
var idx:Integer; AStr,Info:string;
   ctn := 0;
+
begin
 +
   ProgressClear;
 +
  ProgressMessage('Un processus exécuté');
 +
//  TestPatternForEach2;
 +
 
 
   ProgressClear;
 
   ProgressClear;
 
   ProgressClearMessage;
 
   ProgressClearMessage;
   ProgressMax(100);
+
   ProgressEvent('',0,0);
   //
+
   Info := 'Lot 1';  
  Cursor := MyClass.CreateCursor;
+
   for idx:=1 to 100 do
   Cursor.Open;
+
  begin
  try
+
    AStr := inttostr(idx) + ' '+InstanceOID+' '+intTostr(Classmanager.CurrentTranContext);
  Cursor.First;
+
    if (idx mod 10=0) then Info := Format('lot %d',[1+(idx div 10)]);
  while not Cursor.Eoi do
+
    begin
+
      ....
+
      if UserAbort then raise Exception.Create('Traitement interrompu');
+
 
        
 
        
      if _doSomething(aReason)  
+
    if idx mod 10=1 then
        then ProgressMessage(msgSuccess,Format(_TP('Traitement de l''instance %s, OK'),[Cursor.Instance.Caption]))
+
      begin
        else ProgressMessage(msgError,Format(_TP('Traitement de l''instance %s, Erreur %s'),[Cursor.Instance.Caption, aReason]));
+
        ProgressMessageEx(MSGSTATUS_HEADER,'Header: '+AStr);
 
+
      end
       ProgressValue(ctn mod 100);
+
      else
       Cursor.Next;
+
    if idx mod 10=2 then
       ctn := ctn+1;
+
      begin
    end;
+
        ProgressMessageEx(MSGSTATUS_SUCCESS,'Success: '+AStr);
  finally
+
      end
  ProgressFull;
+
      else
  Cursor.Close;
+
    if idx mod 10=3 then
   end;
+
      begin
 +
        ProgressMessageEx(MSGSTATUS_ERROR,'Error: '+AStr);
 +
      end
 +
      else  
 +
    if idx mod 10=4 then
 +
      begin
 +
        ProgressMessageEx(MSGSTATUS_FAILED,'Failed: '+AStr);
 +
      end
 +
      else
 +
    if idx mod 10=5 then
 +
      begin
 +
        ProgressMessageEx(MSGSTATUS_REQUIRE_ACTION,'Action: '+AStr);  
 +
      end
 +
       else
 +
    if idx mod 10=6 then
 +
      begin
 +
        ProgressMessageEx(MSGSTATUS_ALERT,'Alerte: '+AStr);  
 +
       end
 +
       else
 +
      ProgressMessage('Message: '+AStr);
 +
    //
 +
    ProgressEvent(Info,idx,100);  
 +
    if UserAbort then break;
 +
    sleep(200);  
 +
  end;
 +
   ProgressEvent('',100,100);
 
end;
 
end;
 
</source>   
 
</source>   

Version du 9 février 2018 à 16:11

procedure ProgressMessageEx(iStatus:TMessageStatus; const iMessage:string);

Cette procedure affiche un message de progression dans l'interface utilisateur.

iStatus Le type de message
iMessage Le message à afficher
Info-20px.png Note : Suivant le style de l'interface utilisateur le message peut être affiché dans une zone libellé ou dans une liste.

Exemple:

//Procedure Execute;
var idx:Integer; AStr,Info:string;
begin
  ProgressClear;
  ProgressMessage('Un processus exécuté');
//  TestPatternForEach2;
 
  ProgressClear;
  ProgressClearMessage;
  ProgressEvent('',0,0);
  Info := 'Lot 1'; 
  for idx:=1 to 100 do
   begin
     AStr := inttostr(idx) + ' '+InstanceOID+' '+intTostr(Classmanager.CurrentTranContext);
     if (idx mod 10=0) then Info := Format('lot %d',[1+(idx div 10)]);
 
     if idx mod 10=1 then
      begin
        ProgressMessageEx(MSGSTATUS_HEADER,'Header: '+AStr); 
      end 
      else 
     if idx mod 10=2 then
      begin
        ProgressMessageEx(MSGSTATUS_SUCCESS,'Success: '+AStr); 
      end 
      else 
     if idx mod 10=3 then
      begin
        ProgressMessageEx(MSGSTATUS_ERROR,'Error: '+AStr); 
      end 
      else 
     if idx mod 10=4 then
      begin
        ProgressMessageEx(MSGSTATUS_FAILED,'Failed: '+AStr); 
      end 
      else 
     if idx mod 10=5 then
      begin
        ProgressMessageEx(MSGSTATUS_REQUIRE_ACTION,'Action: '+AStr); 
      end 
      else 
     if idx mod 10=6 then
      begin
        ProgressMessageEx(MSGSTATUS_ALERT,'Alerte: '+AStr); 
      end 
      else 
      ProgressMessage('Message: '+AStr);
     // 
     ProgressEvent(Info,idx,100); 
     if UserAbort then break;
     sleep(200); 
   end;
  ProgressEvent('',100,100);
end;

Voir aussi:

Interactions utilisateurs (code)Développement DSM

Outils personnels