Einzelnen Beitrag anzeigen

Benutzerbild von nano
nano

Registriert seit: 22. Aug 2005
Ort: Deggendorf
51 Beiträge
 
Delphi 7 Enterprise
 
#12

Re: Einige Fragen zu graphics32

  Alt 8. Sep 2005, 22:28
ja das ist ja eben das Problem!

Mit Line() bin ich sehr zufrieden, weil sie auch den letzten Punkt zeichnet und dadurch keine Lücken entstehen. Das habe ich versucht, vorhin zu erklären. Aber bei der Benutzung dieser ZeichenProzedur kommen merkwürdige Fehler auf, sobald der Benutzer außerhalb des erlaubten Bereichs zeichnet. Dies lies sich auch mir der Überprüfung der aktuellen Mausposition nicht vermeiden :-/ Ich weiss überhaupt nicht, was an der Prozedur falsch sein könnte...

Hier alles noch mal von meinem Proggie:

Delphi-Quellcode:
procedure TMain.EingabeMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer; Layer: TCustomLayer);
begin
  Drawing:= True;
  Origin:= Point(X,Y);
  TempEbene.Bitmap.MoveTo(X,Y);
  Status.Panels[0].Text := Format('Origin: (%d, %d)', [X, Y]);
end;

procedure TMain.EingabeMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer; Layer: TCustomLayer);
begin
  if Drawing then
    begin
      DrawShape(TempEbene,Origin,Point(X,Y));
    end;
  PosPt:= Point(X,Y);
  Status.Panels[1].Text := Format('Current: (%d, %d)', [X, Y]);
end;

procedure TMain.EingabeMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer; Layer: TCustomLayer);
begin
  if Drawing then
    begin
      DrawShape(Arbeitsebene,Origin,Point(X,Y));
      Drawing:= False;
    end;
end;




procedure TMain.DrawShape(FocusEbene: TBitmapLayer; Anfangspunkt, Endpunkt: TPoint);
begin
  with FocusEbene.Bitmap do
  begin
    PenColor:= clRed32;
    Brush.Style := bsclear;
    TempEbene.Bitmap.Clear(Color32(0,0,0,0));
    case DrawingTool of
      dtPen:
        begin

         ArbeitsEbene.Bitmap.Line(PosPt.X,PosPt.Y,EndPunkt.X,Endpunkt.Y,clRed32,true); //<<<<<<ohne Lücken aber mit ExceptionFehler
// ArbeitsEbene.Bitmap.LineToAS(EndPunkt.X,EndPunkt.Y); <<<<<< mit Lücken

        end;
    end;
  end;
end;
  Mit Zitat antworten Zitat