//*********************************************************************
//*              Change_Name_In_ArticleList 2020-07-09                *
//*                     >> OnArticleListPaint <<                      *
//*                                                                   *
//* Mit diesem Script wird das Aussehen der Thread-Pane beinflusst.   *
//* So wird hier bspw. der Name (From) des Absenders geaendert.       *
//*                                                                   *
//* Funktionalitaet: [x] neutral                                      *
//*                  [ ] nur Basis_Modul                              *
//*                  [ ] nur Pathfinder                               *
//*                                                                   *
//* Datum         : 05.04.2008                                        *
//* Autor         : Thomas Barghahn                                   *
//* Ueberarbeitet : 09.07.2020                                        *
//*                                                                   *
//* DateiName : _i_OSt_DBReminder.ds                                  *
//* Einbindung: {$I _i_OSt_DBReminder.ds}                             *
//* Aufruf    : Result := Change_Name_In_ArticleList (PaintString);   *
//*********************************************************************
procedure Init_Change_Name_In_ArticleList ( var MyDialogFolder : String;
                                            var MyIniFile      : String
); 

begin

//{-------------------------------------------------------------------}
//{                 Anwenderspezifische Einstellungen                 }
//{-------------------------------------------------------------------}
        
    // set the ´name(s) you want to change in File "MyIniFile"
    
    MyDialogFolder := GetCurrentDir + '\';
    MyIniFile := 'paint_names.ini';

end;
//{-------------------------------------------------------------------}
//{                       Ende der Einstellungen                      }
//{-------------------------------------------------------------------}

//{===================================================================}
//{           !!!  Ab hier bitte nichts mehr ändern  !!!              }
//{===================================================================}

//--[ Function Change_Name_In_ArticleList ]----------------------------

function Change_Name_In_ArticleList ( PaintString : widestring
) : widestring;

var k, MaxInt        : integer;
    DelimiterPos     : integer;
    rf               : TReplaceFlags;
    MyDialogFolder   : String;
    MyIniFile        : String;
    NameList         : TStringList;
    ChangeNameList   : TStringlist;
    ReplaceNameList  : TStringList;
     
begin
   rf := [rfReplaceAll];
   MaxInt := 2147483647;
   Init_Change_Name_In_ArticleList ( MyDialogFolder, MyIniFile);
      try
        NameList := TStringlist.Create;
        NameList.LoadFromFile(MyDialogFolder + MyIniFile);
         ReplaceNameList := TStringlist.Create;
         ChangeNameList := TStringlist.Create;
         NameList.Add (#10#13);
         for k := 0 to NameList.Count - 1 do begin
            If copy (NameList[k], 1, 1) <> ';' then begin
               DelimiterPos := pos (',', NameList[k]);
               ChangeNameList.Add  (trim (copy ( NameList[k], 1,
                                    DelimiterPos - 1 )));
               ReplaceNameList.Add (trim (copy ( NameList[k], 
                                    DelimiterPos + 1, MaxInt )));
            end; // if
         end; // for  
         k := 0;  
         while k <= ( ChangeNameList.Count - 1 ) do begin
            if (pos( ChangeNameList[k], PaintString ) <> 0) then begin
                  PaintString := StringReplace(PaintString,
                                 ChangeNameList[k],
                                 ReplaceNameList[k],rf);
            end;
            k := k + 1;
         end; // while
      finally
      NameList.Free;
      ChangeNameList.Free;
      ReplaceNameList.Free;
      end; // try - finally
   result := PaintString;    
end; // function

//--[ Ende Function Change_Name_In_ArticleList ]-----------------------