Pozwoliłem sobie zaczerpnąć z ostatniego Eksperta kodzik, i zacząłem kombinować z zabisywaniem konfiga programu w bitmapie. Wszystko ok, fajnie działa ale po zdekodownaiu pliku otrzymuję tekst:

ć|Ać|A

Jednak demo z Eksperta dobrze rozkodowuje, więc ja coś musiałem zwalić. Kod:

//...
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ExtDlgs,
TlHelp32, ComCtrls, Buttons;

{...}

procedure TForm1.Button1Click(Sender: TObject);
begin
Image1.Picture.LoadFromFile('procesy.bmp');
if Image1.Picture.Bitmap.PixelFormat <> pf24bit then
exit;
Memo1.Lines.Text := odczytajTekst(Image1.Picture.Bitmap);
end;

{...}

function TForm1.odczytajTekst(bitmap:TBitmap):String;
var
indeksBitu, i, indeks : integer;
liniaObrazu : PByteArray;
bajt : byte;
odkodowanyTekst : String;
begin
indeksBitu := 0;
bajt := 0;
for i := 0 to bitmap.height-1 do
begin
liniaObrazu := bitmap.scanline[i];
indeks := 2;
while indeks < (bitmap.width - 1) * 3 do
begin
if (liniaObrazu[indeks] and 1) = 1 then
bajt := (bajt or (1 shl indeksBitu));
indeksBitu := indeksBitu + 1;
if(indeksBitu = 8) then
begin
if bajt = 0 then
begin
result := odkodowanyTekst;
exit;
end;
odkodowanyTekst := odkodowanyTekst + char(bajt);
indeksBitu := 0;
bajt := 0;
end;
indeks := indeks + 3;
end;
end;
result := odkodowanyTekst;
end;
end.