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

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


Category

  김영대(2003-03-07 09:13:12, Hit : 4590, Vote : 1213
 ListView 의 item 을 강제로 편집상태로 만들기

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ComCtrls;

type
  TForm1 = class(TForm)
    ListView1: TListView;
    procedure ListView1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure ListView1Edited(Sender: TObject; Item: TListItem;
      var S: String);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
{$R *.DFM}

procedure SimulateKeystroke(VirtualKey: byte;  ScanCode: DWORD);
begin
  // keybd_event 함수를 사용한 키 조합(down, up) 발생
  keybd_event(VirtualKey, // 키의 down
              ScanCode,
              0,
              0);
  keybd_event(VirtualKey, // 키의 up
              ScanCode,
              KEYEVENTF_KEYUP,
              0);
end;

procedure SimulateKeyDown(Key : byte);
begin
  // keybd_event 함수를 사용한 키 down 발생
  keybd_event(Key, 0, 0, 0);
end;

procedure SimulateKeyUp(Key : byte);
begin
  // keybd_event 함수를 사용한 키 up 발생
  keybd_event(Key, 0, KEYEVENTF_KEYUP, 0);
end;

procedure TForm1.ListView1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = VK_F2 then
    ListView1.Selected.EditCaption; // ListView 의 item을 edit mode 상태로 바꾼다
end;

procedure TForm1.ListView1Edited(Sender: TObject; Item: TListItem;
  var S: String);
var
  FindItem: TListItem;
begin
  if Trim(S) = '' then // 사용자가 값을 입력안함
    S := Item.Caption
  else
  begin
    FindItem := ListView1.FindCaption(0, S, False, True, False);
    if FindItem <> nil then // 중복검사
    begin
      MessageDlg('이미 존재하는 값입니다.',mtInformation,[mbOk],0);
      S := Item.Caption;
      SimulateKeystroke(VK_F2, 0); // F2 키를 발생시킨다
      System.Exit;
    end
    else
    begin
      Item.Caption := S;
    end;
  end;
  ListView1.SetFocus;
end;

end.





411   [COM/OLE] 내 프로그램에서 선택한 text를 다른 프로그램에 Drag&Drop으로 주기  김영대 2004/12/10 5783 1225
410   [COM/OLE] TWebBrowser에서 JavaScript 호출하기  김영대 2004/10/09 5561 1225
409   [일반/컴포넌트] Task bar 에 나타나는 프로그램 아이콘 바꾸기  김영대 2004/08/11 5062 1225
408   [데이터베이스] DB에서 자음(ㄱ,ㄴ,ㄷ....)으로 SELECT 하기  김영대 2003/03/12 5166 1225
407   [일반/컴포넌트] 한글이 포함된 문자열 자르기 - 반쪽 한글  김영대 2003/03/04 6347 1225
406   [윈도우즈 API] 실행중인 모든 프로그램 Minimized 시키기  김영대 2003/03/06 4603 1224
405   [시스템] 윈도우즈 서비스 목록 구하기  김영대 2004/07/22 4514 1222
404   [네트웍/인터넷] Winsock WriteFile and Overlapped IO  김영대 2003/11/18 5381 1222
403   [윈도우즈 API] 원도우 이동시 다시 그리기 설정/해제  김영대 2003/03/07 4488 1222
402   [시스템] 윈도우즈 전체의 키보드 입력 금지  김영대 2003/03/07 4550 1222
401   [윈도우즈 API] 정의되지 않은 Alt+키 입력시 Beep음 제거  김영대 2003/03/07 4330 1221
400   [윈도우즈 API] 작업관리자의 task switching 금지시키기  김영대 2003/03/07 4626 1221
399   [일반/컴포넌트] TForm을 BMP파일로 저장하기  김영대 2003/03/05 4800 1220
398   [일반/컴포넌트] 한 장당 두 페이지 인쇄하기  김영대 2003/03/05 4758 1220
397   [일반/컴포넌트] LZExpand를 사용한 파일 복사하기  김영대 2003/03/04 4044 1220
396   [데이터베이스] 테이블,인덱스 복사하기  김영대 2003/03/07 4076 1219
395   [시스템] DOS-matrix 프린터에 인쇄하기  김영대 2003/03/07 4509 1219
394   [멀티미디어] JPEG, WAVE 를 resource 파일에 넣고 읽어오기  김영대 2003/03/06 5113 1219
393   [시스템] Locking/ Unlocking floppy driver or CD  김영대 2003/03/07 4265 1218
392   [시스템] 현재 내 PC의 비디오 정보  김영대 2003/03/04 4563 1218
391   [시스템] 윈도우즈 캡션의 높이 읽기/설정  김영대 2003/03/07 4433 1217
390   [일반/컴포넌트] 문자열 프로시저명으로 실제 프로시저 호출하기2  김영대 2004/10/08 4764 1216
389   [윈도우즈 API] Active Desktop 활성화 여부  김영대 2004/08/25 4629 1216
388   [일반/컴포넌트] Image의 90도 회전  김영대 2003/03/04 5425 1216
387   [알고리즘] 임의의 밑수(radix)를 사용한 진법변환  김영대 2004/12/08 4886 1215
386   [일반/컴포넌트] IE Toolbar 에 버튼 올리기  김영대 2003/03/26 4746 1215
385   [윈도우즈 API] 휴지통에 파일을 버리는 법  신훈재 2003/03/10 4576 1215
384   [윈도우즈 API] Window Handle 로 실행파일명 구하기  김영대 2003/03/07 4687 1215
383   [윈도우즈 API] 떠다니는 윈도우  김영대 2003/03/05 4528 1215
382   [일반/컴포넌트] 주어진 문자열에 잘못된 숫자값이 들어있는지 검사  김영대 2003/03/04 4180 1215
381   [윈도우즈 API] Taskbar 감추기/보이기  김영대 2003/03/05 4652 1214
  [일반/컴포넌트] ListView 의 item 을 강제로 편집상태로 만들기  김영대 2003/03/07 4590 1213
379   [일반/컴포넌트] ListBox의 내용을 파일로 저장하고 불러오기  김영대 2003/03/04 4333 1213
378   [시스템] 윈도우즈 부팅 모드(정상, 안전)  김영대 2004/08/05 4249 1212
377   [일반/컴포넌트] Windows의 사용자이름, 작업그룹 구하기  김영대 2003/04/01 4852 1212
376   [일반/컴포넌트] Form이 생성되어 있는지 검사하기  김영대 2003/03/05 4113 1212
375   [윈도우즈 API] 윈도우즈 "시작" 메뉴 표시하기/감추기  김영대 2003/03/07 4527 1211
374   [시스템] 기본 프린터가 있어야 실행하지 ?  김영대 2003/03/05 4568 1211
373   [일반/컴포넌트] TEdit의 OnChange에서 Text 바꾸기  김영대 2003/03/04 4170 1211
372   [윈도우즈 API] 윈도우즈"시작" 버튼 Disable/Enable  김영대 2003/03/07 4527 1210

[이전 10개] [1]..[11][12][13][14] 15 [16][17][18][19][20]..[25] [다음 10개]
 

Copyright 1999-2021 Zeroboard / skin by zero