![]() |
Eigenschaften von zur Laufzeit erzeugten Komponenten
Hallo,
ich hab schon wiedermal eine Frage. Zur Erläuterung: Mein Progrämmchen überwacht mehrere Verzeichnisse auf das Hinzukommen von neuen Dateien. Die zu überwachenden Verzeichnisse stehen in einer ini-Datei. Das Überwachen mache ich mit der Komponente DirMonitor (hatte ich auch hier irgendwo gefunden und geht prima). Für jedes Verzeichnis in der ini-Datei erzeuge ich zur Laufzeit eine entsprechende DirMonitor-Komponente, weise dieser einen Namen, die FilterAction, das jeweilige Verzeichnis und ein DirMonChange-Ereignis zu und setzte sie aktiv:
Delphi-Quellcode:
Im DirMonChange-Ereignis möchte ich dann die jeweiligen Dateien nach und nach verarbeiten.
...
for i := 0 to stl_Verzeichnisse.count - 1 do begin DirMon[i] := TDirMonitor.Create(Self); with DirMon[i] do begin Inc(merke_Anzahl_DirMon); Name := 'DirMon_' + sName; Directory := sVerz; FilterAction := FilterAction + [faADDED]; FilterAction := FilterAction - [faREMOVED]; FilterAction := FilterAction - [faMODIFIED]; FilterAction := FilterAction - [faRENAMED_OLD_NAME]; FilterAction := FilterAction - [faRENAMED_NEW_NAME]; OnChange := DirMonChange; Active := true; end; end; ...
Delphi-Quellcode:
Der aktuelle Dateiname steht mir ja im DirMonChange-Ereignis in FileName zur Verfügung.
procedure TForm_Connector.DirMonChange(sender: TObject; Action: TAction; FileName: string);
var saktVerz:string; begin ShowMessage(FileName); // z.B. Test.tif saktVerz:= ??? ... end; Nun nützt mir aber nur der Dateiname allein nichts, ich brauche noch das Verzeichnis. Das kommt aber bei FileName nicht mit. Wie kann ich denn in dem DirMonChange-Ereignis auf die Eigenschaft Directory der gerade angesprungenen DirMonitor-Komponete zugreifen? (und bei Bedarf auch auf die anderen Eigenschaften?) Wenn ich z.B. die Komponente DirMonitor schon von Anfang an mit auf das Formular platziere, kann ich ja mit
Delphi-Quellcode:
direkt darauf Directory zugreifen.saktVerz:=DirMonitor1.Directory; Aber das will ich ja nicht. Ich will ja erst zur Laufzeit für jedes Verzeichnis eine Komponete erzeugen. Kann mir da bitte wieder jemand helfen? Danke im Vorraus Bea |
Re: Eigenschaften von zur Laufzeit erzeugten Komponenten
Delphi-Quellcode:
procedure TForm_Connector.DirMonChange(sender: TObject; Action: TAction; FileName: string);
var saktVerz:string; begin saktVerz:= (sender as TdirMonitor).Directory; ShowMessage(saktVerz+FileName); end; |
Re: Eigenschaften von zur Laufzeit erzeugten Komponenten
Versuchs mal so:
Delphi-Quellcode:
Gerd
if sender is TDirMonitor then
saktVerz:= TDirMonitor(sender).sverz; // Edit Mist. Nur Zweiter :-( |
Re: Eigenschaften von zur Laufzeit erzeugten Komponenten
... oh man das ging ja wieder schnell.
Oje, das war ja gar nicht schwer... was ich noch alles lernen muss... :gruebel: Danke :thumb: Danke :thumb: Danke :thumb: ...dem Ersten und dem Zweiten :kiss: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:36 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