RootDir, int Panel, int DirSel)
{
const AnsiString Mask = " *. * 0";
char PathChar [256];
AnsiString Path;
static AnsiString CurrentPathLeft = RootDir;
static AnsiString CurrentPathRight = RootDir;
long int Row = Form1-> FileListLeft-> Row;
AnsiString Name = Form1-> FileListLeft-> Cells [ColName] [Row];
if (Panel == LEFT)
{
if (DirSel! = 0)// Якщо змінилася коренева директорія
{
switch (DirSel)
{
case 1:// Якщо вибір в ListDevices
if (RootDir.AnsiCompare (RootDirRight) == 0)// Якщо при зміні кореневої дірректоріі
{// Користувач вибрав той же пристрій, що
CurrentPathLeft = CurrentPathRight;// в іншій панелі, то отображеется
Path = CurrentPathLeft + Mask;// папка відкрита в тій панелі
strcpy (PathChar, Path.c_str ());
ViewDirectory (PathChar, LEFT);
Form1-> LabelCurrentPathLeft-> Caption = CurrentPathLeft;
}
else// Якщо вибрано устройсва, відмінне від устройсва в другій панелі
{
CurrentPathLeft = RootDir + "";
Path = RootDir + Mask;
strcpy (PathChar, Path.c_str ());// Преобрзованіе AnsiString в char
ViewDirectory (PathChar, Panel);
Form1-> LabelCurrentPathLeft-> Caption = CurrentPathLeft;
}
break;
case 2 ://Якщо натискання на bCurrentRootDir
CurrentPathLeft = RootDir + "";
Path = RootDir + Mask;
strcpy (PathChar, Path.c_str ());// Преобрзованіе AnsiString в char
ViewDirectory (PathChar, Panel);
Form1-> LabelCurrentPathLeft-> Caption = CurrentPathLeft;
break;
}
}
else
{
if ((Form1-> FileListLeft-> Cells [ColAttrib] [Row] == "Dir 0") | |// Якщо подвійний клік по
(Form1-> FileListLeft-> Cells [ColAttrib] [Row] == "HideSysDir 0"))
if (Name == ".. 0")// Якщо перехід на один рівень вгору
{
int Pos, Len = CurrentPathLeft.Length ();
for (int i = Len-2; i> = 3; i -)
{
if (CurrentPathLeft [i] == '')
{
Pos = i;
break;
}
}
CurrentPathLeft.Delete (Pos, (Len-Pos));
Path = CurrentPathLeft + Mask;
strcpy (PathChar, Path.c_str ());// Преобрзованіе AnsiString в char
ViewDirectory (PathChar, LEFT);
Form1-> LabelCurrentPathLeft-> Caption = CurrentPathLeft;
}
else// Якщо відкриття підкаталогу
{
CurrentPathLeft + = Name;
Path = CurrentPathLeft + Mask;
CurrentPathLeft + = "";
strcpy (PathChar, Path.c_str ());// Преобрзованіе AnsiString в char
Form1-> LabelCurrentPathLeft-> Caption = CurrentPathLeft;
ViewDirectory (PathChar, LEFT);
}
else// Якщо відкриття файлу (НЕ папки)
{
if (Name! = " 0")
{
...