Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
하드에 있는 파일을 플로피 디스켓으로 복사하는동안 ProgressBar로 보여주려고
안녕하세요.
델파이 초보입니다.
제가 원하는 것은
하드에 있는 파일을 플로피 디스켓으로 복사 하는동안 복사 진행과정을
ProgressBar로 보여주려고 합니다. 그런데 안되네요.
정확한 소스를 보고 싶은데.....좀 도와 주세요.
1
COMMENTS
최석기
•
2000.03.30 03:40
양동욱 wrote:
> 안녕하세요.
> 델파이 초보입니다.
> 제가 원하는 것은
> 하드에 있는 파일을 플로피 디스켓으로 복사 하는동안 복사 진행과정을
> ProgressBar로 보여주려고 합니다. 그런데 안되네요.
> 정확한 소스를 보고 싶은데.....좀 도와 주세요.
>
에구 델파이 코리아에 참고하시라고 적어 놓구 왔더만 여기도 있네요..
혹시나 하니까 다시 적을께요..
뭐 윈도우즈 자체에서 제공하는 API를 사용한 복사를 하면 윈도우 탐색기에서 복사 형태의 프로그래시브바가 생성되고요.
전 예전에 StatusBar에 ProgressBar를 나타내 복사 상황을 보여주었던 예제가 있네요..
참고 하세요..
procedure TForm1.Button1Click(Sender: TObject);
var
FromStream, ToStream: TFileStream;
BytesToCopy: LongInt;
begin
FromStream := TFileStream.Create(Edit1.Text, fmOpenRead);
ToStream := TFileStream.Create(Edit2.Text, fmCreate or fmOpenWrite);
{ Set up Statusbar control }
StatusBar1.SimplePanel := True;
StatusBar1.SizeGrip := False;
StatusBar1.SimpleText := 'Saving to ' + Edit2.Text;
StatusBar1.Refresh; // ensure the text is displayed
try
with TProgressBar.Create(Self) do
try
{ Position the progress bar within the
status bar on the right side. }
Top := Top + 3;
Left := StatusBar1.Width - Width;
Height := Height - 3;
Parent := StatusBar1;
{ Set small portions for the copy steps. }
Step := FromStream.Size div 1000;
Max := FromStream.Size;
BytesToCopy := Step;
{ Display statistics. }
lblStep.Caption := 'Step: ' + InttoStr(Step);
lblSize.Caption := 'From Stream size: ' + InttoStr(FromStream.Size);
lblMin.Caption := 'Min: ' + InttoStr(Min);
lblMax.Caption := 'Max: ' + InttoStr(Max);
{ Perform the stream copy. }
while (ToStream.Position + BytesToCopy <= FromStream.Size) do
begin
ToStream.CopyFrom(FromStream, BytesToCopy);
StepIt;
Application.ProcessMessages;
end;
{ Copy remaining bytes }
ToStream.CopyFrom(FromStream, FromStream.Size - ToStream.Size);
Position := ToStream.Size;
finally
StatusBar1.SimpleText := '';
Free;
end;
finally
ToStream.Free;
FromStream.Free;
end;
end;
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
이수정
•
2000.03.30 03:18
2
COMMENTS
/
0
LIKES
제 에러 메시지 한번만 봐 주세요..
최용일
•
2000.03.30 03:35
TList, TListBox, TListView, ...등에서 현재 가지고 있는 아이템의 범위를 벗어난 인덱스를 참조할때 일...
nilriri
•
2000.03.30 03:33
이수정 wrote: > Project chat.exe raised exception class EListError with message > > 'List index...
정형모
•
2000.03.30 03:14
1
COMMENTS
/
0
LIKES
dbgridh의 합계표현방법
공성환
•
2000.03.30 04:10
정형모 wrote: > DBGridH에서 마지막에 Row를 추가하여 합계를 표현할수 > 있는지..... > 아시는분 급...
이수정
•
2000.03.30 03:06
4
COMMENTS
/
0
LIKES
DB에서 읽은 레코드의 각 필드값을 DBGrid말고 Edit에 나타낼려면 어떻게????
얀
•
2000.03.30 05:07
id.text := DBGrid1.fieldbyname('id').value; name.text := DBGrid1.fieldbyname('name').valu...
nilriri
•
2000.03.30 03:15
이수정 wrote: > 안녕하세요.. > > 1) query1.open; 하고.. > 2) query1.Locate('id', 'leesj', [loCa...
이수정
•
2000.03.30 03:24
nilriri wrote: > 이수정 wrote: > > 안녕하세요.. > > > > 1) query1.open; 하고.. > > 2) query1.L...
nilriri
•
2000.03.30 03:37
지금당장 컴을 리부팅 하시길... 메모리 부족에러인듯... 'Insufficient memory (잘못된, 부적절한의...
nambada
2000.03.30 03:01
0
COMMENTS
/
0
LIKES
스트링그리드의 마우스드래그
궁금이
2000.03.30 02:48
0
COMMENTS
/
0
LIKES
delphi5 설치시..
송정환
•
2000.03.30 02:40
1
COMMENTS
/
0
LIKES
Access테이블을 이용해서..
nilriri
•
2000.03.30 02:53
송정환 wrote: > 테이블 컴포넌트을 이용해서 데이타를 억세를 하고 있는데.. > 테이블 컴포넌트의 filte...
양동욱
•
2000.03.30 02:04
1
COMMENTS
/
0
LIKES
하드에 있는 파일을 플로피 디스켓으로 복사하는동안 ProgressBar로 보여주려고
안녕하세요. 델파이 초보입니다. 제가 원하는 것은 하드에 있는 파일을 플로피 디스켓으로 복사 하는동안 복사 진행과정을 ProgressBar로 보여주려고 합니다. 그런데 안되네요. 정확한 소스를 보고 싶은데.....좀 도와 주세요.
최석기
•
2000.03.30 03:40
양동욱 wrote: > 안녕하세요. > 델파이 초보입니다. > 제가 원하는 것은 > 하드에 있는 파일을 플로피 ...
김진호
•
2000.03.30 02:00
1
COMMENTS
/
0
LIKES
키보드의 화살표키(커서키)를 못쓰게 만드려면 ?
nilriri
•
2000.03.30 03:11
김진호 wrote: > 정해진 한 컴포넌트에서만 키보드의 화살표키(방향키)를 못쓰게 하려면 어떻게 해야 되나...
조유정
•
2000.03.30 01:49
1
COMMENTS
/
0
LIKES
퀵리포트에서 pagefooter 세로size(height) 조정법
nilriri
•
2000.03.30 04:00
조유정 wrote: > 퀵리포트 사용시 처음페이지와 다르게 페이지 footer길이를 조정하고 싶은데 조정방법이...
한
2000.03.30 01:49
0
COMMENTS
/
0
LIKES
메모필드 검색시 idsql32.dll 에러...
진
2000.03.30 01:44
0
COMMENTS
/
0
LIKES
Quick report에서 밴드 쓰는 법-무지 급함
초보
•
2000.03.30 01:33
4
COMMENTS
/
0
LIKES
TSaveDialog 실행시 Access Violation Error!
최용일
•
2000.03.30 01:54
폼이 생성될때 (OnCreate)에도 SaveDialog1.Execute를 실행할 수 있습니다. 에러가 날 이유가 없는데요....
초보
•
2000.03.30 02:33
최용일 wrote: >폼이 생성될때 (OnCreate)에도 SaveDialog1.Execute를 실행할 수 있습니다. >에러가 날...
최용일
•
2000.03.30 02:35
이상하네요 저는 잘 되기만 하는데... 혹시 SaveDialog1을 동적으로 생성했던거 아닌가요? 즉, 폼위에 ...
초보
•
2000.03.30 03:30
최용일 wrote: > 이상하네요 저는 잘 되기만 하는데... > > 혹시 SaveDialog1을 동적으로 생성했던거 ...
이수정
•
2000.03.30 01:20
3
COMMENTS
/
0
LIKES
db에 입력후 아래와 같은 에러 메시지가 뜹니다. 한번 봐주세요..
심심해서
•
2000.03.30 01:33
이수정 wrote: > 안녕하세요.. > > 그냥 Edit를 사용하여 입력하기는 했습니다. 제가 DB에 좀 약하거든...
류종택
•
2000.03.30 01:33
Refresh를 사용하려면.. PK가 있어야만 가능하다는 이야기입니다.. 그리고 입력맞다 Refresh를 할 필요가...
신 기종
•
2000.03.30 01:31
이수정 wrote: > 안녕하세요.. > > 그냥 Edit를 사용하여 입력하기는 했습니다. 제가 DB에 좀 약하거든...
chobo
•
2000.03.30 01:16
1
COMMENTS
/
0
LIKES
입력받은 문자열의 byte수를 체크하려면 ???
유수
•
2000.03.30 01:33
안녕하세요. 문자열의 바이트수 얻으려면 한영구분없이 Length(Str)을 이용하면 됨다.. ByteToCh...
이빈
•
2000.03.30 00:40
2
COMMENTS
/
0
LIKES
installshield대해서...
유수
•
2000.03.30 01:17
안녕하세요. is for delphi 경우 Delphi로 제작된 프로그램 배포에 맞게 커스터마이즈 되어 있져.....
임형호
•
2000.03.30 01:02
이빈 wrote: > installshield.Professional6.0과 > installshieldExpress Custom Edition for Delphi > ...
서경철
•
2000.03.30 00:33
2
COMMENTS
/
0
LIKES
bordbk40.dll Error?
최용일
•
2000.03.30 01:45
아마도 디버거가 등록이 되지 않은것 같군요.. windowssystem에 있는 RegSvr32.exe를 이용해서 등록해주...
유수
•
2000.03.30 01:11
헐헐.. 말 그대로 디버거 커널이 등록이 안되었습니다. regsvr32를 이용해 직접 레지스트리에 등...
최명관
•
2000.03.30 00:25
2
COMMENTS
/
0
LIKES
ExtractFileName에 대해서
유수
•
2000.03.30 01:05
ExtractFileName은 확장자까지 모두 다 가져와여.. 그러니깐, ExtractFileExt를 응용해 함수를 한...
최용일
•
2000.03.30 00:58
ExtractFileName는 파일이름과 확장자를 포함한 이름을 돌려주는것이 맞습니다. 아래와 같이 하시면 확...
이수정
•
2000.03.29 23:43
2
COMMENTS
/
0
LIKES
DBEdit 에 입력된 내용을 DB에 입력하려면 어떻게 하나요??
강인규
•
2000.03.30 00:05
DBEdit는 DataSource와 연결합니다. DataSource는 Table이나 Query와 연결되구요. DBEdit는 DBGrid나 다...
정거장
•
2000.03.30 00:03
이수정 wrote: > 안녕하세요.. > > DBEdit 속성 저장창에서는 왜 테이블 연결이나 그런것이 없나요? ...
한익섭
•
2000.03.29 23:41
1
COMMENTS
/
0
LIKES
움직이는 폼을 만들려고.....
조규춘
•
2000.03.30 02:07
한익섭 wrote: > 안녕하세요^^ > 음.. 예전에 많았던.. 바탕화면이나.. 프로그램에서 돌아댕기는.... > ...
강정민
2000.03.29 23:25
0
COMMENTS
/
0
LIKES
dbrichedit를 quickrep로 출력시 에러 - 꼭...
양동욱
2000/03/30 02:04
Views
216
Likes
0
Comments
1
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
> 안녕하세요.
> 델파이 초보입니다.
> 제가 원하는 것은
> 하드에 있는 파일을 플로피 디스켓으로 복사 하는동안 복사 진행과정을
> ProgressBar로 보여주려고 합니다. 그런데 안되네요.
> 정확한 소스를 보고 싶은데.....좀 도와 주세요.
>
에구 델파이 코리아에 참고하시라고 적어 놓구 왔더만 여기도 있네요..
혹시나 하니까 다시 적을께요..
뭐 윈도우즈 자체에서 제공하는 API를 사용한 복사를 하면 윈도우 탐색기에서 복사 형태의 프로그래시브바가 생성되고요.
전 예전에 StatusBar에 ProgressBar를 나타내 복사 상황을 보여주었던 예제가 있네요..
참고 하세요..
procedure TForm1.Button1Click(Sender: TObject);
var
FromStream, ToStream: TFileStream;
BytesToCopy: LongInt;
begin
FromStream := TFileStream.Create(Edit1.Text, fmOpenRead);
ToStream := TFileStream.Create(Edit2.Text, fmCreate or fmOpenWrite);
{ Set up Statusbar control }
StatusBar1.SimplePanel := True;
StatusBar1.SizeGrip := False;
StatusBar1.SimpleText := 'Saving to ' + Edit2.Text;
StatusBar1.Refresh; // ensure the text is displayed
try
with TProgressBar.Create(Self) do
try
{ Position the progress bar within the
status bar on the right side. }
Top := Top + 3;
Left := StatusBar1.Width - Width;
Height := Height - 3;
Parent := StatusBar1;
{ Set small portions for the copy steps. }
Step := FromStream.Size div 1000;
Max := FromStream.Size;
BytesToCopy := Step;
{ Display statistics. }
lblStep.Caption := 'Step: ' + InttoStr(Step);
lblSize.Caption := 'From Stream size: ' + InttoStr(FromStream.Size);
lblMin.Caption := 'Min: ' + InttoStr(Min);
lblMax.Caption := 'Max: ' + InttoStr(Max);
{ Perform the stream copy. }
while (ToStream.Position + BytesToCopy <= FromStream.Size) do
begin
ToStream.CopyFrom(FromStream, BytesToCopy);
StepIt;
Application.ProcessMessages;
end;
{ Copy remaining bytes }
ToStream.CopyFrom(FromStream, FromStream.Size - ToStream.Size);
Position := ToStream.Size;
finally
StatusBar1.SimpleText := '';
Free;
end;
finally
ToStream.Free;
FromStream.Free;
end;
end;