Registriert seit: 2. Jan 2006
Ort: Wüstenrot
235 Beiträge
Turbo Delphi für Win32
|
Re: [Editor] DrawBall - Editor
2. Dez 2006, 21:54
Ich hab da mal einen Trick beim Zeichnen des Positionsrechtecks eingebaut, dann klappts auch bei mir.
Kompilieren geht nicht wirklich gut Da Ich nur Delphi 2005 hab.
Delphi-Quellcode:
procedure TForm1.iFocusMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
raster : RPoint;
begin
raster := RPoint(Point(X div 20, Y div 20));
if (raster.x <> oldPos.x) or (raster.y <> oldPos.y) then begin
oldPos := raster;
iFocus.Picture.Assign(iMap.Picture); // <-- Hier zeichne ich einfach die Map in die Auswahlgrafik da scheinbar die Map von der Auswahlgrafik überschrieben wird
iFocus.Canvas.MoveTo((raster.x) * 20 + 1, (raster.y) * 20);
iFocus.Canvas.LineTo((raster.x + 1) * 20 - 1, (raster.y) * 20);
iFocus.Canvas.MoveTo((raster.x) * 20 + 1, (raster.y + 1) * 20 - 1);
iFocus.Canvas.LineTo((raster.x + 1) * 20 - 1, (raster.y + 1) * 20 - 1);
iFocus.Canvas.MoveTo((raster.x) * 20, (raster.y) * 20 + 1);
iFocus.Canvas.LineTo((raster.x) * 20, (raster.y + 1) * 20 - 1);
iFocus.Canvas.MoveTo((raster.x + 1) * 20 - 1, (raster.y) * 20 + 1);
iFocus.Canvas.LineTo((raster.x + 1) * 20 - 1, (raster.y + 1) * 20 - 1);
end;
end;
procedure TForm1.iFocusMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
raster : RPoint;
begin
if (selected <= 7) and (selected >= 2) then
iMap.Canvas.Draw((x div 20) * 20, (y div 20) * 20, preBitMaps[0]);
iMap.Canvas.Draw((x div 20) * 20, (y div 20) * 20, preBitMaps[selected]);
Map[x div 20][y div 20] := selected;
raster := RPoint(Point(X div 20, Y div 20)); //<-- Nach dem Zeichnen auf die Grafik muss natürlich die AuswahlGrafik neu gezeichnet werden
iFocus.Picture.Assign(iMap.Picture);
iFocus.Canvas.MoveTo((raster.x) * 20 + 1, (raster.y) * 20);
iFocus.Canvas.LineTo((raster.x + 1) * 20 - 1, (raster.y) * 20);
iFocus.Canvas.MoveTo((raster.x) * 20 + 1, (raster.y + 1) * 20 - 1);
iFocus.Canvas.LineTo((raster.x + 1) * 20 - 1, (raster.y + 1) * 20 - 1);
iFocus.Canvas.MoveTo((raster.x) * 20, (raster.y) * 20 + 1);
iFocus.Canvas.LineTo((raster.x) * 20, (raster.y + 1) * 20 - 1);
iFocus.Canvas.MoveTo((raster.x + 1) * 20 - 1, (raster.y) * 20 + 1);
iFocus.Canvas.LineTo((raster.x + 1) * 20 - 1, (raster.y + 1) * 20 - 1);
end;
Tschau Christian
Das System hofft auf Besserung
[Siemens]
|
|
Zitat
|