Einzelnen Beitrag anzeigen

Highttower

Registriert seit: 2. Jun 2009
Ort: Worms
88 Beiträge
 
Delphi 2010 Professional
 
#1

Umstieg von C++ auf Delphi (vector = ObjectList ?)

  Alt 3. Jun 2009, 10:32
Hallo zusammen,
ich habe eine kleines Verständnisproblem mit der ObjectList. Und zwar habe ich ein Programm mit 2 Threads laufen, der eine fragt die ganze Zeit den Status der Netzwerkverbindungen ab und startet dann Skripte zum einbinden der Netzwerklaufwerke. Der andere (Mainthread) zeigt das ganze Grafisch an. Wenn ich jetzt mir mit dem Mainthread die Cisco Verbindung anzeigen lasse, hole ich mir ja call by Reference einen Pointer auf die Instanz in der ObjectList und lese die Daten aus z.b. mit:

Delphi-Quellcode:
TlsmVerbindung = class
    private
        FsName : string;
        FVerbunden : Boolean;

        FOnlineSkript : string;
        FOfflineSkript : string;
    public
        property Name: string read FsName write FsName;
        property Status: Boolean read FVerbunden write FVerbunden;
        property OnlineSkript: string read FOnlineSkript write FOnlineSkript;
        property OfflineSkript: string read FOfflineSkript write FOfflineSkript;
end;

procedure TForm1.FlblsmOverviewClick(Sender: TObject);
begin
 FlsmHeadlineLabel.Caption := TlsmVerbindung(
                            FlsmNetzwerke.Status.Items[FlblsmOverview.ItemIndex]).Name;
end;
So jetzt die erste Frage: Hole ich mir damit eine Ständige Reference auf den Namen der Klasse, oder ist das hier ein Call by Value call, weil es sich ja um einen Nativen Datentyp (string) handelt und nicht um ein Objekt?

So weit so gut, nehmen wir mal an das Funktioniert, was es tut =). Wenn ich dann mit einer Schleif mit dem Hintergrundthread, auf den Count der ObjectList die die Verbindungen verwaltet zu greife und dabei, durch deaktivieren der Netzwerkschnittstelle, ein Event rufe was mir den Status der Verbindung ändert.
Wird in diesem Moment nur der Status geändert, oder wie in C++ das Object geholt, der Wert geändert und wenn man Pech hat an eine ganz andere Stelle im Speicher geschrieben?

Zum weiterkommen nehme ich auch gerne Googlelinks. Ich selber habe schon viel gegooglet, finde aber keine richtigen Stichwörter um mein Problem zu beschreiben.

Vielen Dank,
Highttower
Tobi
  Mit Zitat antworten Zitat