ab.com コミュニティ

ActiveBasicを通したコミュニケーション
現在時刻 - 2024年3月29日(金) 04:13

全ての表示時間は UTC+09:00 です




新しいトピックを投稿する  トピックへ返信する  [ 5 件の記事 ] 
作成者 メッセージ
投稿記事Posted: 2011年3月02日(水) 14:13 
オフライン

登録日時: 2009年3月29日(日) 15:45
記事: 106
最近必要になったので、調べまわって書いてみました。

BytePtr型がいまいち理解できていないので、とりあえず戻り値はString型でやってます。
BytePtrってmalloc関数使わないと文字入れられないのか思ってたけど、そうでもないのね。

一応動きますが、直せる方がいらっしゃいましたら直してください。
とりあえず、これだけあれば使えるかなぁ・・・って感じです。
後は適当に調べてください~

蛇足ですが、
SHBrowseForFolder関数で返って来る数値でファイルパスが決まるとは思ってもいなかった。
SHGetPathFromIDList関数はどうやって識別しているのか謎。
まあ、今の自分には理解できない事でしょうが・・・

良かったら使ってみてください~
重複あったらすいません。

_________________
↓個人的ソフト置き場
http://www.software.jpn.org/
↓萌えゲー製作とかしていたい
http://www.holygate.jpn.org/


通報する
ページトップ
 記事の件名: 確認ですが
投稿記事Posted: 2011年3月03日(木) 15:46 
オフライン

登録日時: 2006年2月05日(日) 17:10
記事: 215
お住まい: 東京都
ウインドー系のプログラムでないのでhMainWndを使用していなくて、そのためコンパイルエラーが出て気が付きました。

確認ですが
With bor
.hwndOwner=hMainWnd
.lpszTitle=DialogName
.ulFlags=Flags
.pidlRoot=Root
End With

With bor
.hwndOwner=hWnd
.lpszTitle=DialogName
.ulFlags=Flags
.pidlRoot=Root
End With
が正解ですね。

せっかくhWndを指定するので生かしたほうがよいと思います。
いかがでしょうか?


最後に編集したユーザー たかせ [ 2011年3月17日(木) 20:23 ], 累計 1 回

通報する
ページトップ
投稿記事Posted: 2011年3月04日(金) 00:55 
オフライン

登録日時: 2009年3月29日(日) 15:45
記事: 106
引用:
確認ですが
With bor
.hwndOwner=hMainWnd
.lpszTitle=DialogName
.ulFlags=Flags
.pidlRoot=Root
End With



With bor
.hwndOwner=hWnd
.lpszTitle=DialogName
.ulFlags=Flags
.pidlRoot=Root
End With
が正解ですね。

せっかくhWndを指定するので生かしたほうがよいと思います。
いかがでしょうか?
おぶしっ。
はい、思いっきりミスです。

もともとは、まず自分で使う用に参考にしながら組んで、それから適当に関数にしてここに書きましたので、
そのときのミスですね・・・

↓修正版です
しなくても分かるかな?w

ちなみに何で関数の形にしてここに置くかと言うと、
自分がまだプログラミングのぷの字も知らない頃、とにかく慣れようと手当たり次第ここのコードをコピペしてました。
そのときに関数の形で置いてくれている方の物はものすごく助かったので、
自分も(多少ですが)公開できるようになった今、そんな人に向けて関数の形で書いてます。

はい、どーでもいいですね 笑

また修正点などありましたら、遠慮なく突っ込んであげてください~

_________________
↓個人的ソフト置き場
http://www.software.jpn.org/
↓萌えゲー製作とかしていたい
http://www.holygate.jpn.org/


通報する
ページトップ
 記事の件名:
投稿記事Posted: 2011年3月04日(金) 02:06 
DialogNameはBytePtrなので、
文字列と直接ひかくするのは良くない。
コード:
   If DialogName[0]=0 Then
        lstrcpy(DialogName,"フォルダーの選択")
    End If
引数をDialogName As Stringにして
.lpszTitle=StrPtr(DialogName)
とでもすべき。


通報する
ページトップ
   
投稿記事Posted: 2011年3月05日(土) 14:20 
オフライン

登録日時: 2009年3月29日(日) 15:45
記事: 106
引用:
DialogNameはBytePtrなので、
文字列と直接ひかくするのは良くない。
ぬ・・・そうなのですか・・・
やはりまだまだ自分は分かってない事が多いですね・・・
引用:
コード:
If DialogName[0]=0 Then
        lstrcpy(DialogName,"フォルダーの選択")
    End If 
こちらに書き換えてご使用ください~

_________________
↓個人的ソフト置き場
http://www.software.jpn.org/
↓萌えゲー製作とかしていたい
http://www.holygate.jpn.org/


通報する
ページトップ
期間内表示:  ソート  
新しいトピックを投稿する  トピックへ返信する  [ 5 件の記事 ] 

全ての表示時間は UTC+09:00 です


オンラインデータ

このフォーラムを閲覧中のユーザー: Bing [Bot] & ゲスト[10人]


トピック投稿:  可
返信投稿:  可
記事編集: 不可
記事削除: 不可
ファイル添付: 不可

検索:
ページ移動:  
Powered by phpBB® Forum Software © phpBB Limited
Japanese translation principally by ocean