Einzelnen Beitrag anzeigen

daschaos

Registriert seit: 23. Mai 2007
117 Beiträge
 
Delphi 2006 Professional
 
#1

Wie kann ich globale Variable auflösen?

  Alt 8. Jun 2007, 16:37
Nich schlagen, ich bin noch relativer Programmieranfänger und ich weiß einfach nich so recht, wie ich dieses Problem lösen soll, ohne das Array global zu deklarieren .

Ich habe eine Zeichenmethode, in der ich 2 Punkte P und Q übergeben bekomme, diese möchte ich in Arrays speichern:

Delphi-Quellcode:
procedure PaintRectangle(P,Q: TPoint; Layer: Integer; Caption: WideString; Counter: Integer);
var
  Rect: TRect;
begin
  Rect.TopLeft := P;
  Rect.BottomRight := Q;
  SetLength(PointsArrayP, 20);
  SetLength(PointsArrayQ, 20);
  PointsArrayP[Counter] := P;
  PointsArrayQ[Counter] := Q;
  Canvas.Brush.Color := LayerColorScheme(Layer);
  Canvas.Pen.Color := clBlack;
  Canvas.Pen.Width := 4;
  Canvas.Rectangle(Rect);
  Canvas.TextRect(Rect, P.X, P.Y, Caption);
end;
Im MouseMove-Event muss ich halt auf die Daten der Arrays zugreifen:

Delphi-Quellcode:
procedure TTreemapChart.MouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);
var
  i, help: Integer;
begin
  help := Length(PointsArrayP);
  for i := 0 to help-1 do
  begin
    if (PointsArrayP[i].X <= X) and (X <= PointsArrayQ[i].X) and (PointsArrayP[i].Y <= Y) and (Y <= PointsArrayQ[i].Y) then
      Self.Hint := DoGetHint(i);
  end;
end;
Momentan hab ich die Arrays halt global deklariert, muss das aber irgendwie wegbekommen. Wie mach ich das?
  Mit Zitat antworten Zitat