<´Ù¸¥ ÇÁ·Î±×·¥½ÇÇà ½ÃŲÈÄ WaitÇϱâ>

How do I execute a program and have my code wait until it is finished?

 //-------A: Here is the 16 bit version:

 uses Wintypes,WinProcs,Toolhelp,Classes,Forms;

 Function WinExecAndWait(Path : string; Visibility : word) : word;
 var
    InstanceID : THandle;
    PathLen : integer;

 begin
    { inplace conversion of a String to a PChar }
    PathLen := Length(Path);
    Move(Path[1],Path[0],PathLen);
    Path[PathLen] := #00;
    { Try to run the application }
    InstanceID := WinExec(@Path,Visibility);
    if InstanceID< 32 then    { a value less than 32 indicates an Exec error }
    WinExecAndWait := InstanceID

 else begin
    Repeat
       Application.ProcessMessages;
    until Application.Terminated or (GetModuleUsage(InstanceID) = 0);

    WinExecAndWait := 32;
 end;

 end;


 //--------- Here is the 32 bit version:

 function WinExecAndWait32(FileName:String; Visibility : integer):integer;
 var
    zAppName:array[0..512] of char;
    zCurDir:array[0..255] of char;
    WorkDir:String;
    StartupInfo:TStartupInfo;
    ProcessInfo:TProcessInformation;

 begin
    StrPCopy(zAppName,FileName);
    GetDir(0,WorkDir);
    StrPCopy(zCurDir,WorkDir);
    FillChar(StartupInfo,Sizeof(StartupInfo),#0);
    StartupInfo.cb := Sizeof(StartupInfo);
  
    StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
    StartupInfo.wShowWindow := Visibility;
    if not CreateProcess(nil,
       zAppName,   { pointer to command line string }
       nil,                { pointer to process security attributes }
       nil,                { pointer to thread security attributes }
       false,            { handle inheritance flag }
       CREATE_NEW_CONSOLE or   { creation flags }
       NORMAL_PRIORITY_CLASS,
       nil,                { pointer to new environment block }
       nil,                { pointer to current directory name }
       StartupInfo,   { pointer to STARTUPINFO }
       ProcessInfo) then Result := -1    { pointer to PROCESS_INF }

    else begin
       WaitforSingleObject(ProcessInfo.hProcess,INFINITE);
       GetExitCodeProcess(ProcessInfo.hProcess,Result);
    end;
 end;

 

<¹®ÀÚ¿­ ´ë.¼Ò¹®ÀÚ·Î ¹Ù²Ù±â>

 EDITBOX °°Àºµ¥¼­ Űº¸µå ÀÔ·Â Á¦ÇÑÀ» ÇÒ¶§ ¿µ¹®(´ë.¼Ò¹®ÀÚ)¸¦ °¡¸®±â À§ÇØ ´ëºÎºÐÀÌ keypress ³ª keyup ¶Ç´Â keydown EVENT¿¡¼­ ó¸® ÇÏ´Â °ÍÀ¸·Î ¾Ë°í ÀÖ½À´Ï´Ù.

  Á» ¹¹¶ö±î ??? ¾à°£ ¹«½ÄÇÑ ¹æ¹ýÀÌ¿´Áö¿ä.... ¼Ò½ºÄڵ嵵 ÁöÀúºÐÇØ Áö°í.......

  EditChange Event¿¡¼­ ´ÙÀ½°ú °°Àº ¹æ¹ýÀ» ±ÇÇÕ´Ï´Ù.

 

 procedure _MYForm.WoonoEdit1Change(Sender : TObject);
 begin
        WoonoEdit1.CharCase := clLowerCase;
        // ÀÔ·Â ¹ÞÀ»¶§ ¹«Á¶°Ç ¿µ¹® ¼Ò¹®ÀÚ·Î ¹Þ´Â´Ù.
 end;

 

 ecLowerCase : ¸ðµç ¿µ¹®ÀÚ¸¦ ¼Ò¹®ÀÚ·Î ¹Þ´Â´Ù.
 ecUpperCase : ¸ðµç ¿µ¹®ÀÚ¸¦ ´ë¹®ÀÚ·Î ¹Þ´Â´Ù.
 ecNormal       : ¸ðµç ¿µ¹®ÀÚ¸¦ º¸Åë »óÅ·ΠÀ¯ÁöÇÑ´Ù.

 

<ÆÄÀÏÁ¤º¸(»ý¼º,º¯°æ,Á¢±ÙÀÏÀÚ,¼Ó¼º,Á¾·ù...)>

 ¾Æ·¡ ¼Ò½º´Â ÆÄÀÏÀÇ °¢Á¾ Á¤º¸¸¦ Àоî¿À´Â ·çƾÀε¥ ¿ÏÀüÈ÷ ¸ðµâÈ­°¡ µÈ °ÍÀº ¾Æ´ÏÁö¸¸, ÆÄÀÏÀÇ »ý¼º,º¯°æ,Á¢±ÙÀÏÀÚ¸¦ Àд ºÎºÐÀÌ ÀÖ¾î ¿Ã¸³´Ï´Ù   

  function FileSize(hi,lo: integer) :longint;  
  begin
    Result := (hi * MAXDWORD) + lo;
  end;

  // This function retrieves the last time, the given file was written to disk
 function GetLocalTime(a:tfiletime):string;

 var
      mtm:   TSystemTime;
      at:    TFileTime;
      ds,ts: ShortString;

 begin
      filetimetolocalfiletime(a,at);
      filetimetosystemtime(at,mtm);
      SetLength(ds, GetDateFormat(LOCALE_USER_DEFAULT, 0, @mtm, NIL, @ds[1], 255) - 1);
      SetLength(ts, GetTimeFormat(LOCALE_USER_DEFAULT, time_noseconds, @mtm, NIL,
            @ts[1], 255)  - 1);
      Result:=ds+'  '+ts;
 end;

 procedure TFileInfoForm.GetFileInfo(FileName: String);

 var
    SHFinfo: TSHFileInfo;
    FindData: TWin32FindData;    FindHandle :THandle;

 begin
    L_FileName.Caption := ExtractFileName(FileName); // ÆÄÀϸí(Name)
    ShGetFileInfo(PChar(FileName), 0, SHFinfo, SizeOf(SHFinfo), // ÆÄÀÏÁ¾·ù¸¸ ¾Ë¾Æ³½´Ù
                  SHGFI_TYPENAME);
    L_Filetype.Caption := SHFinfo.szTypeName; // ÆÄÀÏÁ¾·ù(Type)
    FindHandle := Windows.FindFirstFile(PChar(FileName), FindData);

    try
      L_Filesize.Caption := FloatToStr(Trunc(FileSize(FindData.nFileSizeHigh,
         FindData.nFileSizeLow) / 1024))+' KB ('+ IntToStr(FileSize(FindData.nFileSizeHigh,
         FindData.nFileSizeLow))+' Bytes)';

      OldAttributes := FileGetAttr(FileName);  // ÆÄÀÏÀÇ ¼Ó¼º(attribute)
      CB_ReadOnly.Checked := (OldAttributes and faReadOnly) = faReadOnly;
      CB_Archive.Checked  := (OldAttributes and faArchive) = faArchive;
      CB_System.Checked   := (OldAttributes and faSysFile) = faSysFile;
      CB_Hidden.Checked   := (OldAttributes and faHidden) = faHidden;
       L_Created.Caption    := GetLocalTime(FindData.ftCreationTime);   // ÆÄÀÏ»ý¼ºÀÏ(Created)
      L_Modified.Caption   := GetLocalTime(FindData.ftLastWriteTime);  // ÆÄÀϺ¯°æÀÏ(Modified)
      L_LastAccess.Caption := GetLocalTime(FindData.ftLastAccessTime);
      // ÆÄÀÏÁ¢±ÙÀÏ(LastAccess)

    finally
      Windows.FindClose(FindHandle);
    end;
 end;

 

<JPEG ÆÄÀÏ Ã³¸®>

¿ì¼± uses ¿¡ JPEG ¸¦ Ãß°¡ÇÑ´Ù.

procedure TForm1.Button1Click(Sender : TObjcect);
var
   TempImg : TImage;
   Jpg : TJPEGImage;
begin
   TempImg:=TImage.Create(Self);
   with TempImg do   begin
      Width:=PaintBox1.Width;
      TempImg.Height:=PaintBox1.Height;
   end;
   Jpg:=TJPEGImage.Create;
   with PaintBox1 do begin
      BitBlt(TempImg.Canvas.Handle,0,0,Width,Height,Canvas.Handle,0,0,SrcCopy);
   end;
   TempImg.Picture.Bitmap.SaveToFile('TempImg.bmp');
   Jpg.Assign(TempImg.Picture.Bitmap);
     //Bitmap FileÀ» JpegÆÄÀÏ·Î
   Jpg.SaveToFile('TestImg.jpg');
   TempImg.Free;
   Jpg.Free;
end;

 

´Ù¸¥ ¹æ¹ý(ÇÔ¼ö ÀÌ¿ë - õ¸®¾È ·ù´Ô²²¼­ ¿Ã¸° ÇÔ¼ö)
* Source

Implementation
uses
   JPeg;
 
procedure LoadJPeg(FileName:String; PicIn:TPicture);
var
   JPegImage : TJPegImage;
begin
   JPegImage:= TJPegImage.Create;
   JPegImage.LoadFromFile(FileName);
   PicIn.Assign(JPegImage);
   JPegImage.Free;
end;
 
procedure TForm1.Button1Click(Sender : TObject);
begin
  if OpenDialog1.Execute then
     LoadJPeg(OpenDialog1.Filename, Image1.Picture);
      //JPEGÆÄÀÏÀ» ·ÎµåÇÏ¿© Image1¿¡ º¸¿©ÁÜ
end;

 

<Image ÄÄÆ÷³ÍÆ® À§¿¡ ±Û¾¾¾²±â>

procedure TForm1.Button1Click(Sender: TObject);
var
   OldBkMode : integer;
begin
   Image1.Picture.Bitmap.Canvas.Font.Color := clRed;
   OldBkMode := SetBkMode(Image1.Picture.Bitmap.Canvas.Handle, TRANSPARENT);
   Image1.Picture.Bitmap.Canvas.TextOut(10, 10, 'Hi, I am Park');
   SetBkMode(Image1.Picture.Bitmap.Canvas.Handle, OldBkMode);
end;

 

<ÆÄÀÏÀÇ ³¯Â¥¿Í ½Ã°£À» ¾Ë¾Æ³»±â>

¾Æ·¡ ÇÔ¼ö¸¦ ÀÌ¿ëÇÕ´Ï´Ù.
function GetFileDate(TheFileName: string): string;
var
   FHandle: integer;
begin
   FHandle := FileOpen(TheFileName, 0);
   try
      Result := DateTimeToStr(FileDateToDateTime(FileGetDate(FHandle)));
   finally
      FileClose(FHandle);
   end;
end;

 

<µå¶óÀ̺꿡 µð½ºÅ© Á¸Àç¿©ºÎ ¾Ë¾Æ³»±â>

function DriveReady(Drive : char):Boolean;
var
   OldErrorMode : word;
   OldDir : string;
begin
   OldErrorMode:= SetErrorMode(SEM_NOOPENFILEERRORBOX);
   GetDir(0, OldDir);
   Result:= True;
   try
      ChDir(Drive + ':\');
   except
      Result:= False
   end;
   ChDir(OldDir);
   SetErrorMode(OldErrorMode);
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
   if DriveReady('A') then ShowMessage('Drive is Ready')
   else ShowMessage('Drive not Ready');
end;

 

<È­¸é ĸÃÄÇÏ¿© ÀúÀåÇϱâ>

procedure TForm1.Button1Click(Sender: TObject);
var
   DeskTop : TCanvas ;
begin
   DeskTop := TCanvas.Create ;
   try
   with DeskTop do
      Handle := GetWindowDC (GetDesktopWindow) ;
   with PaintBox1.Canvas do
   CopyRect (Rect (0, 0, Width, Height),   DeskTop, Rect (0, 0, Width, Width))
   finally
      DeskTop.Free
   end;
end;
 
procedure TForm1.Button2Click(Sender: TObject);
var
   MyBmp: TBitmap;
begin
   MyBmp := TBitmap.Create;
   with MyBmp do begin
     Height := PaintBox1.Height;
     Width := PaintBox1.Width;
     Canvas.CopyRect (Rect (0, 0, Width, Height), PaintBox1.Canvas, Rect (0, 0, Width, Height));
     SaveToFile('c:\Grim.bmp');
   end;
      MyBmp.Free;
end;

 

<ÅØ½ºÆ® ¹®¼­ ¹Ì¸®º¸±â>

¼ÖÁ÷È÷ ¹Ì¸®º¸±â¶ó±â º¸´Ù´Â ÅØ½ºÆ® ÆÄÀÏÀÇ ³»¿ëÀ» BitmapÆÄÀÏ·Î º¯È¯ÇÏ¿© ÀúÀåÇÕ´Ï´Ù.
procedure TForm1.Button1Click(Sender: TObject);
var
   Bmp : TBitmap;
   Line : string;
   I : integer;
   ch : char;
   F : TextFile;
begin
   I := 0;
   Bmp := TBitmap.Create;
   with Bmp do begin
      Width := ClientRect.Right;
      Height := ClientRect.Bottom;
      AssignFile(F, 'c:\mytext.txt'); {ÀúÀåÇϰíÀÚ ÇÏ´Â ÆÄÀϸíÀ» »ðÀÔ}
      Reset(F);
      repeat
        Inc(I);
        Line := '';
        repeat
          Read(F, ch);
          Line := Line+ch;
       until ch= #10;
       Canvas.TextOut(10, I*20, Copy(Line, 1, Length(Line)-2));
      until EOF(F);
   CloseFile(F);
   BitBlt(Canvas.Handle, 0, 0, Width, Height, GetDc(Handle),  ClientRect.Left, ClientRect.Top, SRCCOPY);
   SaveToFile('c:\preview.bmp');
   Free;
   end;
end;

 

<ÆûÀÇ Å©±â Á¦ÇÑÇϱâ>

ÆûÀÇ Å©±â¸¦ Á¶ÀýÇÒ ¶§ ÃÖ´ë, ÃÖ¼ÒÀÇ Å©±âÁ¦ÇÑÀ» µÎ·Á¸é
"WM_GETMINMAXINFO"ÀÇ ¸Þ½ÃÁö Çڵ鷯¸¦ ÀÛ¼ºÇØ¾ß ÇÑ´Ù.
type
   TForm1 = class(TForm)
     procedure FormCreate(Sender: TObjcet);

   private
     MinSize : TPoint;       //ÃÖ¼ÒÅ©±â Á¦ÇÑ
     MaxSize : TPoint;      //ÃÖ´ëÅ©±â Á¦ÇÑ
     procedure WMGetMinMaxInfo(var Msg: TWMGetMinMaxInfo);
     message WM_GETMINMAXINFO;
     //¸Þ½ÃÁö WM_GETMINMAXINFO¿¡ ¹ÝÀÀÇÏ´Â ¸Þ¼Òµå

   public
end;
 
procedure TForm1.WMGetMinMaxInfo(var Msg: TWMGetMinMaxInfo);
begin
   if visible then begin
   Msg.MinMaxInfo^.PtMinTrackSize := MinSize;
   Msg.MinMaxInfo^.PtMaxTrackSize := MaxSize;
   end;
end;
 
procedure TForm1.FormCreate(Sender: TObject);  //ÃÖ´ë,ÃÖ¼Ò »çÀÌÁî ÁöÁ¤
begin
   MaxSize.X := 200;    
   MaxSize.Y := 500;
   MinSize.X := 100;
   MinSize.Y := 200;
end;

 

<¸¶¿ì½º µ¿ÀÛ¹üÀ§ Á¦ÇÑÇϱâ>

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
   R : TRect;
begin
   R := BoundsRect;
   InflateRect(R,-30,-30);
   ClipCursor(@R);
end;
 
procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
   ClipCursor(Nil);
end;

 

<½ºÇ÷¹½Ã È­¸é ¸¸µé±â>

ÇÁ·Î±×·¥ ½ÃÀ۽à ³ªÅ¸³ª´Â ·Î°íÈ­¸éÀ» Á¦ÀÛÇÏ´Â ¹æ¹ýÀÌ´Ù. ÀÌ´Â ÇÁ·ÎÁ§Æ®ÆÄÀÏ(.dpr)¸¦ Á÷Á¢
¼öÁ¤Çؾ߸¸ ÇÑ´Ù.
Project Option¿¡¼­ SplashFormÀ»  Available forms·Î ¿Å±ä´Ù.
program project1;
 
uses
   Forms,
   Unit1 in 'Unit1.pas' {Form1},
   Splash in 'Splash.pas' {SplashForm},
 
{$R *.RES}
begin
  SplashForm := TSplashForm.Create(Application);
  SplashForm.Show;
  SplashForm.Update;
  Application.CreateForm(TForm1, Form1);
  SplashForm.Hide;
  SplashForm.Free;
   Application.Run;
end.

 

<±¸¸Û³­ Æû ¸¸µé±â>

ÇϳªÀÇ Æû À§¿¡ ´Ù¼¸°³ÀÇ ÆÇ³ÚÀ» ¿Ã·Á³õ°í °¢°¢ÀÇ ¼Ó¼ºÀ»  ¾Æ·¡ÀÇ 'Ç¥1' °ú °°ÀÌ ¼³Á¤Çϰí,
ÆûÀÇ OnResizeÀ̺¥Æ® Çîµé·¯¸¦ »ý¼º ÇØ ¾Æ·¡ÀÇ Äڵ带 ÀÔ·ÂÇÏÀÚ.
 
procedure TForm1.FormResize(Sender: TObject);
var
   WindowRgn, HoleRgn : HRgn;
begin
   WindowRgn := 0;
   GetWindowRgn(Handle, WindowRgn);
   DeleteObject(WindowRgn);
   WindowRgn := CreateRectRgn(0,0,Width, Height);
   HoleRgn := CreateRectRgn(Panel3.Width + 6, Panel1.Height + 25,
                   Width - (Panel4.Width + 6), Height - (Panel2.Height + 6));
   CombineRgn(WindowRgn, WindowRgn, HoleRgn, RGN_DIFF);
   SetWindowRgn(Handle, WindowRgn, TRUE);
   DeleteObject(HoleRgn);
end;
 
Ç¥1
---------------------------------
Panel1
---------------------------------
Align alTop
BevelOuter bvNone
Caption
Height 17
---------------------------------
Panel2
---------------------------------
Align alBottom
BevelOuter bvNone
Caption
Height 17
---------------------------------
Panel3
---------------------------------
Align alRight
BevelOuter bvNone
Caption
Width 17
---------------------------------
Panel4
---------------------------------
Align alRight
BevelOuter bvNone
Caption
Width 17
---------------------------------
Panel5
---------------------------------
Align alClient
BevelOuter bvLowered
Caption
---------------------------------

 

<¿øÇü Æû ¸¸µé±â>

procedure TForm1.FormCreate(Sender : TObjcet);
var
   MyForm : HRGN;
begin
   MyForm := CreateEllipticRgn(0, 0, Width, Height);  //Ÿ¿øÀÇ Æû ¼³Á¤
   SetWindowRgn(Handle, MyForm, TRUE);
end;
procedure TForm1.FormDestory(Sender : TObject);
begin
   DeleteObject(MyForm);
end;

 

<´Ù°¢ÇüÀÇ Æû ¸¸µé±â>

´Ù°¢ÇüÀÇ Æûµµ ¸¶Âù°¡Áö·Î CreatepolygonRgnÇÔ¼ö¸¦ »ç¿ëÇØ ¸¸µé ¼ö ÀÖ´Ù.
¾Æ·¡¿Í °°ÀÌ ÇÏ¸é ¿ª»ï°¢ÇüÀÇ ÆûÀÌ ¸¸µé¾îÁø´Ù.
procedure TForm1.FormCreate(Sender : TObject);
var
   MyForm : HRGN;
   Pixel : array[0..2] of TPoint;
begin
   Pixel[0] := Point(0, 0);        //ÆûÀÇ ÁÂÇ¥¸¦ ¼³Á¤
   Pixel[1] := Point(Width, 0);
   Pixel[2] := Point(Width div 2, Height);
   MyForm := CreatePolygonRgn(Pixel, 3, ALTERNATE);
   SetWindowRgn(Handle, MyForm, TRUE);
end;

 

<ÈùÆ®ÀÇ ¼Ó¼º¹Ù²Ù±â>

µ¨ÆÄÀÌ¿¡¼­´Â ÈùÆ®¼Ó¼ºÀ» ½±°Ô ±¸ÇöÇÒ ¼ö ÀÖ´Â ¹Ý¸é ÈùÆ®ÀÇ ¼Ó¼ºÀ» ¹Ù²Ü ¼ö ÀÖ´Â ÇÁ·ÎÆÛƼ°¡ ¾ø½À´Ï´Ù.
¾Æ·¡ÀÇ ¹æ¹ýÀ» ÅëÇØ ¼Ó¼ºÀ» ¹Ù²ãº¸¼¼¿ä.
....
type
  TUserHint = class(THintWindow)
  constructor Create(AOwner: TComponent); override;
end;                                         //interfaceºÎ¿¡ »ðÀÔ
...
constructor TUserHint.Create;
begin
   inherited Create(AOwner);
   Canvas.Font.Name := '±Ã¼­Ã¼';    // ¿øÇÏ´Â ÆùÆ®ÀÇ À̸§ ÁöÁ¤
   Canvas.Font.Size := 10;              // ¿øÇÏ´Â ÆùÆ®ÀÇ »çÀÌÁî ÁöÁ¤    
   Canvas.Brush.Color := clYellow;  // ¿øÇÏ´Â ¹ÙÅÁ»ö ÁöÁ¤
end;                                             // implementationºÎ¿¡ »ðÀÔ
 
procedure TForm1.FormCreate(Sender: TObjcet);
var
   OldHint : Boolean;
begin
   OldHint := Application.ShowHint;
   Application.ShowHint := False;
   HintWindowClass := TUserHint;
   Application.ShowHint := OldHint;
end;
end.

 

<»óŹٿ¡ ÈùÆ®º¸À̱â>

public
{ Public declarations }
   procedure ShowHint(Sender : TObject);  //ÈùÆ®¸¦ º¸À̱âÀ§ÇÑ ÇÁ·Î½ÃÀú
end;
 
procedure TForm1.ShowHint(Sender : TObject);
begin
    StatusBar1.Panels[0].Text := Application.Hint;
end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
    Application.HintPause := 100;  //ÈùÆ®°¡ ³ªÅ¸³ª´Â ¼ÓµµÁ¶Àý
    Application.OnHint := ShowHint;
end;
¶ÇÇÑ ÈùÆ®¿Í »óŹٿ¡ µ¿½Ã¿¡ ÈùÆ®¸¦ ³ªÅ¸³»°íÀÚ ÇÏ´Â °æ¿ì¿¡´Â Hint¼Ó¼ºÀ» '|'¹®ÀÚ¸¦ ²÷¾î¼­
µ¿½Ã¿¡ ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. ("dz¼±µµ¿ò¸»|OnHintÀ̺¥Æ®¿¡¼­ »ç¿ëÇÒ ÈùÆ®")

 

<Drive TypeÀ» ¾Ë¾Æ³»ÀÚ>

ÀÓÀÇÀÇ µå¶óÀ̺ê ŸÀÔÀ» ¾Ë·Á¸é, À©µµ¿ì API ÇÔ¼ö Áß GetDriveTypeÀ̶ó´Â ÇÔ¼ö¸¦ »ç¿ëÇÏ¸é µÈ´Ù.

procedure TForm1.Button1Click(Sender: TObject);

var
   Drive: Char;
   DriveLetter: String[4];

begin
   for Drive := 'A' to 'Z' do
   begin
      DriveLetter := Drive + ':\';
      //  Syntax
      //  GetDriveType(
      //  lpRootPathName: PChar   {a pointer to the root path string}
      //  ): UINT;                 {returns a value based on the drive type}

      case GetDriveType(PChar(Drive + ':\')) of
         Drive_UnKnown : ListBox1.Items.Add( DriveLetter + ' : ¾Ë ¼ö ¾ø´Â µå¶óÀ̺ê');
         Drive_Removable: ListBox1.Items.Add( DriveLetter + ' : Ç÷ÎÇÇ µå¶óÀ̺ê');
         Drive_Fixed:      ListBox1.Items.Add( DriveLetter + ' : ÇÏµå µå¶óÀ̺ê');
         Drive_Remote:    ListBox1.Items.Add( DriveLetter + ' : ³×Æ®¿öÅ© µå¶óÀ̺ê');
         Drive_Cdrom:     ListBox1.Items.Add( DriveLetter + ' : CD-Rom µå¶óÀ̺ê');
         Drive_RamDisk:   ListBox1.Items.Add( DriveLetter + ' : RamDisk µå¶óÀ̺ê');
      end;
   end;
end;