Hallo,
ich habe eine grafik wo ich gerne die grafik makieren möchte wo der mauszeige drunter ist d.h. die grafik ist 49 pixel breit und 198 pixel hoch.
jetzt möchte ich gerne das das Aktuelle Bild rot makiert wird(kein problem) und beim verlassen wider silber makiert wird(auch kein problem.
Jetzt kommt das eigentliche problem:
sobalt ich die Spalte wechsel ändert er die farbe von der vohrieren spalte nicht.
Ich habe im anhang die beispiel exe eingefigt.
und hier ist der code:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
Image1.Picture.LoadFromFile('D:\Daten\eigene\delphi\grafik\Paint1\icons\werkzeuge.bmp');
Image1.Width:=BW;
Image1.Height:=BH;
AX:=BW div 2;
AY:=BH div 8;
Label1.Caption:=IntToStr(AX) + ':' + IntToStr(ay);
end;
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
m:Integer;
begin
Label8.Caption:=IntToStr(ox) + ':' + IntToStr(oy);
Label2.Caption:=IntToStr(X) + ':' + IntToStr(y);
IX:=(X div 24)+1;
IY:=(y div 24)+1;
Label3.Caption:=IntToStr(ix) + ':' + IntToStr(iy);
Edit1.Text:=ColorToString(Image1.Canvas.Pixels[x,y]);
if x < 24 then
m:=0
else
m:=25;
if Image1.canvas.Pixels[x,y] = clsilver then begin
Image1.Canvas.Brush.Color:=clRed;
Image1.canvas.FloodFill(m,(iy*24)-10,clSilver,fsSurface);
end;
if Image1.canvas.Pixels[x,y] = clRed then begin
if ((iy*24)-10 <> oy) then begin
Image1.Canvas.Brush.Color:=clSilver;
Image1.canvas.FloodFill(m,oy,clRed,fsSurface);
oy:=(iy*24)-10;
end;
end;
ox:=m;
end;
Ich hoffe einer von euch kann mir bei MEINEM problem behilich sein. Das währe für mich sehr hilfreich wenn *G*.
Vielen dank schonmal im voraus.