![]() |
dynamische array überall verfügbar machen...
tach zusammen
angenommen ich hab in meinem hauptprogramm eine variable als
Delphi-Quellcode:
deklariert und möchte auf dieses array in einer selbstgeschriebenen komponente zugreifen, bzw. ändern. wie mach ich das am besten? sicherlich mit zeigern, aber wie?
var dynarray: array of TDingsBums
|
Vorneweg eine wichtige Frage. Wenn mehrere Komponenten auf dieses Array zugreifen, soll jede Komponente ihr eigenes Array haben, oder sollen alle auf das gleiche Array zugreifen?
...:cat:... |
alle komponenten sollen auf die selben daten zugreifen können...
|
Hallo,
Deine Komponenten wissen nichts vom Hauptprogramm aber das Programm kennt die Kompo's. Dies bedeutet, Du deklarierst das Array in einer globalen Unit, auf die dann alle Programmteile zugreifen können. |
Wenn nur Deine Komponente darauf zugreifen soll, dann ist es am besten, dieses Array im implementation Teil der Unit Deiner Komponente zu deklarieren.
...:cat:... |
meine überlegungen waren eher dahingehend, dass ich den komponenten zeiger auf das array übergebe. klappt das, oder haben die komponenten keinen zugriff auf den speicher des hauptprogramms?
|
An welcher Stelle möchtest Du denn den Zugriff auf das Array gewähren. Wird das Array durch Dein Hauptprogramm definiert oder durch eine Deiner Komponenten?
...:cat:... |
also:
in meinem hauptprogramm hab ich ein dyn. array das lauter koordinaten enthält. außerdem hab ich eine komponente die diese koordinaten darstellen soll. um das tun zu können, muss die komponente logischerweise irgenwie an die werte rankommen. außerdem soll die komponente koordinaten zu dem array im hauptprogramm hinzufügen können. |
Ich gehe mal davon aus, dass Deine Koordinaten für jeden Punkt in einem Record gespeichert werden.
Delphi-Quellcode:
Dann solltest Du ein dynamisches Array deklarieren
// z.b.
type TPunkt = record X, Y, Z: Double; end;
Delphi-Quellcode:
Anschließend kannst Du in Deiner Komponente eine Property Punkte erstellen.
// z.b.
type TPunkte = array of TPunkt;
Delphi-Quellcode:
Jetzt kannst Du die Zusweisungen ohne Probleme machen.
//z.b.
public property Punkte: TPunkte read FPunkte write FPunkte; ...:cat:... |
thx, genau das hab ich gesucht :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:23 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