Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
clipboard 사용법 좀....
델파이 초보입니다.
클립보드를 이용해서 텍스트나 그림을 복사하고 붙이는 법 좀 알려주세요.
1
COMMENTS
임형호
•
2000.01.10 18:50
델초 wrote:
> 델파이 초보입니다.
> 클립보드를 이용해서 텍스트나 그림을 복사하고 붙이는 법 좀 알려주세요.
제가 쓴건 아니고요. 참고로 가지고 있던 내용이거든요. 김영대님이 쓰셨다고 되어있군요.
저도 전에 참고를 했었던걸로 기억합니다. 도움이 되셨으면 좋겠습니다.
(음... 저작권침해로 혼나는건 아닐지?????
)
//=============================================================================
안녕하세요 김영대입니다.
클립보드에 자료를 복사하는 방법은 두가지 정도가 있습니다
위의 문제를 해결하는 방법을 몇자 적어보았습니다.
좋은 결과 있기를 바랍니다
첫번째 방법,
화면에 Edit 콤포넌트를 하나 놓고 실행시 보이지 않도록 Visible을 False로
만드신후 필드의 값을 Edit에 넣으신 후 Edit의 CopyToClipboard 메소드를
사용하시면 됩니다
Edit1.Text := Query1.FieldByName('KORNAME').AsString;
Edit1.CopyToClipboard;
두번째 방법,
아래 소스에서 보시면 클립보드로 문자열을 복사하는 프로시져를 API로 작성
하여 사용해 보았습니다
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Clipbrd, Db, DBTables;
type
TForm1 = class(TForm)
Button1: TButton;
Query1: TQuery;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
procedure Button1Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure SetClipData(Wdata: String);
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormActivate(Sender: TObject);
begin
Query1.Open;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
{Query1의 "KORNAME" 필드의 값을 클립보드에 복사}
SetClipData(Query1.FieldByName('KORNAME'.AsString);
end;
// 파라미터 Wdata의 문자열을 클립보드로 복사하는 프로시저
procedure TForm1.SetClipData(Wdata: String);
var
P: PChar;
hMem: THandle;
begin
{클립보드를 열어 응용 프로그램이 내용을 읽거나 세트할 수 있게 한다}
OpenClipboard(handle);
{클립보드를 비우고 그것에 관계하는 데이타를 자유롭게 한다}
EmptyClipboard();
{전역 힙(heap)에 메모리 블록을 할당한다}
hMem := GlobalAlloc(GMEM_MOVEABLE, 255);
{전역 힙의 할당된 메모리 블록을 고정(lock)시킨다}
P := GlobalLock(hMem);
{힙에 문자열을 복사}
StrPCopy(P, Wdata);
{전역 메모리 핸들을 클립보드에 전달, 메모리 블록은 클립보드 데이타가 된다}
SetClipboardData(CF_TEXT, hMem);
{전역 힙에서 메모리 블록의 잠금 해제}
GlobalUnlock(hMem);
{클립보드를 닫는다}
CloseClipboard();
end;
end.
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
전솬
2000.01.10 11:19
0
COMMENTS
/
0
LIKES
분류먼저 해주시길 부탁드립니다.
델초
•
2000.01.10 10:05
1
COMMENTS
/
0
LIKES
web browser를 만들고 싶은데요..
류성호
•
2000.01.10 19:39
만들려고 하는 브라우저 프로그램이 마이크로소프트 IE의 COM인터페이스를 이용해서 만드시는 것이 아니...
dream
2000.01.10 08:59
0
COMMENTS
/
0
LIKES
소켓에러.. Clientsocket
이현섭
•
2000.01.10 07:49
3
COMMENTS
/
0
LIKES
파스칼 & DB
류성호
•
2000.01.10 19:57
델파이에서는 파라독스DB(*.db)의 경우 자신의 로컬 컴퓨터의 디렉토리를 데이터베이스이름으로 지정할 ...
이현섭
•
2000.01.11 09:01
류성호님 감사합니다. 덕분에 고민거리를 해결하였습니다. 무공이 낮은 저에게 한 수 지도 해주신점 진심...
류성호
•
2000.01.11 19:03
지금부터 설명은 델파이 4.0을 기준으로 쓴 것입니다. 델파이 정품 CD에 InstallShield Express for Del...
델초
•
2000.01.10 02:53
1
COMMENTS
/
0
LIKES
clipboard 사용법 좀....
델파이 초보입니다. 클립보드를 이용해서 텍스트나 그림을 복사하고 붙이는 법 좀 알려주세요.
임형호
•
2000.01.10 18:50
델초 wrote: > 델파이 초보입니다. > 클립보드를 이용해서 텍스트나 그림을 복사하고 붙이는 법 좀 알려...
송승용
•
2000.01.10 02:49
2
COMMENTS
/
0
LIKES
특정IP의 MAC address가져오는 방법???
김재춘
•
2000.01.10 21:17
저도 알고 싶군요!!! 알 수 있는 방법이 궁금하네요!! 꼭 답변 부탁합니다. 송승용 wrote: >...
김군
•
2001.05.10 04:37
오 저도 꼭 알고 싶어요 아시면 저한테도... 김재춘 wrote: > 저도 알고 싶군요!!! > > 알 수...
박성훈
•
2000.01.09 22:04
1
COMMENTS
/
0
LIKES
TToolbar에서 동적으로 버튼추가하는 방법
배불뚝
•
2000.01.12 02:04
박성훈 wrote: > TToolbar를 거의 안써봐서 그런데, > TToolbar에 동적으로 버튼을 추가하려면 어떻게 해...
손진운
2000.01.09 21:40
0
COMMENTS
/
0
LIKES
Ewin32error를 잡는 방법좀...
한만택
2000.01.09 08:51
0
COMMENTS
/
0
LIKES
스트링그리드에 관한
한만택
2000.01.09 08:50
0
COMMENTS
/
0
LIKES
분류먼저 해주시길 부탁드립니다.
이솔
•
2000.01.09 05:16
1
COMMENTS
/
0
LIKES
윈도우 종료와 재부팅에 관하여...
이만준
•
2000.01.12 18:29
이솔 wrote: > 델파이 3.0으로 윈도우를 종료하고 재부팅하고 로그오프 시키는 방법을 알고 싶습니다. > ...
fallroot
2000.01.09 03:45
0
COMMENTS
/
0
LIKES
Remote Data Module 선언부분에서...
신승철
2000.01.09 00:49
0
COMMENTS
/
0
LIKES
TCP/IP를 이용한 파일 전송 예제좀..
최정훈
•
2000.01.09 00:21
1
COMMENTS
/
0
LIKES
Treeview의 선택된Node의 Image바꾸는 방법?
양상철
•
2000.01.09 22:20
최정훈 wrote: > Treeview에서 더블클릭하면 Image를 바꾸고 싶은데.... > Treeview.Selected.ImageIndex...
김원석
•
2000.01.08 23:20
2
COMMENTS
/
0
LIKES
[급한질문] 체크박스를 느려뜨려서 체크된것만 뽑고싶어요..
배불뚝
•
2000.01.12 02:20
김원석 wrote: > 안녕하세요.. > > 체크박스들을 늘려뜨려놓고...나중에 버튼이벤트가 생겼을때 체크박...
강인규
•
2000.01.10 18:43
이런걸 찾으시는게 아닌가 해서 답변드립니다. if checkbox1.Checked = true then showmessage('che...
어린왕자
•
2000.01.08 22:17
2
COMMENTS
/
0
LIKES
날짜(TimeStamp(@))데이타.... 날짜로 자료검색하기
bill
•
2000.01.09 00:25
어린왕자 wrote: > 안녕하세요...막.데이타베이스 프로그램 시작한 사람입니다. > 근데 질문이 있는데요....
bill
•
2000.01.12 19:12
bill wrote: > 어린왕자 wrote: > > 안녕하세요...막.데이타베이스 프로그램 시작한 사람입니다. > > 근...
정병옥
2000.01.08 22:04
0
COMMENTS
/
0
LIKES
음성파일전송
혜원이
2000.01.08 21:46
0
COMMENTS
/
0
LIKES
StringGrid Cell의 변경...?
강경희
•
2000.01.08 21:09
1
COMMENTS
/
0
LIKES
퀵레포트가 이상해요!
bill
•
2000.01.09 00:28
강경희 wrote: > 퀵레포트에서 금액부분을 오른쪽 정렬에 autosize := True로 설정했습니다. > 그런데 이...
우승식
2000.01.08 19:47
0
COMMENTS
/
0
LIKES
아래는 질문입니다요....
델초
2000/01/10 02:53
Views
154
Likes
0
Comments
1
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
> 델파이 초보입니다.
> 클립보드를 이용해서 텍스트나 그림을 복사하고 붙이는 법 좀 알려주세요.
제가 쓴건 아니고요. 참고로 가지고 있던 내용이거든요. 김영대님이 쓰셨다고 되어있군요.
저도 전에 참고를 했었던걸로 기억합니다. 도움이 되셨으면 좋겠습니다.
(음... 저작권침해로 혼나는건 아닐지?????
)
//=============================================================================
안녕하세요 김영대입니다.
클립보드에 자료를 복사하는 방법은 두가지 정도가 있습니다
위의 문제를 해결하는 방법을 몇자 적어보았습니다.
좋은 결과 있기를 바랍니다
첫번째 방법,
화면에 Edit 콤포넌트를 하나 놓고 실행시 보이지 않도록 Visible을 False로
만드신후 필드의 값을 Edit에 넣으신 후 Edit의 CopyToClipboard 메소드를
사용하시면 됩니다
Edit1.Text := Query1.FieldByName('KORNAME').AsString;
Edit1.CopyToClipboard;
두번째 방법,
아래 소스에서 보시면 클립보드로 문자열을 복사하는 프로시져를 API로 작성
하여 사용해 보았습니다
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Clipbrd, Db, DBTables;
type
TForm1 = class(TForm)
Button1: TButton;
Query1: TQuery;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
procedure Button1Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure SetClipData(Wdata: String);
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormActivate(Sender: TObject);
begin
Query1.Open;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
{Query1의 "KORNAME" 필드의 값을 클립보드에 복사}
SetClipData(Query1.FieldByName('KORNAME'.AsString);
end;
// 파라미터 Wdata의 문자열을 클립보드로 복사하는 프로시저
procedure TForm1.SetClipData(Wdata: String);
var
P: PChar;
hMem: THandle;
begin
{클립보드를 열어 응용 프로그램이 내용을 읽거나 세트할 수 있게 한다}
OpenClipboard(handle);
{클립보드를 비우고 그것에 관계하는 데이타를 자유롭게 한다}
EmptyClipboard();
{전역 힙(heap)에 메모리 블록을 할당한다}
hMem := GlobalAlloc(GMEM_MOVEABLE, 255);
{전역 힙의 할당된 메모리 블록을 고정(lock)시킨다}
P := GlobalLock(hMem);
{힙에 문자열을 복사}
StrPCopy(P, Wdata);
{전역 메모리 핸들을 클립보드에 전달, 메모리 블록은 클립보드 데이타가 된다}
SetClipboardData(CF_TEXT, hMem);
{전역 힙에서 메모리 블록의 잠금 해제}
GlobalUnlock(hMem);
{클립보드를 닫는다}
CloseClipboard();
end;
end.