Delphi Dictionary und Bestelldaten

Mein Code ist:

procedure TfrmSettings.btnFillDictClick(Sender: TObject);
var
  Dict: TDictionary<string, string>;
  Item: TPair<string, string>;
begin
  Dict := TDictionary<string, string>.Create();

  Dict.Add('Key1', 'Text1');
  Dict.Add('Key2', 'Text2');
  Dict.Add('Key3', 'Text3');
  Dict.Add('Key4', 'Text4');

  for Item in Dict do
  begin
    ShowMessage(Item.Key + ' ' + Item.Value);
  end;    
end;

Warum erhalte ich fast jedes Mal einen anderen Wert in Showmessage?
Warum werden Werte nicht in der Reihenfolge gespeichert, in der sie hinzugefügt wurden?

Ich bin ein Noob in Delphi und weiß nicht, wie Dictionary funktioniert. Und ich habe keine Informationen dazu in Google gefunden. Kannst du mir bitte erklären, warum das so ist?
Gibt es eine Möglichkeit, Dictionary zu verwenden, ohne TList <> zum Sortieren von Daten zu verwenden?

Vielen Dan

Antworten auf die Frage(2)

Ihre Antwort auf die Frage