Bonjour,

c'est le cadeau du dimanche, et je sens que ça va vous plaire.

J'essaye de faire très court et je vais à l'essentiel :

un bouton se comporte comme attendu,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
procedure TForm1.Button1Click(Sender: TObject);
var  B1, B2: TBitmap;    P1, P2: PByte;    w1, h1: integer;
begin
  B1 := Image1.Picture.Bitmap;  B2 := Image2.Picture.Bitmap;
  P2 := B2.ScanLine[0];
  for h1 := 0 to B1.Height -B2.Height -1 do begin
    P1 := B1.ScanLine[h1];
    for w1 := 0 to B1.Width -B2.Width -1 do begin
      if CompareMem(P1, P2, B2.Width *3) then // ok
et l'autre prend des initiatives douteuses :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
procedure TForm1.Button2Click(Sender: TObject);
... // tout pareil que l'autre
    for w1 := 0 to B1.Width -B2.Width -1 do begin
      if CompareMem(P1, P2, B2.Width *3) then // kc ! ! !
// il faut impérativement faire 
      if CompareMem(@P1[w1], @P2[0], B2.Width *3) then // ok
// pour avoir le résultat espéré
Je précise que j'ai désactivé les optimisations du compilateur, et que les deux boutons sont dans le même programme, pas dans deux séparés.
Je précise également qu'il s'agit des mêmes fichiers de travail, ceux-ci étant ouverts dans le FormCreate.

Voilà, c'est à peu près tout, j'imagine que personne n'aura d'idée, c'est pas grave, ça m'aura fait du bien d'en parler ("allongez-vous et racontez-moi", on se croirait chez le psy, ), quand je dis à Gilles que ces machines ont une existence autonome il ne me croit pas, et pourtant…

Bon dimanche,