procedure TFrmMain.SetRichEdit;
function UTF8ToRTF(const s: string): string;
var
ws: unicodestring;
i: integer;
c: widechar;
code: integer;
begin
Result := '';
ws := UTF8Decode(s);
for i := 1 to Length(ws) do
begin
c := ws[i];
code := Ord(c);
// escape caratteri RTF
if (c = '\') or (c = '{') or (c = '}') then
Result := Result + '\' + UTF8Encode(c)
// ASCII normale
else if (code >= 0) and (code <= 127) then
Result := Result + UTF8Encode(c)
// Unicode (accenti ecc.)
else
Result := Result + '\u' + IntToStr(code) + '?';
end;
end;
var
ss: TStringStream;
txt: string;
begin
RichMemo1.Clear;
{$IFDEF LINUX}
// ✅ Linux + macOS: testo semplice (stabile)
txt :=
'Note (scorri fino alla fine per leggere tutte le informazioni):' + LineEnding + LineEnding +
'Il programma carica all''avvio il file di configurazione nella cartella documenti con il nome predefinito:' + LineEnding +
'backup_configLaz.rbak' + LineEnding + LineEnding +
'Esempio è possibile cambiare nome file di configurazione e percorso:' + LineEnding +
'./lazbackupincrementalerar --tray --load "/home/vincenzo/Configurazioni/backup_casa.rbak"' + LineEnding + LineEnding +
'I parametri non sono obbligatori.' + LineEnding + LineEnding +
'Linux (Ubuntu/Debian): installa dai repository ufficiali:' + LineEnding +
'Installazione RAR trova il percorso:' + LineEnding +
'sudo apt update' + LineEnding +
'sudo apt install rar unrar' + LineEnding +
'Test per verificare l''installazione:' + LineEnding +
'which rar' + LineEnding +
'which unrar'+ LineEnding +
'sudo find / -name rar 2>/dev/null' + LineEnding ;
RichMemo1.Clear;
RichMemo1.Text := txt;
{$ELSE}
ss := TStringStream.Create('{\rtf1\ansi\deff0' + '{\fonttbl' +
'{\f0\fswiss Helvetica;}' + '{\f1\fmodern Courier New;}' +
'}' + '{\colortbl ;\red0\green0\blue255;}' + '\fs24 ' + '\b ' +
UTF8ToRTF('Note (scorri fino alla fine per leggere tutte le informazioni):') +
'\b0\par\par ' + UTF8ToRTF(
'Il programma carica all''avvio il file di configurazione che si trova nella cartella documenti:')
+ '\par ' + '\b backup_configLaz.rbak\b0\par\par ' +
UTF8ToRTF('Esempio:') + '\par ' +
'\f1\b LazBackup.exe /tray /load "C:\\Configurazioni\\backup_casa.rbak"\b0\f0\par\par '
+
UTF8ToRTF('I parametri non sono obbligatori, servono ad automatizzare la procedura.') +
'\par\par ' + UTF8ToRTF('Installa RAR dal sito ufficiale:') +
'\par ' + '\b https://www.rarlab.com\b0\par\par ' +
UTF8ToRTF('Per macOS:') + '\par\par ' + UTF8ToRTF(
'Verifica se è già installato da terminale con il comando:') +
'\par ' + '\cf1\f1\b sudo find / -name rar 2>/dev/null\b0\f0\cf0\par\par ' +
UTF8ToRTF('Per installarlo usa Homebrew. Se Homebrew non è installato, installalo:') + '\par ' +
'\cf1\f1\b /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"\b0\f0\cf0\par\par '
+
UTF8ToRTF('Installa RAR con Homebrew:') + '\par ' +
'\cf1\f1\b brew install rar\b0\f0\cf0\par ' + '}');
ss.Position := 0;
RichMemo1.LoadRichText(ss);
ss.Free;
{$ENDIF}
end;