Thema: Delphi Benutzerführung

Einzelnen Beitrag anzeigen

Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Benutzerführung

  Alt 23. Jun 2017, 13:56
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
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat