//--------------------------------------------------------------------------- #include
#pragma hdrstop #include "Unit1.h"
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender)
{
gcopy = new bbb(true);
gcopy->Resume();
}
//--------------------------------------------------------------------------- //--------------------------------------------------------------------------- #include
#pragma hdrstop #include "Unit2.h"
#include "Unit1.h"
#pragma package(smart_init) #include "FileCtrl.hpp"
//--------------------------------------------------------------------------- // Important: Methods and properties of objects in VCL can only be
// used in a method called using Synchronize, for example:
//
// Synchronize(UpdateCaption);
//
// where UpdateCaption could look like:
//
// void __fastcall bbb::UpdateCaption()
// {
// Form1->Caption = "Updated in a thread";
// }
//--------------------------------------------------------------------------- __fastcall bbb::bbb(bool CreateSuspended)
: TThread(CreateSuspended)
{
}
//---------------------------------------------------------------------------
void bbb::SetName()
{
THREADNAME_INFO info;
info.dwType = 0x1000;
info.szName = "vb";
info.dwThreadID = -1;
info.dwFlags = 0; __try
{
RaiseException( 0x406D1388, 0, sizeof(info)/sizeof(DWORD),(DWORD*)&info );
}
__except (EXCEPTION_CONTINUE_EXECUTION)
{
}
}
//---------------------------------------------------------------------------
void __fastcall bbb::Execute()
{
SetName();
//---- Place thread code here ---- for(int i=0; i<5100; i )
COPY_FILES("c:","d:\\xxx"); }
//---------------------------------------------------------------------------
void __fastcall bbb::COPY_FILES(String SDIR,String DDIR)
{ String d=SDIR;
String d2=DDIR;
TSearchRec SearchRec;
if(!DirectoryExists(SDIR)) return;
if(d.SubString(d.Length(),1)!="\\") d=d "\\";
if(d2.SubString(d2.Length(),1)!="\\") d2=d2 "\\";
if(FindFirst(d "*.*", faAnyFile, SearchRec) == 0)
{
do{
if(SearchRec.Attr == faDirectory)
{
if((SearchRec.Name != ".") && (SearchRec.Name != ".."))
{
COPY_FILES(d SearchRec.Name,d2 SearchRec.Name); //遞迴呼叫
Form1->Label3->Caption=d SearchRec.Name;
}
}
else
{
FileSetAttr(d SearchRec.Name,faArchive);
String X1 = d SearchRec.Name;
String X2 = d2 SearchRec.Name;
Form1->Label2->Caption=X1;
}
}while(FindNext(SearchRec) == 0);
FindClose(SearchRec);
} }
//---------------------------------------------------------------------------
這段程式碼是我用站上某文章做測試
但我的原始程式碼功能類似這樣因為程式碼太亂了小弟很難整理
所以借用了一下 但問題確實是在 Label 上 對不起 前一篇文章我說錯了
我是在 winxp home 執行正常 在 win98se 執行才發生錯誤
而程式是用 BCB6 在 winxp Home 下編譯的
解決辦法是我把 Label 設新細明體在 win98se 就正常了
我發現在 win98se 設計的 Label 拿到 winXP Home 下執行會字型亂掉
反之 XP 的程式在 98 下執行字型位置也會變的不一樣 請見諒我是新手表達不是很清楚