Canvas Prozeduren unter Mac OS X 10.8.3 funktionieren nicht.

Antworten
Paulifan1000
Beiträge: 42
Registriert: Mo 27. Aug 2012, 20:23
OS, Lazarus, FPC: Windows 10, L 1.4.4 FPC 2.6.4
CPU-Target: 32Bit 64Bit
Wohnort: Hamburg
Kontaktdaten:

Canvas Prozeduren unter Mac OS X 10.8.3 funktionieren nicht.

Beitrag von Paulifan1000 »

Liebes Forum,

Folgender Code zeichnet unter Windows(7) ein Koordinatensystem.
Unter Mac OS X 10.8.3 funktioniert dies jedoch nicht, Das Panel bleibt leer.

Es tritt weder ein Kompilierfehler noch ein Runtimeerror auf, es passiert einfach nichts...
Habt ihr ähnliche Probleme, oder mache ich etwas falsch?

Hier ist nochmal der Code (Ist da etwas Plattformabhängiges drin?) :

Code: Alles auswählen

procedure TMainform.Render;
var
  i,X:integer;
  Series: TFuncSeries;
begin
  //DE: Grundieren
  //EN: Clear DrawPanel
  DrawPanel.Canvas.Clear;
  //DE: Koordinatensystem zeichen
  //EN: Draw coordinatesystem
  DrawPanel.Canvas.Pen.Color:=clBlack;
  DrawPanel.Canvas.Line(0,Round(DrawPanel.Height/2),DrawPanel.Width,Round(DrawPanel.Height/2));
  DrawPanel.Canvas.Line(Round(DrawPanel.Width/2),0,Round(DrawPanel.Width/2),DrawPanel.Height);
  //DE: Parabeln zeichnen
  //EN: Draw parable
  DrawPanel.Canvas.Pen.Color:=clBlue;
  if Edit_Memo.Lines.Count=0 then exit;
  for i:=0 to Edit_Memo.Lines.Count-1 do
  for X:=0 to DrawPanel.Width do
  DrawPanel.Canvas.Line(
  X,XtoY(X-Round(DrawPanel.Width/2),Edit_Memo.Lines.Strings[i])+Round(DrawPanel.Height/2),
  X+1,XtoY(X-Round(DrawPanel.Width/2)+1,Edit_Memo.Lines.Strings[i])+Round(DrawPanel.Height/2)
  );
end;           
Sei immer du selbst
Ausser du kannst ein Einhorn sein
Dann sei ein Einhorn

Benutzeravatar
theo
Beiträge: 8395
Registriert: Mo 11. Sep 2006, 19:01

Re: Canvas Prozeduren unter Mac OS X 10.8.3 funktionieren ni

Beitrag von theo »

Paulifan1000 hat geschrieben:Unter Mac OS X 10.8.3 funktioniert dies jedoch nicht, Das Panel bleibt leer.

Es tritt weder ein Kompilierfehler noch ein Runtimeerror auf, es passiert einfach nichts...
Habt ihr ähnliche Probleme, oder mache ich etwas falsch?


Man zeichnet immer im OnPaint-Event.
Während gewisse Umgebungen nicht so strikt sind, geht etwas anderes bei Mac Carbon gar nicht.
http://wiki.freepascal.org/Carbon_inter ... _supported

Antworten