home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Komputer 1997 May
/
Pcwk0597.iso
/
borland
/
cb
/
setup
/
cbuilder
/
data.z
/
FMXWIN.CPP
< prev
next >
Wrap
C/C++ Source or Header
|
1997-02-28
|
11KB
|
297 lines
//----------------------------------------------------------------------------
//Borland C++Builder
//Copyright (c) 1987, 1997 Borland International Inc. All Rights Reserved.
//----------------------------------------------------------------------------
//---------------------------------------------------------------------------
#include <vcl\vcl.h>
#pragma hdrstop
#include <ctype.h>
#include <process.h>
#include "fmxUtils.h"
#include "FAttrdlg.h"
#include "fchngdlg.h"
#include "fmxwin.h"
//---------------------------------------------------------------------------
#pragma link "sampreg"
#pragma resource "*.dfm"
TFormMain *FormMain;
//---------------------------------------------------------------------------
__fastcall TFormMain::TFormMain(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::Exit1Click(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------
#pragma warn -sig
void __fastcall TFormMain::Properties1Click(TObject *Sender)
{
unsigned short Attributes;
unsigned short NewAttributes;
FileAttrDlg->FileDirName->Caption = FileList->Items->Strings[FileList->ItemIndex];
FileAttrDlg->FilePathName->Caption = FileList->Directory;
FileAttrDlg->ChangeDate->Caption = DateTimeToStr(FileDateTime(FileList->FileName));
Attributes = FileGetAttr(FileList->Items->Strings[FileList->ItemIndex]);
FileAttrDlg->ReadOnly->Checked = Attributes & faReadOnly;
FileAttrDlg->Archive->Checked = Attributes & faArchive;
FileAttrDlg->System->Checked = Attributes & faSysFile;
FileAttrDlg->Hidden->Checked = Attributes & faHidden;
if (FileAttrDlg->ShowModal()!= mrCancel){
NewAttributes = Attributes;
if (FileAttrDlg->ReadOnly->Checked)
NewAttributes = NewAttributes | faReadOnly;
else
NewAttributes = NewAttributes & ~faReadOnly;
if (FileAttrDlg->Archive->Checked)
NewAttributes = NewAttributes | faArchive;
else
NewAttributes = NewAttributes & ~faArchive;
if (FileAttrDlg->System->Checked)
NewAttributes = NewAttributes | faSysFile;
else
NewAttributes = NewAttributes & ~faSysFile;
if (FileAttrDlg->Hidden->Checked)
NewAttributes = NewAttributes | faHidden;
else
NewAttributes = NewAttributes & ~faHidden;
if (NewAttributes != Attributes)
FileSetAttr(FileAttrDlg->FileDirName->Caption, NewAttributes);
}
}
#pragma warn .sig
//---------------------------------------------------------------------
void __fastcall TFormMain::DirectoryOutlineChange(TObject *Sender)
{
FileList->Directory = DirectoryOutline->Directory;
DirectoryPanel->Caption=DirectoryOutline->Directory;
}
//---------------------------------------------------------------------
void __fastcall TFormMain::DirectoryOutlineDragDrop(TObject *Sender,
TObject *Source,
int X, int Y)
{
if (dynamic_cast<TFileListBox *> (Source)!=0)
ConfirmChange("Move", FileList->FileName,
DirectoryOutline ->Items[DirectoryOutline ->GetItem(X, Y)]->FullPath);
}
//---------------------------------------------------------------------
void __fastcall TFormMain::DirectoryOutlineDragOver(TObject *Sender,
TObject *Source,
int X, int Y,
TDragState State,
bool &Accept)
{
if (dynamic_cast<TFileListBox *> (Source))
Accept = True;
}
//---------------------------------------------------------------------
#pragma warn -stv
void __fastcall TFormMain::ConfirmChange(const AnsiString ACaption,
AnsiString FromFile,
AnsiString ToFile)
{
char buffer[700];
sprintf(buffer,"%s %s to %s?",ACaption, FromFile, ToFile);
if(MessageDlg(buffer,
mtConfirmation,
TMsgDlgButtons() << mbYes << mbNo,
0) == mrYes){
{
if (ACaption == "Move")
MoveFile(FromFile, ToFile);
else if (ACaption == "Copy")
CopyFile(FromFile, ToFile);
else if (ACaption =="Rename")
RenameFile(FromFile, ToFile);
}
FileList->Update();
}
}
#pragma warn .stv
//---------------------------------------------------------------------
void __fastcall TFormMain::FormCreate(TObject *Sender)
{
static char * Drive_Letter[]={"a:\\","b:\\","c:\\","d:\\","e:\\","f:\\",
"g:\\","h:\\","i:\\","j:\\","k:\\","l:\\","m:\\","n:\\","o:\\","p:\\",
"q:\\","r:\\","s:\\","t:\\","u:\\","v:\\","w:\\","x:\\","y:\\","z:\\"};
int AddedIndex;
for(int x =0; x <= 25; x++ )
{
switch(GetDriveType(Drive_Letter[x]))
{
case DRIVE_REMOVABLE:
AddedIndex=DriveTabSet->Tabs->AddObject(String(Drive_Letter[x]),
Floppy->Picture->Graphic);
break;
case DRIVE_FIXED:
AddedIndex=DriveTabSet->Tabs->AddObject(String(Drive_Letter[x]),
Fixed->Picture->Graphic);
break;
case DRIVE_REMOTE:
AddedIndex=DriveTabSet->Tabs->AddObject(String(Drive_Letter[x]),
Network->Picture->Graphic);
break;
case DRIVE_CDROM:
AddedIndex=DriveTabSet->Tabs->AddObject(Drive_Letter[x],
Floppy->Picture->Graphic);
break;
case DRIVE_RAMDISK:
AddedIndex=DriveTabSet->Tabs->AddObject(Drive_Letter[x],
Floppy->Picture->Graphic);
break;
}
if (toupper(*Drive_Letter[x]) == FileList->Drive)
DriveTabSet->TabIndex = AddedIndex;
}
}
//---------------------------------------------------------------------
#pragma warn -stv
void __fastcall TFormMain::FileListChange(TObject *Sender)
{
AnsiString TheFileName;
if(FileList->ItemIndex>=0){
char buffer[255];
TheFileName =FileList->Items->Strings[FileList->ItemIndex];
sprintf(buffer,
"%s %d bytes",
TheFileName,
GetFileSize(TheFileName));
FilePanel->Caption = buffer;
if (GetFileAttributes(TheFileName.c_str()) & FILE_ATTRIBUTE_DIRECTORY)
FileSelected = false;
else
FileSelected = true;
}
else {
FilePanel->Caption="";
FileSelected = false;
}
}
#pragma warn .stv
//---------------------------------------------------------------------
void __fastcall TFormMain::FileListEndDrag(TObject *Sender,TObject *Target,
Integer X, Integer Y)
{
if (Target != NULL)
FileList->Update();
}
//---------------------------------------------------------------------
void __fastcall TFormMain::FileListMouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, Integer X, Integer Y)
{
if(Button==mbLeft)
{
if (dynamic_cast<TFileListBox *>(Sender)!=0)
{
if(dynamic_cast<TFileListBox *>(Sender)->ItemAtPos(Point(X,Y),
True) >=0)
dynamic_cast<TFileListBox *>(Sender)->BeginDrag(False);
}
}
}
//---------------------------------------------------------------------
void __fastcall TFormMain::DriveTabSetClick(TObject *Sender)
{
DirectoryOutline->Drive= *((DriveTabSet->Tabs->Strings
[DriveTabSet->TabIndex]).c_str());
}
//---------------------------------------------------------------------
void __fastcall TFormMain::DriveTabSetDrawTab(TObject *Sender,
TCanvas *TabCanvas,
TRect &R, Integer Index,
Boolean Selected)
{
Graphics::TBitmap *Bitmap;
Bitmap = (Graphics::TBitmap *) (DriveTabSet->Tabs->Objects[Index]);
TabCanvas->Draw(R.Left, R.Top + 4, Bitmap);
TabCanvas->TextOut(R.Left + 2 + Bitmap->Width, R.Top + 2,
DriveTabSet->Tabs->Strings[Index].SubString(1,1));
}
//---------------------------------------------------------------------
void __fastcall TFormMain::DriveTabSetMeasureTab(TObject *Sender,
Integer Index, Integer &TabWidth)
{
int BitmapWidth;
BitmapWidth = ((Graphics::TBitmap *)
(DriveTabSet->Tabs->Objects[Index]))->Width;
TabWidth=TabWidth+2+BitmapWidth;
}
//---------------------------------------------------------------------
void __fastcall TFormMain::File1Click(TObject *Sender)
{
Open1->Enabled = FileSelected;
Delete1->Enabled = FileSelected;
Copy1->Enabled = FileSelected;
Move1->Enabled = FileSelected;
Rename1->Enabled = FileSelected;
Properties1->Enabled = FileSelected;
}
//---------------------------------------------------------------------
void __fastcall TFormMain::Delete1Click(TObject *Sender)
{
if(MessageDlg("Delete" + FileList->FileName + "?",
mtConfirmation,
TMsgDlgButtons() << mbYes << mbNo, 0) == mrYes){
if(DeleteFile(FileList->FileName.c_str()))
FileList->Items->Delete(FileList->ItemIndex);
}
}
//---------------------------------------------------------------------
void __fastcall TFormMain::Open1Click(TObject *Sender)
{
if (HasAttr(FileList->FileName, faDirectory))
DirectoryOutline->Directory = FileList->FileName;
else
ExecuteFile(FileList->FileName," ", DirectoryOutline->Directory, SW_SHOW);
}
//---------------------------------------------------------------------
void __fastcall TFormMain::FileChange(TObject *Sender)
{
if (dynamic_cast<TMenuItem *>(Sender) == Move1 )
ChangeDlg->Caption = "Move" ;
else if (dynamic_cast<TMenuItem *>(Sender) == Copy1)
ChangeDlg->Caption = "Copy";
else if (dynamic_cast<TMenuItem *>(Sender) == Rename1)
ChangeDlg->Caption = "Rename";
else
_c_exit();
ChangeDlg->CurrentDir->Caption = DirectoryOutline->Directory;
ChangeDlg->FromFileName->Text = FileList->FileName;
ChangeDlg->ToFileName->Text = "";
if ((ChangeDlg->ShowModal() != mrCancel) &&
(ChangeDlg->ToFileName->Text != ""))
ConfirmChange(ChangeDlg->Caption,
ChangeDlg->FromFileName->Text,
ChangeDlg->ToFileName->Text);
}
void __fastcall TFormMain::FileListDblClick(TObject *Sender)
{
Open1Click(Sender);
}
//---------------------------------------------------------------------