Einzelnen Beitrag anzeigen

SirAbraxas

Registriert seit: 23. Feb 2012
3 Beiträge
 
#4

AW: Drawgrid bei Mousedown mit Image "bemalen"

  Alt 20. Jul 2012, 11:40
Rect ist eine In-Parameter und ACol, ARow sind die Inidizes der Spalte/Zeile und nicht die Koordinaten
Kannst du mir das vielleicht noch genauer erklären? ich bin jetzt nicht unbedingt ein Delphi-Profi. :/
Wie müsste es denn richtig lauten?



ich weiß nicht ob ich Dich richtig verstanden habe, suchst Du sowas?
Delphi-Quellcode:
  public
    { Public-Deklarationen }
    MCol,MRow:Integer;
  end;

var
  Form5: TForm5;

implementation

{$R *.dfm}

procedure TForm5.DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
begin
  if (Acol=MCol) and (Arow=Mrow) then DrawGrid1.Canvas.Draw(Rect.left, rect.top, Image1.Picture.Bitmap);
end;

procedure TForm5.DrawGrid1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
   DrawGrid1.MouseToCell(x,y,MCol,MRow);
   DrawGrid1.Invalidate;
end;
Ja im Prinzip soll es so sein, aber es soll bei gedrückter Maustaste die Grafik auf dem Drawgrid "speichern". Also dass es dann wie mit einem Pinsel bemalt wird mit dem Bild. Im Moment wird so ja nur das Bild auf dem Drawgrid bewegt.


Eigentlich funktioniert es mit dieser Methode schon relativ gut:

Delphi-Quellcode:
procedure TForm1.MapDrawgridDrawCell(Sender: TObject; ACol, ARow: Integer; Rect:TRect; State: TGridDrawState);
begin

Rect := Mapdrawgrid.CellRect(ACol, ARow);
Mapdrawgrid.Canvas.Draw(Rect.left, rect.top, AuswahlGrafik);

end;
Allerdings würde ich das lieber "Freihand" machen und nicht mit diesem Auswahlrechteck. Es sollte allerdings trotzdem nur bei gedrückter Maustaste "malen". Ist es möglich dieses blaue Auswahlrechteck auszuschalten?
Hochachtungsvoll,
SirAbraxas

Geändert von SirAbraxas (20. Jul 2012 um 11:52 Uhr)
  Mit Zitat antworten Zitat