Bonjour à tous,

Je reprends de vieux prgrammes (Quand je dis "vieux" c'est du Delphi 1.0) voire du Pascal 5.0 qui marchait avant windows.
Voilà. Ma mémoire me fait défaut Surtout quand il y a des pointeurs explicites et pire encore si je dois leur affecter une valeur.
Si je fais
Code : Sélectionner tout - Visualiser dans une fenêtre à part
 Byte(Dest^)  := fOwner.GammaTable[pByte(Longint(Src) + 2)^];
Le compilateur me renvoie "La partie gauche n'est pas affectable".

Donc voilà

Je bute depuis des heures sur un code pourtant très simple (voir ci-dessous) Il s'agit juste de récupérer des couleurs RGB dans une chaîne.
Je voudrais, dans la mesure du possible ne pas faire des lourdes modifs qui reviendraient finalement à tout ré-écrire en Delphi XE10.2 Tokyo.

Donc, avant que de tout mettre en commentaire et de faire du code "à la sauvage", j'ai pensé que poser la question sur ce forum serait une bonne idée.

Qu' elqu'un at'il une idée?


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
procedure TChunkIDAT.CopyInterlacedRGB8(const Pass: Byte;
  Src, Dest, Trans{$IFDEF Store16bits}, Extra{$ENDIF}: pChar);
var
  Col: Integer;
  i:byte;
begin
  {Get first column and enter in loop}
  Col := ColumnStart[Pass];
  Dest := pChar(Longint(Dest) + Col * 3);  //3 colonnes
 
  repeat
    {Copy this row}
    Byte(Dest^)  := fOwner.GammaTable[pByte(Longint(Src) + 2)^];
    inc(Dest);
    Byte(Dest^)  := fOwner.GammaTable[pByte(Longint(Src) + 1)^];
    inc(Dest);
    Byte(Dest^)  := fOwner.GammaTable[pByte(Longint(Src)    )^];
    inc(Dest);
 
 
    {Move to next column}
    inc(Src, 3);
    inc(Dest, ColumnIncrement[Pass] * 3 - 3);
    inc(Col, ColumnIncrement[Pass]);
  until Col >= ImageWidth;
 
 
end;
Il est tard et le mieux est de reprendre cela demain matin à tête reposée au lieu de me lancer dans une grosse reprogrammation façon "bourrin" qui dénaturera ce
programme.

Merci d'avance à tous ceux dont la mémoire n'a pas flanché sur le Pascal des neiges d'antan et qui auraient une idée.

Vadim