::: 델파이 Tip&Trick :::

델파이 Tip&Trick 성격에 맞지 않는 광고,비방,질문의 글은 즉시 삭제하며
내용을 복사하여 사용할 경우 반드시 이곳(http://www.howto.pe.kr)을 출처로 명시하여 주세요


Category

  김영대(2003-03-04 20:42:28, Hit : 5867, Vote : 1471
 클립보드로 복사

> 델파이 자가 드리는 질문입니다.
> 어떤 데이타 베이스에서 특정 필드를 클립보드로 복사를 하고 싶은데요.
> (예를 들어 만약 우편번호 검색이라는 프로그램 내에서 우편번호를 치면
> 거기에 따른 주소가 나오고 이주소를 클립보드로 복사를 하고 싶은데
> 어떻게 해야될지 모르겠으요).
> 아시는 분은 좀 가르쳐 주세요.
> 그럼 부탁 드립니다.

안녕하세요  김영대입니다.

클립보드에 자료를 복사하는 방법은 두가지 정도가 있습니다
위의 문제를 해결하는 방법을 몇자 적어보았습니다.
좋은 결과 있기를 바랍니다

첫번째 방법,

  화면에 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.





971   [네트웍/인터넷] Internet에 연결중인지 여부를 알려면...  김영대 2003/03/04 5388 1396
970   [윈도우즈 API] 델파이 3.0에서 한글변환을 하는법....  김영대 2003/03/04 6225 1488
969   [시스템] 떠 있는 프로그램 죽이기...  김영대 2003/03/04 6130 1467
968   [시스템] 다른 Application 생성과 소멸에 대하여...  김영대 2003/03/04 5023 1366
967   [윈도우즈 API] 도구모음 Bar는 어떻게 만드는지...  김영대 2003/03/04 4904 1386
966   [일반/컴포넌트] StringGrid의 Cell에 입력 값 제한 하기  김영대 2003/03/04 6362 1337
965   [데이터베이스] DB의 Blob필드에 화일을 저장하기  김영대 2003/03/04 5304 1288
964   [시스템] Windows NT 에서 한글 NT인지 영문 NT인지 구분하는 방법  김영대 2003/03/04 6964 1409
963   [시스템] 오직 하나의 프로그램만 실행...  김영대 2003/03/04 5257 1415
962   [데이터베이스] TBlobField에 대한 사용법  김영대 2003/03/04 5158 1325
961   [멀티미디어] TMedia Player에서 BMP파일로 저장하기(화면 capture)  김영대 2003/03/04 4779 1319
960   [일반/컴포넌트] StringGrid에서 Enter Key를 Tab Key와 같은 효과  김영대 2003/03/04 5477 1255
959   [데이터베이스] Stored Procedure 작성을 어떻게 하나  김영대 2003/03/04 5116 1334
958   [윈도우즈 API] 날짜변형에 대해서...  김영대 2003/03/04 5068 1275
957   [윈도우즈 API] 델파이에서 시간을 기다리는 함수  김영대 2003/03/04 6378 1414
956   [데이터베이스] DBGrid에서 MultiSelect된것 알아내려면...  김영대 2003/03/04 5830 1315
955   [윈도우즈 API] 외부 프로그램의 윈도우 크기 조절  김영대 2003/03/04 5383 1330
  [윈도우즈 API] 클립보드로 복사  김영대 2003/03/04 5867 1471
953   [일반/컴포넌트] VB Left$(), Right$(), LTrim$() ...  김영대 2003/03/04 4987 1251
952   [윈도우즈 API] 화면캡처하기 Delphi3.0에서...  김영대 2003/03/04 4900 1327
951   [데이터베이스] 엑셀자료를 읽어서 DB에 UPDATE  김영대 2003/03/04 5369 3605
950   [시스템] 프린터 상태가 Ready인지 아닌지 검사  김영대 2003/03/04 6096 1846
949   [데이터베이스] DBGrid 에서 선택된 필드의 타이틀을 굵게  김영대 2003/03/04 4915 1356
948   [윈도우즈 API] bitmap을 JPEG로 변환  김영대 2003/03/04 5125 1389
947   [데이터베이스] DBGrid의 Column, Record 의 위치 저장/이동  김영대 2003/03/04 10854 2186
946   [데이터베이스] ORACLE 나 SQL Server 에서 레코드 번호  김영대 2003/03/04 5215 1328
945   [윈도우즈 API] 키보드의 임의키 발생  김영대 2003/03/04 5623 1398
944   [데이터베이스] BDE 버전정보  김영대 2003/03/04 4225 1190
943   [일반/컴포넌트] 문자열의 암호화(Password 처리)  김영대 2003/03/04 4532 1134
942   [일반/컴포넌트] Image의 90도 회전  김영대 2003/03/04 5430 1218
941   [윈도우즈 API] 파일정보(생성,변경,접근일자,속성,종류...)  김영대 2003/03/04 5589 1307
940   [윈도우즈 API] 윈도우즈 탐색기와의 연동  김영대 2003/03/04 5859 1396
939   [시스템] 절약형 모니터의 켜기/끄기  김영대 2003/03/04 4865 1357
938   [시스템] 드라이브 포맷(Format) API 함수  김영대 2003/03/04 4899 1338
937   [일반/컴포넌트] virtual keys 리스트  김영대 2003/03/04 4295 1239
936   [윈도우즈 API] short/long file name 변환  김영대 2003/03/04 4373 1289
935   [일반/컴포넌트] 메뉴 아이템의 동적 추가와 그림넣기  김영대 2003/03/04 7848 1253
934   [윈도우즈 API] 파일의 확장명으로 실행화일 연결  김영대 2003/03/04 5176 1379
933   [시스템] CD-ROM 문 열기/닫기  김영대 2003/03/04 4916 1413
932   [일반/컴포넌트] QReport에서 출력된 자료를 Text화일로 저장  김영대 2003/03/04 4605 1267

1 [2][3][4][5][6][7][8][9][10]..[25] [다음 10개]
 

Copyright 1999-2021 Zeroboard / skin by zero