Hi zusammen
Soweit habe ich eine gangbare Lösung gefunden. Die besteht in einem "Containerframe", der ein Pagecontrol mit 2 Tabsheets enthält.
Wie auf den Eingangs geposteten Jpegs ersichtlich, befindet sich mein Pathframe auf einer TCategoryPanelGroup-Komponente - dahin kommt nun neu ein "Containerframe".
Wird nun das CategoryPanel mit dem Containerframe angezeigt, präsentiert dieser das Tabsheet1 des PCtrl, auf dem eine Kategorie eingegeben oder, wenn vorhanden, ausgewählt werden kann. Erst, wenn dies erfolgt ist, kann mit 'Weiter' zu Tabsheet2 gewechselt werden, wo der Ordner mit den gewünschten Bildern ausgewählt und die Insert-Prozeduren gestartet werden können.
Soweit, so gut. Leider hat dies einen kleinen Haken:
Im TPathFinderFrame.TVPathExplorerExpanding-Event (TV=Treeview) lauten die ersten paar Zeilen:
Delphi-Quellcode:
try
AllowExpansion := not FileSearcher1.Busy;
FileSearcher1.Recursive := False;
FileSearcher1.SearchType := stBoth;
TSearchType := stBoth stellt sicher, dass die Filesearcher nach Ordnern und Dateien sucht. Dazu sind unter uses die notwendigen FileSarcher-Units eingebunden, und so erkennt Delphi hier, dass stBoth eine Konstante aus der
Unit FileSearch ist.
Nicht so in der
Unit des Containerframes:
Delphi-Quellcode:
procedure TDlgFrameContainer.TbsKatNameShow(Sender: TObject);
begin
Self.PathFinderFrame2.FileSearcher1.SearchType := stFolders;
Self.BitBtn1.Caption := 'OK';
Self.BitBtn1.ImageIndex := 2;
end;
procedure TDlgFrameContainer.TbsPathFinderShow(Sender: TObject);
begin
Self.PathFinderFrame1.FileSearcher1.SearchType := stBoth; //>>=
Self.BitBtn1.Caption := 'Weiter...' ;
Self.BitBtn1.ImageIndex := 0;
end;
TbsKatName ist das Tabsheet, das der User zuerst zu sehen bekommt und in dem er eine bereits gewählte Kategorie bestätigen oder eine neue anlegen kann/muss. Die Tabs dieser Tabsheets sind nicht sichtbar - das Tabsheet kann also nur über einen Button-oder Menue-Event verlassen werden.
In TbsKatName soll PathFinderFrame2 nur nach Ordnern im Rootverzeichnis suchen - diese Zuweisung ist korrekt, und stFolder wird richtig als eine Konstante aus der
Unit FileSearch erkannt.
Spannender wirds aber mit der Konstante stBoth in TbsPathFinderShow - die erkennt Delphi als die Konstante stBoth aus
VCL.ComControls.TSortType.
Tja, und was nun? Explizit adressieren hat nichts gebracht, oder ich hab mein halbes dutzend versuche diesbezüglich alle falsch gemacht...
Gruss
Delbor