Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#15

Re: Game Of Life - ich könnte etwas Hilfe gebrauchen, bitte

  Alt 14. Feb 2008, 20:25
Hi,

Zitat von Lenuam:
... Ich will dass der Timer beim "Leben starten" Button anfängt zu laufen mit einem Intervall von 1 Sekunde. ...
das Standardintervall ist 1000 (Angabe in Millisekunden). Der Timer feuert das Ereignis OnTimer() nur, wenn seine Eigenschaft Enabled auf True gesetzt wird. Also solltest du Enabled im Object Inspector auf False setzen und diese Eigenschaft über deinen Button verändern.

Zitat von Lenuam:
... Bei Pause/Weiter soll entsprechend der Prozess pausiert und fortgeführt werden, und mit der Scrollleiste soll das Intervall veränderbar sein. ...
Den Scrollbalken baust du selbst ein. Die momentane Position kannst du beim Ereignis OnChange als Intervall des Timers festlegen.

Zitat von Lenuam:
... Außerdem wäre ich euch sehr dankbar, wenn ihr mir erklären könntet wie ich möglichst leicht die Zellen des StringGrids einfärben kann...also das immer wenn momentan ein * erscheint, sich anstattdessen die Zelle färbt. ...
Das könnte etwa so aussehen:

Delphi-Quellcode:
const
  LifeColor: array [Boolean] of TColor = (clWhite, clBlue);

procedure TLifeForm.StringGridDrawCell(Sender: TObject; ACol,
  ARow: Integer; Rect: TRect; State: TGridDrawState);
begin
  with Sender as TStringGrid do
  begin
    Canvas.Brush.Color := LifeColor[OL[ARow, ACol]];
    InflateRect(rect, -2, -2);
    Canvas.FillRect(rect);
  end;
end;
Die Eigenschaft DefaultDrawing des Grids schaltest du dann einfach ab. Das Zeichnen des Grids erzwingst du durch StringGrid.Invalidate an geeigneter Stelle.

Freundliche Grüße
  Mit Zitat antworten Zitat