Hallo.
Irgendwie sieht das auch sehr merkwürdig aus, was du da gemacht hast.
Zu deinem Programm gehört sicher mehr, als nur die Callback Funktion deines Button.
Ich gehe mal nicht davon aus, daß dein Programm mit einer Fehlermeldung abstürzt, sondern einfach nur nicht mehr reagiert.
Was ja auch kein Wunder ist, weil du mit deiner repeat - until Schleife jegliches abarbeiten von Messages unterbindest.
Setzt in deine repeat Schleife mal ein 'Application.ProcessMessages()', damit werden dann zumindest noch Nachrichten abgearbeitet.
Ich weiß jetzt ja nicht, wie der Rest des Codes aussieht aber einfach mal ein Writeln oder ReadLn auf ein Socket zu machen, ohne vorher sicherzustellen, daß der überhaupt connected ist, macht eventuell Ärger. Vor allem in einer Methode, die durch Knopfdruck ausgelöst wird, wenn nicht sichergestellt ist, daß der Knopf nur gedrückt werden kann, wenn auch eine Netzverbindung existiert.
Schau dir mal die Indy Beispiele an.
mfg