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,
et l'autre prend des initiatives douteuses :
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
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.
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 é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,
Partager