Haruyuki Mohri Blog(Delphi)

毛利春幸のブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

使えるCOMポート一覧を取ってくる

PCのシリアルポート名はレジストリに書かれているので
列挙して表示する
usesにBorland.Vcl.Registryを追加する
ComboBoxをフォームに置いて

procedure TForm1.FormCreate(Sender: TObject);
var
slValueNames: TStringList;
reg: TRegistry;
i: Integer;
begin
slValueNames := TStringList.Create;
reg := TRegistry.Create;
try
reg.RootKey := HKEY_LOCAL_MACHINE;
if reg.OpenKey('HARDWAR\EDEVICEMAP\SERIALCOMM', False) then
begin
reg.GetValueNames(slValueNames);
for i := 0 to Pred(slValueNames.Count) do
if reg.GetDataType(slValueNames.Strings[i]) = rdString then
ComboBox1.Items.Append(reg.ReadString(slValueNames.Strings[i]));
end;
finally
reg.Free;
slValueNames.Free;
end;
end;
スポンサーサイト

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2006/04/25(火) 13:22:12|
  2. Delphi

Delphi VCL.NET で SHBrowseForFolderを使ってみる

Delphi VCLに付いてるFileCtrl.SelectDirectoryでも良いが
見た目ちょっとって感じなんで
SHBrowseForFolder を使ってみる

usesにShlObj, System.Runtime.InteropServices;を追加する


procedure T***.FormCreate(Sender: TObject);
begin
Label1.Caption := Self.SelectDirectory('フォルダを選択してください');
end;

function T***.SelectDirectory(const stTitle: String): String;
var
hres: HResult;
ip0,
ip1: IntPtr;
bi: TBrowseInfo;
lpBuffer : IntPtr;
rs: String;
begin
hres := SHGetSpecialFolderLocation(Application.Handle, CSIDL_DESKTOP, ip0);
if FAILED(hres) Then Begin
Exit;
end;
SetLength(rs, MAX_PATH);
bi.hwndOwner := Handle;
bi.pidlRoot := ip0;
bi.lpszTitle := stTitle;
bi.ulFlags := 0;
bi.lpfn := Nil;
bi.lParam := 0;
ip1 := SHBrowseForFolder(bi);
if not (ip1 = nil) then
begin
lpBuffer := Marshal.StringToHGlobalAnsi(rs);
if SHGetPathFromIDList(ip1,lpBuffer) then
begin
if not(lpBuffer = nil) then
Result := Marshal.PtrToStringUni(lpBuffer);
end;
end;
end;


テーマ:プログラミング - ジャンル:コンピュータ

  1. 2006/04/20(木) 13:17:02|
  2. Delphi.NET

Delphi.NET でShift_JIS文字をファイルに書き出す

普通にTStringList.SaveToFileとかでも良いが

procedure T****.Save(const stFileName, stContents: String);
var
sw: StreamWriter;
begin
sw := StreamWriter.Create(stFileName, False, Encoding.GetEncoding(932));
try
sw.Write(stContents);
sw.Close();
finally
sw.Free;
end;
end;

上記のようなprocedureを作成してもいいかも

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2006/04/08(土) 13:15:13|
  2. Delphi.NET

Profile

Twitter...

最近の記事

ブログ内検索

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。