名前 題名 ▼ Mr.XRAYさん > 上のコードでは,取得する文字列が長い場合を想定しています. > そこで,一度,必要なサイズの計算をしていますが, > 実際にはそんなに長い文字列はあまりありません. > その場合は,Char 型の array (長さを限定する方法)でも十分です. > > procedure TForm1.Button1Click(Sender: TObject); > var > Buff : array[0..MAX_PATH-1] of Char; //(MAX_PATH-1)にする必然性はない > CAL_ID : Cardinal; > begin > //初期化 > FillChar(Buff, SizeOf(Buff), #0); > > //非ユニコード版のDelphiでは,最後の引数の値をSizeOf(Buff)にする > GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_ICALENDARTYPE, @Buff, Length(Buff)); > CAL_ID := StrToInt(Buff); > > StrKind := ''; > EnumCalendarInfo(@EnumCalendarInfoProc, LOCALE_USER_DEFAULT, CAL_ID, CAL_SCALNAME); > MessageBox(Handle, PChar(StrKind), 'カレンダの種類', 0); > end; GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link