2015년 12월 31일 목요일

델파이에서 다른 프로그램(탐색기)에서 드래그 드롭구현하기 2

사용시 드래그&드롭하려고 하려는 Edit를 크릭하여 포커스를 두고 드래그&드롭하면 원하는 에디터에 드롭됩니다. (Delphi, 델파이, Drag&Drop, 연습)

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    procedure WMDropFiles(var Msg: TWMDropFiles); message WM_DROPFILES;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

uses ShellApi;
{ TForm1 }

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  DragAcceptFiles(Handle, False)
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  DragAcceptFiles(Handle, True)
end;

procedure TForm1.WMDropFiles(var Msg: TWMDropFiles); // implement drag and drop
const
  MAX_PATH = 1024;
var
  CFileName: array [0 .. MAX_PATH] of Char;
begin
  try
    if DragQueryFile(Msg.Drop, 0, CFileName, MAX_PATH) > 0 then begin
      if Edit1.Focused then Edit1.Text := CFileName
      else if Edit2.Focused then Edit2.Text := CFileName;
      Msg.Result := 0;
    end;
  finally DragFinish(Msg.Drop);
  end;
end; // WMDropFiles

end.

델파이에서 다른 프로그램(탐색기)에서 드래그 드롭구현하기

폼에 드래드&드롭이 있어 간단 할 줄 알았는데 Source 에서 탐색기를 가려낼 수 가 없어서.
procedure TFrmFire.FormDragDrop(Sender, Source: TObject; X, Y: Integer);
begin
end;

인터페이스 부분에서
  protected
    procedure WMDROPFILES(var Msg: TMessage); message WM_DROPFILES;

구현부에서
procedure TFrmFire.WMDROPFILES(var Msg: TMessage);
var
i, amount, Size: integer;
Filename: PChar;
S: String;
begin
inherited;
amount := DragQueryFile(Msg.WParam, $FFFFFFFF, Filename, 255);
for i := 0 to (amount - 1) do begin
Size := DragQueryFile(Msg.WParam, i, nil, 0) + 1;
Filename := StrAlloc(Size);
DragQueryFile(Msg.WParam, i, Filename, Size);
S := ExtractFileExt(Filename);
if not ZTable1.Active then ZTable1.Open; //이곳부턴 그때 그때 달라요.
ZTable1.Edit;
DBMemo1.Lines.Add(String(Filename)); //이곳 까지
StrDispose(Filename);
end;
DragFinish(Msg.WParam);
end;

폼 생성시
procedure TFrmFire.FormCreate(Sender: TObject);
begin
  DragAcceptFiles(Handle, True); // 드래그&드롭이 가능하도록
end;

폼 닫을때
procedure TFrmFire.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  DragAcceptFiles(FrmEditor.Handle, false);
end;

또 다른 방법은..

선언부에서
  protected
    iEdMp3WindowProc: TWndMethod;
    procedure EdMp3WindowProc(var Msg: TMessage);
    procedure EdMp3Drop(var Msg: TWMDROPFILES);

구현부에서

procedure TfrmStudyLaw2.Edmp3WindowProc(var Msg: TMessage);
begin
  if Msg.Msg = WM_DROPFILES then EdMp3Drop(TWMDROPFILES(Msg))
  else iEdMp3WindowProc(Msg);
end;

procedure TfrmStudyLaw2.EdMp3Drop(var Msg: TWMDROPFILES);
var
buffer: array [0 .. MAX_PATH] of Char;
iStr: string;
begin
if DragQueryFile(Msg.Drop, $FFFFFFFF, nil, 0) <> 1 then exit;
DragQueryFile(Msg.Drop, 0, @buffer, Sizeof(buffer));
ZQuery1.Edit; // 이곳 부터 그때 그때 달라요
iStr := 'Mp3\' + ExtractFileName(buffer);
ZQuery1.FieldByName('igichul').AsString := iStr;
ZQuery1.Post; // 이곳 까지
DragFinish(Msg.Drop);
// EdMp3Drop(Msg) 이것 넣어주어야 정상일 것 같기도 하고 아닌 것 같기도 하고
end;


역시 폼 생성시
procedure TfrmStudyLaw2.FormCreate(Sender: TObject);
var
// Drag & Drop
iEdMp3WindowProc := edMp3.WindowProc;
edMp3.WindowProc := Edmp3WindowProc;
DragAcceptFiles(edMp3.Handle, True);
end;

역시나 폼 닫을 때
procedure TFrmFire.FormClose(Sender: TObject; var Action: TCloseAction);
begin
DragAcceptFiles(edMp3.Handle, false);
end;



2015년 12월 30일 수요일

2015년 마지막 내린 결정에 후회하며 .. 레노버 씽크패드 10 gen2

레노버라는 글로벌 기업을 믿고 씽크패드10 gen2
(ThinkPad 씽크패드 10 Gen2 [128G] 액보+케이스키보드 증정 ThinkPad10 Gen2 128G)를 구입했는데.

구입하고 하루만에 후회를 하게되었습니다.
이곳 저곳 알아보고 선택한 것이라 별수 없이 결재 하였습니다.

사용해보니 컴퓨터로서의 기능은 어느정도 갖추었는데, 해상도가 너무 나쁩니다.
해상도가 올랐다고 다고 하여 자그만치 70여만원의 비용을 들여 구입했는데,
아주 바보같은 결정이었습니다.

해상도와 화면의 선명함이 너무 형편이 없어서 과연 이것으로 무었을 할 수 있을 까?
생각됩니다.

제가 내린 결정이니 어찌하겠어요. 술집가서 미친짓거리 한샘치지요.
절대 구입하지 마세요. 제 생각으로는 한 300k 정도의 가격이 적당할 것으로 생각됩니다.
그나마 글씨가 흐려서 어디다 쓸수 있을지, 사진을 봐도 선명한 느낌이 전혀 없어요.

새상품인데 라벨이 조금 벗겨져 있어 혹시내 했는데...
서피스 품인 키패드는 장남감 수준입니다. USB 젠더를 사용해야한다고는 했는데 케이스에 들어가 질줄 알았죠!

펜이 와콤펜의 일종인데 오른쪽 마우스 버튼 기능을 구현할라 치면 순한사람 성질 버릴정도 입니다.

당초 아이패드 4(레티나)를 사용하였는데 수년이 지난 지금도 그 정도를 못따라 가다니 그 기업 장래가 뻔합니다.
분명 그래픽 드라이버를 많이 개선 하거나 패널을 바꾸어야 할 것입니다.

간단한 프로그램을 구현하여 도서관에서 조용히 공부하려고 했었는데, 눈버리겠어요.
포커스가 잘 맞지 않은 것처럼 글씨가 어리버리하여 꽉 던져버릴까 몇번 생각하였습니다.

수입하여 물건을 팔려면 상품을 충분히 살펴보고 팔아야 욕을 먹지 않지 않을 까 생각합니다.

결국 아들이 사용하던 맥북을 반 강제로 뺏어와 윈도우10을 깔아 사용하고 있습니다.
Renovo ThinkPad10 Gen2 절대 구입하지 마세요. 후회 막급입니다.
70만원이면 맥북 중고를 사도충분 햇을 것을...
2016년에는 이런 실수 절대하지 않아야겠다고 다짐합니다

2015년 12월 29일 화요일

맥북에 윈도우 10을 설치하여 크롬을 사용합니다.

맥북에에 윈우10을 설치하여 구글크롬을 사용해봅시다.  환상의 궁합입니다.
맥북에 윈도우10을 설치하기위해서는 윈도우10 정품 ISO가 있어야 합니다.
그렇다고 그것을 설치한다면 이걸 블로그에 올릴 필요는 없을 것입니다.
별도로 변형된 윈도우10용 ISO 를 설치할 것입니다.

맥북에서 윈도우10을 설치하려면 우선 [런처>기타 폴더>부트 그룹]을 실행합니다.
총 3단계의 과정이 있는데 윈도우 정품 ISO를 이용하여서는 1,2 단계까지만 진행을 합니다.
이 과정에서 USB 가 3개 필요할 것입니다. 사전에 [런처 > 디스크매니져]에서 FAT 형식으로포맷해주세요.

2단계가 끝나면 윈도우10 설치용 USB에 있는 soure 폴더를 자신이 설치하고자하는 변형된 위도우10의  ISO에 있는 source 와 바꿔치기합니다.

또하나 드라이버용 USB 에 있는 리얼텍 사운드 드라이버를 삭제해주세요.

준비가 마쳤으면 다시 부트 그룹으로 들어가 3단계를 실시합니다.
아마도 파티션을 절반 잡으셔야 저같은 2번 설치를 하지 않으실거에요.
왜냐고요? 맥북에 윈10을 돌리면 매우 만족하실 것이기에요..
참고로 항상 자신만이 사용한다면 윈도우10의 메트로앱은 버리고 관리자 모드로 들어가셔서 크롬을 기본브라우져로 설치하시어 크롬용 앱을 사용하시면 맥에서 크롬용 앱을 사용하시는 것과 데이터등이 전부 호환이 되기에 아주 편리하십니다.

그럼 꼭 설치에 성공하세요.

2015년 12월 26일 토요일

Samsung NoteBook에 윈도우 10 설치시 USB2.0-CRW 장치설치 오류

Samsung NoteBook에 윈도우 10 설치시 USB2.0-CRW 장치설치 오류 나면

http://support.lenovo.com/kr/ko/downloads/ds033726

직접연결 설치하여 해결함.

2015년 12월 24일 목요일

ThinnkPad 10 grn2 공장초기화

관리자 모드로 전환하면서 처음 생성 계정을 삭제하였더니, 메트로를 실행 할 수 없네요.
윈도우가 홈버젼이라 gpedit.msc 같은 파일도 없고요. 접접
웹 이곳저곳을 돌아다니며 방법을 찾았으나 scedit.msc 같은 파일이 없어서...
어떻든 홈에디션에서는 불가 한것으로 판정 내리고...
그런데 왜 굳이 관리자계정으로 할려고 하면요.
프로그램등을 작성하려면 programs 폴더에 자체적으로 파일을 생성하여야 하는데, 이게 보안에 걸려 생성이 안된다는 것입니다.
.ini 파일도 생성을 못합니다.
해서 관리자 모드 명령창에서 net user Administrator /active:yes 하여 숨겨진 관리자를 찾아내어 관리자로 로그인하면 됩니다. 이때 기존 사용자를 안지웠어야 했는데 지워버려 이렇게 고생하게 되었습니다.
공장초기화는 기존의 ThinkPad 10 과 같은 방법으로 하였습니다.
이곳을 참고하세요...이곳에 연결합니다.
시간이 엄청걸립니다. 잘나가다가 12%에서 한참을 멈추어 있네요....
윈도우 10이 깔린 태블릿을 구입했습니다. 레노버 씽크패드 10 gen2 20E3001DKR (128GB) .


아이패드 레티나(4)를 사용중이었는데 내가 만든 프로그램을 휴대하면서 돌려보고 싶어서 저질렀습니다.
그런데 그게 생각데로 쉽지 않네요.
윈도우10이 애플처럼 글자체가 예쁘지 않다보니, 가독성이 떨어지네요.
윈도우가 데스크탭에서 벗어나려면 많은 변혁이 있어야 겠다고 생각되네요.
다행히 구글 크롬에서 앱 몇게를 다운 받아 아이패드에서 하던 것들을 계속하게 되었네요.
성능은 나름 괜낯ㄶ지만 디스플에이가 생각 한것 만큼 만족스럽지 못하네요.
혼자 밝아 졌다 어두어 졌다 하기도 하고, 사진이나 글씨가 별로네요. 이것은 씽크패드의 문제 만이라고 하기에는 그렇지만...
제가 소방쪽 공부를 하면서 도서관(노트북은 시끄러워서)에서 사용하려고 델파이로 짬을 내어 만든 프로그램을 돌려보면서 공부 할 요령 이었습니다.
태블릿에 올려보니 버튼이나 글씨가 너무 적더라구요.
해서 버튼 글씨등을 크게하여 올렸더니 쓸만은 하네요.
한김에 Gen2 의 성능을 확인할겸 Delphi Xe2 에 RxLib, ZeosLib 를 올렸어요.
당연히 데스크탭처럼은 아니지만, 간단한 수정등은 할 수 있겠네요.
참고로 windows10은 항상관리자 모드로 로그인 했습니다.










tensorflow gpu 사용하기에서

 tensorflow 설치시 주의해야 한다. # Anything above 2.10 is not supported on the GPU on Windows Native python - m pip install "tensorflow<2.11...