![]() |
Wie kann ich globale Variable auflösen?
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:
Im MouseMove-Event muss ich halt auf die Daten der Arrays zugreifen:
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;
Delphi-Quellcode:
Momentan hab ich die Arrays halt global deklariert, muss das aber irgendwie wegbekommen. Wie mach ich das?
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; |
Re: Wie kann ich globale Variable auflösen?
Deklarier sie doch als Objektvariablen Deines Formulars. Also statt
Delphi-Quellcode:
var DeinArray: array of TPoint;
Delphi-Quellcode:
type TDeineForm = class(TForm)
private ... DeinArray: array of TPoint; ... end; |
Re: Wie kann ich globale Variable auflösen?
Wo liegt denn deine Paintrectangle-Funktion? Und wie kannst du von dort auf das Canvas-Objekt zugreifen (welches auch immer)?
Grundsätzlich müsste es so aussehen:
Delphi-Quellcode:
unit ....
interface type TTreeMapChart=class(...) ... {was auch immer hier steht} private {hier deine Variablen} PointsArrayP,PointsArrayQ: array of .... public procedure paintrectangle(....) end; .... implementation procedure TTreeMapChart.paintrectangle(...) {hier deine Prozedur Du kannst jetzt auf alle Variablen aus dem Objekt TTreeMapChart zugreifen} begin ... end; {und so weiter} |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz