Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Eigenschaften von zur Laufzeit erzeugten Komponenten (https://www.delphipraxis.net/81628-eigenschaften-von-zur-laufzeit-erzeugten-komponenten.html)

Bea 30. Nov 2006 14:07


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:
...
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;
...
Im DirMonChange-Ereignis möchte ich dann die jeweiligen Dateien nach und nach verarbeiten.

Delphi-Quellcode:
procedure TForm_Connector.DirMonChange(sender: TObject; Action: TAction; FileName: string);
var saktVerz:string;
begin
 ShowMessage(FileName); // z.B. Test.tif
 saktVerz:= ???
 ...
 
end;
Der aktuelle Dateiname steht mir ja im DirMonChange-Ereignis in FileName zur Verfügung.
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:
 
saktVerz:=DirMonitor1.Directory;
direkt darauf Directory zugreifen.
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

shmia 30. Nov 2006 14:16

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;

bernau 30. Nov 2006 14:19

Re: Eigenschaften von zur Laufzeit erzeugten Komponenten
 
Versuchs mal so:

Delphi-Quellcode:
if sender is TDirMonitor then
  saktVerz:= TDirMonitor(sender).sverz;
Gerd


// Edit

Mist. Nur Zweiter :-(

Bea 30. Nov 2006 14:29

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 14:06 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz