如果Vista Shell中存在48x48或64x64图标,您如何使用SHGetFileInfo获取在TImage中显示一个图标的句柄?
我想从图像列表中选择一个代表文件夹路径的图标,并在Timage中显示48x48或64x64图标.
// load the large system image for the current path into Image1
SHGetFileInfo( PChar( CurrentPath ), FILE_ATTRIBUTE_NORMAL, SFI,
SizeOf( TSHFileInfo ), SHGFI_ICON or SHGFI_LARGEICON or SHGFI_SHELLICONSIZE or
SHGFI_SYSICONINDEX or SHGFI_TYPENAME or SHGFI_DISPLAYNAME );
AImageIndex := SFI.iIcon;
ImageList2.GetBitmap( AImageIndex, Image1.Picture.Bitmap );
Run Code Online (Sandbox Code Playgroud)
法案
我曾经尝试过FindFirst按字母顺序找到文件,但最近我发现虽然大多数情况下都是如此,但是有些文件不按字母顺序排列.
if FindFirst( AProgramPath, faAnyFile, ASearchRec ) = 0 then
repeat
AFilename := ASearchRec.name;
until FindNext( ASearchRec ) <> 0;
FindClose( ASearchRec );
Run Code Online (Sandbox Code Playgroud)
在这里的特定文件夹中有大约300个文本文件,但是大约8-10个文件以正确的字母顺序返回.
如果findfirst不按字母顺序返回文件,是否有一种方法可用于按字母顺序对文件夹内容进行排序,以便findfirst按字母顺序返回文件?
问候,
法案
有没有人知道如何在Delphi 2010 IDE中设置打开项目的初始文件夹或打开文件对话框?我第一次将D2010安装在USB硬盘驱动器上,打开的对话框总是恢复到Windows驱动器-D,而Delphi在驱动器R上.
许多版本的Delphi包括Delphi 2010显示"执行错误'D:\ ProgramData {BBD31133-40F8-4B57-9BA6-DB76C03D153B}\Setup.exe':AutoRun选项卡中的参数不正确."
它是什么意思,你如何消除它?
我尝试了许多与RibbonApplicationMenuBar相关联的方法,以防止用户使用鼠标选择RibbonApplicationMenuBar,直到从inifile加载项目设置并关闭splashform.但除非另有说明,否则似乎没有任何工作可以使RibbonApplicationMenuBar InActive.
帮助文件没有显示RibbonApplicationMenuBar的许多属性和帮助Wiki相同,所以我无法解决这个问题.
procedure TMainForm.FormCreate( Sender: TObject );
begin
// make theRibbonApplicationMenuBar1 inactive
RibbonApplicationMenuBar1.Enabled := False;
RibbonApplicationMenuBar1.Inactive := True;
RibbonApplicationMenuBar1.Hide;
RibbonApplicationMenuBar1.AutoFocus := False;
// read application settings
ReadIni( AIniFileFilename );
// show a splash form
FormSplash := TFormSplash.Create( MainForm );
// FormSplash.Parent := MainForm;
FormSplash.Position := poOwnerFormCenter;
FormSplash.Show;
FormSplash.Update;
end;
procedure TMainForm.FormShow( Sender: TObject );
begin
// close the splash form
FormSplash.RequestClose;
// Activate the RibbonApplicationMenuBar
RibbonApplicationMenuBar1.Enabled := True;
RibbonApplicationMenuBar1.Inactive := False;
if RibbonApplicationMenuBar1.CanFocus then
RibbonApplicationMenuBar1.SetFocus;
RibbonApplicationMenuBar1.AutoFocus := True;
RibbonApplicationMenuBar1.SelectApplicationButton; …Run Code Online (Sandbox Code Playgroud) //clWebSnow = $FAFAFF; defined in Graphics.pas
Listbox1.Items.Add( ColorToString( clRed ) );
Listbox1.Items.Add( ColorToString( clWebSnow ) );
Run Code Online (Sandbox Code Playgroud)
如何将"WebSnow"作为字符串返回以将颜色显示为WebSnow的颜色常量?
所有我似乎得到的是'$ FAFAFF'作为字符串,其中webcolors存储为字符串,而StandardColors和ExtendedColors返回颜色常量值.
示例:clRed在列表框中显示为红色,并在标签标题中显示为红色.clWebSnow在列表框中显示为"$ FAFAFF",并在标签标题中显示为$ FAFAFF.
法案
为什么这不能在Delphi 2009中编译?
unit VistaFolders;
interface
uses Windows, ShellAPI, ShlObj;
type
KNOWNFOLDERID = TGuid;
const
FOLDERID_ProgramData: KNOWNFOLDERID =
'{374DE290-123F-4565-9164-39C4925E467B}'; // downloads folder
var
SHGetKnownFolderPathFunc: function( const rfid: KNOWNFOLDERID;
dwFlags: DWORD; hToken: THandle; var ppszPath: PWideChar ): HResult; stdcall;
SHGetKnownFolderIDListFunc: function( const rfid: KNOWNFOLDERID;
dwFlags: DWORD; hToken: THandle; var ppidl: PItemIDList ): HResult; stdcall;
function GetDownloadsFolderPath: string;
implementation
uses ActiveX;
function PathFromIDList( Pidl: ShlObj.PItemIdList ): string;
var
Path: array[ 0..MAX_PATH ] of Char;
begin
if SHGetPathFromIDList( Pidl, Path ) then
Result := …Run Code Online (Sandbox Code Playgroud) 有人可以将此转换为Delphi 2010吗?在无法找到delphi代码以返回WiFi信号强度后,我找到了这个基本代码.有人可以将其转换为Delphi吗?
'**************************************
' Name: WiFi Signal Strength
' Description:Returns the Wifi signal st
' rength in bars (1 to 5, 5 being good)
' By: Techni Rei Myoko
'
'This code is copyrighted and has' limited warranties.Please see http://w
' ww.Planet-Source-Code.com/vb/scripts/Sho
' wCode.asp?txtCodeId=71872&lngWId=1'for details.'**************************************
Option Explicit
Public WiFiHardwareName As String, WiFiDecibals As Long
Dim objWMIService As Object, isSet As Boolean
Public Declare Function InternetGetConnectedState Lib "wininet.dll" (ByRef lpdwFlags As Long, ByVal dwReserved As Long) As Long
Public Enum ConnectedState …Run Code Online (Sandbox Code Playgroud)