AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Wie kann ich globale Variable auflösen?

Ein Thema von daschaos · begonnen am 8. Jun 2007 · letzter Beitrag vom 8. Jun 2007
Antwort Antwort
daschaos

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

Wie kann ich globale Variable auflösen?

  Alt 8. Jun 2007, 15: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
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.400 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Wie kann ich globale Variable auflösen?

  Alt 8. Jun 2007, 15:47
Deklarier sie doch als Objektvariablen Deines Formulars. Also stattvar DeinArray: array of TPoint;
Delphi-Quellcode:
type TDeineForm = class(TForm)
  private
  ...
  DeinArray: array of TPoint;
  ...
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Wie kann ich globale Variable auflösen?

  Alt 8. Jun 2007, 15:48
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}
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf