0. Так случилось, что лет 6 назад я написал приложение на Delphi7 и оно стало активно использоваться в моём родном техникуме. С тех пор я ушёл далеко в системное администрирование, а про программирование подзабыл даже то малое, что знал тогда. Сейчас же в полный рост встала задача: доработать программу, с учётом замечаний, которых за годы накопилось чуток. Так как большинство внешне безобидных недоработок упираются в самую суть тогдашних моих извращений, то я решил переделать заново, оставив только внешний вид и идею.
С тех пор как писалось исходное приложение (оно, кстати, позволяет проводить тестирование студентов, передачу итогов по сети серверу, подведение итогов без участия преподавателя, формирование отчёта и хранение некоторой базы ранее созданных тестов) я стал заядлым линуксятником, да и техникум перешёл на использование смешанной сети Win-Lin. Короче, при обдумывании созрело у меня несколько вопросов разного толка. Возможно, несколько тупых, всё-таки много лет прошло, да и тогда я супер-программистом не был, слова "классы" и "объекты" меня несколько смущают.
Если надобно разбить вопросы на части, не проблема, разобью. Только, пожалуйста, если можно приведите примеры кода, как это когда-то было в проекте DelphiWorld, с описанием! Без примеров я точно буду лет триста разбираться. Полученную софтину обязательно опубликую летом, если кому-то интересно порождение этого быдлописательства (заодно с актом о внедрении и исходниками

Итак:
1. Как правильнее узнать системные пути, кроссплатформенно чтобы? Требуется для считывания файлов конфигурации (в Linux и Windows пути разные будут). Ну или способ узнать, какая текущая ОС, и уже ориентируясь на это искать файл конфигурации.
2. Как передать от одного приложения другому по сети файлик мегабайт на 50-100, зная только IP-адрес "сервера", то есть приложения, которое должно отдать файлик? Ну и так же, надо потом отдать файлик с итогом на тот же сервер. В исходном приложении у них просто есть общая папка на windows-шаре, хотелось бы уйти от такого костыля.
3. Как перевести картинку в Base64, чтоб можно было сохранить её внутри текстового файла? Ну и как его потом вытащить в массив пикселей, например. Может, есть альтернативные решения?
4. Как отобразить картинку, не используя LoadFromFile(), как это сделано в исходном приложении? Очень не хочется опять создавать TEMP-папку, распаковывать в неё файлики-картинки и оттуда подгружать.
5. Как учесть разрешение монитора? Я предполагаю, надо считать ВЫСОТАхШИРИНА и задать размеры контролов в процентах от этого значения. Или я серьёзно не прав? Если же прав, то как узнать эти значения кросплатформенно?
6. Есть ли способ как-то по-простому зашифровать файлик? Стойкости особо не надо, лишь бы блокнотом не открывалось как простой текст, в принципе.
7. Как вызвать приложение, находящееся в той же директории, что и вызывающее его? Желательно, кроссплатформенно.