저는 델파이를 시작한지 얼마되지 않은 학생입니다.
혼자서 공부를 하려니 막히는 부분이 많아서 힘이들더군요...
그래도 인내력을 가지고 델파이에 재미를 느끼며 공부하려고 하고 있습니다.
여러 델파이 홈페이지에 가서 팁들을 찾아봤는데요. 제가 못찾아서 그런지
제가 알고 싶어하는 것은 없더라구요.
제가 알고 싶어하는 부분은요 제가만든 델파이폼 안에 윈도우바탕화면에 있는
아이콘들을 전부 불러오는 방법을 알고 싶거든요..... 바탕화면 캡춰하는 팁들은 있던데....
제발 알고 계시다면 그냥 나가지 마시고요 어렵더라도 제게 도움좀 주세요......... ^_^
아~! 그리구요 폼에 나타난 아이콘중에서 제가 없에고 싶은 아이콘은(델파이 폼않에서)어떻게 해줘야 하는지..... ^_^
어렵더라도 도와주싶시요..... ^_^
--------- 델에 막 입문한 초짜델퍼가 -------------
Windows바탕화면 디렉토리에 보시면 *.lnk 파일들에서
아이콘들을 추출할 수 있습니다
이 파일들을 아래 소스처럼 ExtractIcon() 또는ExtractAssociatedIcon() 으로
추출하면 되고요 *.lnk 각각의 파일은 디렉토리를 FindFirst(),
FindNext() 로 전부 검사를 하시면 될겁니다
제 홈페이지의 Delphi Tip 에서
http://myhome.shinbiro.com/~cozykyd/index.htm
"아이콘" 과 "디렉토리 검색" 으로 팁을 찾아보시면 참고가 되실겁니다
수고하세요
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, StdCtrls, Buttons, FileCtrl, ShellAPI;
type
TForm1 = class(TForm)
FileListBox1: TFileListBox;
DirectoryListBox1: TDirectoryListBox;
DriveComboBox1: TDriveComboBox;
BitBtn1: TBitBtn;
Image1: TImage;
procedure FileListBox1DblClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FileListBox1DblClick(Sender: TObject);
var
IcoFileName: String;
IcoHandle: THandle;
MyIcon: TIcon;
begin
// 아이콘을 추출할 파일명
IcoFilename := FileListBox1.Filename;
// 마지막 인덱스트ㅌ 아이콘 번호(DLL이나 EXE에는 복수개의 아이콘이 있다)
IcoHandle := ExtractIcon(Application.Handle, PChar(IcoFilename), 0);
if IcoHandle = 0 Then // 이 파일에는 추출할 수 있는 아이콘이 없다
begin
ShowMessage('파일에는 추출할 수 있는 아이콘이 없습니다');
System.Exit;
end;
MyIcon := TIcon.Create;
MyIcon.Handle := IcoHandle;
// 추출한 아이콘을 BitBtn의 아이콘으로 사용한 예
BitBtn1.Glyph.Height := MyIcon.Height;
BitBtn1.Glyph.Width := MyIcon.Width;
BitBtn1.Glyph.Canvas.Draw(2, 2, MyIcon);
// 추출한 아이콘을 image에 출력
Image1.Picture.Icon := MyIcon;
// 추출한 아이콘을 Application의 아이콘으로 사용한 예
Application.Icon := MyIcon;
MyIcon.Free;
end;
end.