AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Eigenschaften von zur Laufzeit erzeugten Komponenten
Thema durchsuchen
Ansicht
Themen-Optionen

Eigenschaften von zur Laufzeit erzeugten Komponenten

Ein Thema von Bea · begonnen am 30. Nov 2006 · letzter Beitrag vom 30. Nov 2006
Antwort Antwort
Bea

Registriert seit: 23. Dez 2004
53 Beiträge
 
RAD-Studio 2009 Ent
 
#1

Eigenschaften von zur Laufzeit erzeugten Komponenten

  Alt 30. Nov 2006, 14:07
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
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: Eigenschaften von zur Laufzeit erzeugten Komponenten

  Alt 30. Nov 2006, 14:16
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;
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.268 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Eigenschaften von zur Laufzeit erzeugten Komponenten

  Alt 30. Nov 2006, 14:19
Versuchs mal so:

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


// Edit

Mist. Nur Zweiter
  Mit Zitat antworten Zitat
Bea

Registriert seit: 23. Dez 2004
53 Beiträge
 
RAD-Studio 2009 Ent
 
#4

Re: Eigenschaften von zur Laufzeit erzeugten Komponenten

  Alt 30. Nov 2006, 14:29
... oh man das ging ja wieder schnell.
Oje, das war ja gar nicht schwer... was ich noch alles lernen muss...

Danke Danke Danke

...dem Ersten und dem Zweiten
  Mit Zitat antworten Zitat
Antwort Antwort


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:35 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