[Linux] Deux boutons avec le même code ne fonctionnent pas de la même manière
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:
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:
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, :mrgreen:), quand je dis à Gilles que ces machines ont une existence autonome il ne me croit pas, et pourtant…
Bon dimanche,