FileListBox benutzen
-
Hallo, ich möchte erstmal eine mit der rechten Maustaste in einer FileListBox ausgewählte Datei fokussieren (um später lauter böse Dinge mit ihr zu machen, z.B. ein Edit-Feld zum Umbenennen darüber legen).
Leider funktioniert das nur, solange niemand am Scrollbalken der Box spielt, dann bekomme ich nämlich zwei Markierungen. Bitte helft, vielleicht geht es ja auch eleganter.int FileBoxIndex; bool FRect;
void __fastcall TForm1::FileListBox1MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
if (FRect) {
FileListBox1->Canvas->DrawFocusRect(FileListBox1->ItemRect(FileBoxIndex));
FRect=false;
}if (Button == mbRight) {
FileBoxIndex = FileListBox1->ItemAtPos(Point(X,Y), true);
FileListBox1->Canvas->DrawFocusRect(FileListBox1->ItemRect(FileBoxIndex));
FRect = true;
}
}Gruß und Dank
-
Ich würde dir raten, die FileListBox zu vergessen und dich statt dessen mit dem VirtualListView-Beispiel unter %BCB%\examples auseinanderzusetzen.
Das sieht nicht nur moderner aus, sondern ist auch vielseitiger einzusetzen (z.B. der eingebaute Inplace-Editor).
-
Ich stehe vor dem gleichen Problem. Ich brauch links eine Art TreeView mit dem Verzeichnis-Baum und rechts eine einfache Auflistung der im ausgewählten Verzeichnis enthaltenen Unterverzeichnisse und Dateien.
Jedoch ist mir die Combo aus DriveListBox, DirectoryListBox und FileListBox zu altmodisch. Eigentlich bräuchte ich das gleiche in einer moderneren Version.
Habe mir die VirtualListBox angeschaut und festgestellt, dass die nicht über das TreeView verfügt. Ich brauch keine Angaben zu Datei / Verzeichnis und will auch nichts editieren. Das Ganze soll lediglich als Anzeige dienen, ähnlich dem Windows-Explorer.Gibt es da noch etwas anderes, oder muss ich mir das Ganze selbst aus nem TTreeView und einer normalen ListBox zusammenbasteln?