[表示 : 全て 最新50 1-99 101- 201- 301- 401- 2chのread.cgiへ]
Update time : 12/23 22:07 / Filesize : 101 KB / Number-of Response : 406
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

くだすれDelphi(超初心者用)その49



1 名前:デフォルトの名無しさん [2009/02/22(日) 22:10:29 ]
Delphi(デルファイ)について、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を
勇気を持って書き込むスレッドです。
Delphi使いが優しくコメントを返しますが
お礼はDelphiの布教と初心者の救済をお願いします。

<前スレ>
くだすれDelphi(超初心者用)その48
pc11.2ch.net/test/read.cgi/tech/1225641040/

<過去スレ>
DelWiki避難所(Delphi 関連の過去スレッド)
delwiki.info/?%E3%83%AA%E3%83%B3%E3%82%AF%2F%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%83%86%E3%82%A3%2FDelphi%20%E9%96%A2%E9%80%A3%E3%81%AE%E9%81%8E%E5%8E%BB%E3%82%B9%E3%83%AC%E3%83%83%E3%83%89


237 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 13:07:43 ]
CombBoxってタブオーダー無視する?
タブストップはTrueにしてるんだけど次のやつにいっちゃう。
DEL7です。
どなたかよろしく。

238 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 13:17:56 ]
>>237
まず新規アプリケーションにComboBoxを100個並べてTABキー押してみてくれ。

239 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 16:57:20 ]
高級INIファイル程度の感じで簡単にXML読み書きするのってどうやるのが楽?
Delphi XMLで検索するとOpenXMLとかいうのがヒットするみたいだけど。

240 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 19:07:23 ]
大人しく付属してるTXMLDocument使えばいいんじゃ。デフォルトでMicrosoftのXMLパーサー使うように
なってたような。嫌なら切り替えれたような。


241 名前:デフォルトの名無しさん mailto:sage [2009/04/11(土) 23:39:00 ]
>>237
今試してみたが普通にTAB移動するぞ D2007,D5
Styleプロパティも変えてみたけどOKだ
新規フォームでもう一度試してみな
また、そんなときはうまくいかないComboBoxを選択してCtrl+Cして
エディタにでも貼り付けて違いを調べるんだ
お前の言う「昆布ボックス」がカスタムコンポーネントなら知らん

242 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 09:49:26 ]
製品版を購入するには2009だと10万弱かかるので、ためらっています。
バージョンアップ版は4万強ですが、例えばTurboをインストしていれば、
それが使えるとかの技はありませんでしょうか?それとも素直に10万弱
出すしかないのでしょうか?どうかご教示ください。

243 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 09:55:37 ]
DEL6なんだけど今時のインターフェイスのフォルダー選択コンポーネントないかな?

244 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 10:38:45 ]
ライセンス関係は Codegear に聞いてください
電話かメールで尋ねられるとおもいます

実のところ、アップデート版のインストーラーは既存製品のインストール状況を
チェックしません。純粋に、ライセンス、契約の問題です。
もっとわかりやすく言うと「アップデート版はアップデートユーザーが使うと信じてるよ」です

245 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 12:29:59 ]
んなこたーない



246 名前:デフォルトの名無しさん mailto:sage [2009/04/13(月) 09:13:16 ]
>>243
今時って?こういうコンポーネントじゃなくて?
mrxray.on.coocan.jp/Delphi/plFileDialog/index.htm

247 名前:デフォルトの名無しさん mailto:sage [2009/04/13(月) 20:48:22 ]
Delphi6 personalでIndyインスコしてIdHTTPをForm1に貼り付けると「IdBaseComponent.dcuが見つかりません」とでてコンパイルできません。
なぜでしょうか?

もしかしてDelphi6 PersonalとTurbo Delphiの両方をインスコしてあるからなんですかね?

248 名前:デフォルトの名無しさん mailto:sage [2009/04/13(月) 21:49:45 ]
ライブラリパスは設定したのか?

249 名前:デフォルトの名無しさん mailto:sage [2009/04/13(月) 22:00:52 ]
>>248
すいませんライブラリパスとは何ですか?
具体的に教えてもらえると助かります;;

250 名前:デフォルトの名無しさん mailto:sage [2009/04/13(月) 22:34:31 ]
ツール(T)→環境オプション(O)→ライブラリ→ディレクトリ→ライブラリパス(B)
ここにIndyの入ってるディレクトリを追加する

251 名前:デフォルトの名無しさん mailto:sage [2009/04/13(月) 23:31:12 ]
>>246
レストン
左側にマイコンピューターとかマイネットワーク
とか出て、フォルダーの新規作成も出来てみたいなの
が無いかなと思ったんですが、紹介してもらったのは
ソースつきなんで勉強がてら改造してみます。


252 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 00:21:16 ]
dllインジェクションやりたいお

253 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 00:29:45 ]
>>251
> 左側にマイコンピューターとかマイネットワーク

それってただのTOpenDialogでは?
Vista風の見た目とかなら探せばコンポ落ちてるだろうけど

254 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 02:57:10 ]
blog.toratech.net/article/25228591.html
を参考に、Delphi2009にQuadruple Dをインストールしようとしてるのですが、
再構築のところでエラーが出てコンパイルが出来ません・・・
何が悪いのか見当すら付かないんですがヒントをお願いします

255 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 04:07:02 ]
せめてエラーメッセージをおしえて



256 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 04:13:23 ]
いきなり30個くらいあったので・・・
最初は定義の多重宣言とか言われて、とりあえず//でコメントアウトしていくと、
constの所で、(が必要な所に;があります、とか言われて
もうわけわかめでした

257 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 08:43:06 ]
解決する気がないならチラシの裏へどうぞ。

258 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 08:49:41 ]
はあ
何を根拠にそんなアオリを入れてるのか知りませんが
kazina.seesaa.net/article/38725486.html
↑の通りにやっても同じ結果でしたね
TurboDelphiでは問題なく実行出来ましたが

259 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 08:58:18 ]
めんどくさがらずに、エラーの最初の10行ぐらいをコピペしてみろよ

260 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 09:23:12 ]
何の権利があって人に命令してるんですか?
物の頼み方を知らない人ですね。

261 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 09:33:51 ]
>>254-259
ID無いからわかりにくい。アンカーくらい付けろや!



262 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 09:52:03 ]
わからないのなら黙っててください。

263 名前:254 mailto:sage [2009/04/14(火) 09:58:51 ]
すいません、自己解決しました!

264 名前:251 mailto:SAGE [2009/04/14(火) 10:27:47 ]
>>253
そうなんですけど、OpenDialogではファイルを選ばないといけないでしょ?
2,3フォルダーコンポ落としたんですが、フォルダーの新規作成とかが
ないものばかりで。

265 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 10:29:21 ]
なんか荒らされてるのはスルーしつつ一応ログの一部貼っときます

[DCC エラー] DInput.pas(803): E2004 識別子の多重定義 : 'DIACTIONFORMAT'
[DCC エラー] DInput.pas(883): E2004 識別子の多重定義 : 'DICONFIGUREDEVICESPARAMS'
[DCC エラー] DInput.pas(938): E2004 識別子の多重定義 : 'DIDEVICEIMAGEINFO'
[DCC エラー] DInput.pas(978): E2004 識別子の多重定義 : 'DIDEVICEIMAGEINFOHEADER'
[DCC エラー] DInput.pas(1076): E2029 '(' が必要な場所に ';' があります
[DCC エラー] DInput.pas(1082): E2026 定数式が必要です
[DCC エラー] DInput.pas(1359): E2004 識別子の多重定義 : 'DIDEVICEINSTANCE'
[DCC エラー] DInput.pas(1429): E2026 定数式が必要です
[DCC エラー] DInput.pas(1433): E2003 未定義の識別子 : 'IDirectInputDeviceWVtbl'
[DCC エラー] DInput.pas(1551): E2029 '(' が必要な場所に ';' があります
[DCC エラー] DInput.pas(1555): E2026 定数式が必要です



266 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 18:01:06 ]
>>250
ありがとうございます!
解決しました!

267 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 19:04:19 ]
>>264

>>246 のは新規作成できるみたいだね。でもフォルダ選択で
> 左側にマイコンピューターとかマイネットワーク
ってのは見たことないなあ。あったら便利な感じもするけど…
もし作ったら公開してくださいね^^

268 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 20:24:05 ]
function BrowseFolderProc(hWindow: HWND; uMsg: UINT; lParam: LPARAM;lpData: LPARAM): Integer; stdcall;
var
  PathName: array[0..MAX_PATH] of Char;
begin
  case uMsg of
    BFFM_INITIALIZED:
      SendMessage(hWindow,BFFM_SETSELECTION,1,integer(PChar(lpData)));
    BFFM_SELCHANGED:
    begin
      SHGetPathFromIDList(PItemIDList(lParam),PathName);
      SendMessage(hWindow,BFFM_SETSTATUSTEXT, 0,LongInt(PChar(@PathName)));
    end;
  end;
  Result:=0;
end;

269 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 20:24:54 ]
function OpenFolder(IniDir,Title:string;OwnerHandle:HWND;
AddCreateFolder:Boolean;Files:Boolean=False):string;
var
IDList: PItemIDList;
BrowseInfo: TBrowseInfo;
PathName: array[0..MAX_PATH] of Char;
DisplayName: array[0..MAX_PATH] of Char;
const
BIF_USENEWUI=$0050;
begin
with BrowseInfo do
begin
hwndOwner :=OwnerHandle;
pidlRoot:=nil;
pszDisplayName:=DisplayName;
lpszTitle:=PChar(Title);
if Files then
ulFlags:=BIF_STATUSTEXT or BIF_RETURNONLYFSDIRS or BIF_BROWSEINCLUDEFILES or BIF_USENEWUI else
ulFlags:=BIF_STATUSTEXT or BIF_RETURNONLYFSDIRS;
if AddCreateFolder then ulFlags:=ulFlags or BIF_USENEWUI;
lpfn:=BrowseFolderProc;
lParam:=integer(PChar(IniDir));
end;
//つづく

270 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 20:25:50 ]
IDList:=SHBrowseForFolder(BrowseInfo);
if IDList=nil then
begin
Result:='';
exit;
end;
SHGetPathFromIDList(IDList,PathName);
Result:=PathName;
end;


271 名前:デフォルトの名無しさん mailto:sage [2009/04/15(水) 23:19:33 ]
DELPHIのブラウザコンポーネント使ったら、
ブラウザ画面から目的の文字列を探すことって簡単に出来ますか?
ソースをダウンロードして検索したほうが簡単ですか?

272 名前:デフォルトの名無しさん mailto:sage [2009/04/16(木) 06:06:13 ]
imiwakannne

273 名前:デフォルトの名無しさん mailto:sage [2009/04/16(木) 15:30:58 ]
[Delphi] WebBrowserからHTMLソースを取得する

uses mshtml;

Memo1.Text:= OLEVariant(WebBrowser1.Document as IHTMLDocument2).Body.InnerHTML;

って話か?

274 名前:271 mailto:sage [2009/04/16(木) 21:07:38 ]
試してないけどそういうことです。

275 名前:271 mailto:sage [2009/04/16(木) 21:08:17 ]
ありがとう



276 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 23:14:02 ]
今、簡単に言えばようつべから動画をダウンロードするプログラムを作っているのですが、
・動画をどこまで落としたかの進行度をプログレスバーに表す
・中断機能をつける
この2つがよくわかりません。

前者は動画の容量をprogress.max、落とした容量をprogress.positionにすればいいのはわかるんですが、どのように取得してどう記述すればいいのかがわかりません。
後者はスレッドを複数使う、というのはわかったのですがどうスレッドを複数作り、どのようにダウンロードを中断させればわかりません。

WindowsXP SP3 Delphi6 Personal Indy10 です。
どなたかご教授お願いします。


277 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 23:41:16 ]
www.google.com/search?q=Delphi+Indy%20%90i%92%BB
www.google.com/search?q=Delphi+Indy+%92%86%8E~

278 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 23:43:34 ]
いるよね
超初心者用ってスレなのに上から目線で英語のサイトくらい嫁とか言う奴
まあそんなんだから廃れたんだろうなDelphi
あ、俺は只のROMで質問者じゃないからね

279 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 23:45:55 ]
>>278
コピペ?

280 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 23:49:25 ]
>>278
どっちも日本語だけどな

281 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 23:51:03 ]
しかも普通にIndyの公式とかしかヒットして無い様に見えるんだけど何が言いたいんだろうね

282 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 23:52:04 ]
ああ
IEで開いたら日本語だったわ

283 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 23:55:32 ]
google.co.jpじゃなくて.comだから、外国だと思ったんだろう
いるよね?リンクの中身すら見ずにURL名だけで判断する奴
あ、俺は只のROMで質問者じゃないからね

284 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 23:57:28 ]
なんでプログラム板ってID非表示?
質問スレが多く立ちそうな板なのに不便アル

285 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 23:59:12 ]
まあ俺の勘違い?だったから罵倒してくれていいんだが
Firefoxだと
Delphi Indy i’≫
になってて英語サイトしかヒットしてないんだよ
文字エンコードはUTF-8だけど他のに変えても駄目だ
IEとChromeで開いたらDelphi Indy 進捗になったよ



286 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 00:01:17 ]
>>285
俺FireFoxだけど普通に表示されたぞ

287 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 00:03:29 ]
Accept-Languageで日本語が無いか優先度が低いんじゃね

288 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 00:04:11 ]
そっか
じゃあ俺の環境がなんかおかしくなってんだな
正直すまんかった
あと俺は本当に質問者じゃないから本人さんに何も関係ないことだから

以前他の言語のくだすれでちょっとあって・・・
脊髄反射で書き込んでしまった

289 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 10:03:38 ]
必死だな質問者


290 名前:デフォルトの名無しさん mailto:SAGE [2009/04/19(日) 21:56:08 ]
ネットのログインを自動でやりたいんだけどdelでやる時の
参考になるページ教えてください。

291 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 22:17:41 ]
俺はVBやC#の例を見ながら作ったぞ。

292 名前:デフォルトの名無しさん [2009/04/19(日) 22:43:14 ]
おまいIndyスレに書き込んだヤツか。
失敗している原因をちゃんと調べないとダメだぞ。


293 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 22:54:42 ]
そもそも、ネットのログインってのが抽象的でよくわからない

294 名前:デフォルトの名無しさん mailto:SAGE [2009/04/19(日) 22:56:11 ]
>>292
>おまいIndyスレに書き込んだヤツか。
>失敗している原因をちゃんと調べないとダメだぞ。
残念ながら違う。
自動ログイン DELPHIでググったんだけど、いまいちピンと来なかったんだ。


295 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 23:04:21 ]
IEコンポ使う方法とIndyでやる方法じゃあ、全然違うからな。



296 名前:290 mailto:sage [2009/04/19(日) 23:43:40 ]
>>291,295
レストンです。
ログインして、ブラウザに表示されるページの中からキーワードを
拾い出したいんですが、出来ればブラウザを起動させずに出来ないかなと
思い調べてました。


297 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 01:27:25 ]
で、何を使ってどんな風にどこまで作って何が不満だったかくらい言おうよ。

298 名前:デフォルトの名無しさん mailto:SAGE [2009/04/20(月) 09:27:21 ]
質問の内容が悪くてすみません。
テンパってて。

ブラウザを起動させなくてもURL直接送ってページに表示されるHTML
の内容を取得して、目的のキーワードを取得は出来るんですが、
最初にログインが必要な場合にどうすればいい買って事なんです。


299 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 10:10:50 ]
>>298
何言ってるかいまいちだがログインすればいいだけじゃないのか?

300 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 10:15:26 ]
>>290の時点で何を聞きたがってるのか分からない奴ってアホだろw

301 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 10:19:16 ]
>>300
じゃあお前が教えてやれ
よかったな>>290
今から>>300が教えてくれるぞ

302 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 10:44:10 ]
>>300
お前は黙ってろ

303 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 12:18:00 ]
>>298
「indy コンポーネント BASIC認証」でググレ
「自動ログイン DELPHI」は酷すぎるwww

304 名前:290 mailto:sage [2009/04/20(月) 13:01:56 ]
>>303
今からググって見ます。
アリガトン

305 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 13:34:58 ]
BASIC認証のサイトなんてもう少ねえよな。
まあどんな認証方法のサイトなのかは知らんけど。




306 名前:290 mailto:sage [2009/04/20(月) 13:57:00 ]
認証に種類があるんですか。
そんなことも知らなかった。
おとなしく、ブラウザを表示させて
自動入力みたいにしたほうが初心者には
簡単ですね。多分。

307 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 20:21:09 ]
まずDelphiの前にHTTP勉強しろ

308 名前:290 mailto:sage [2009/04/21(火) 01:06:15 ]
ごもっともです。

309 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 02:19:31 ]
マジレスすると>>305の言うようにBASIC認証じゃなさそうだし、
たぶんmixiみたいなIDとパス入れてログインするようなサイトなんだろうけど、
ログインしてすぐのページさえ取れればいいのならIndyでGetの代わりにPost使えば大概簡単に取れる
ただしSSLが必要だったりページの遷移があったりすると色々と面倒なんで、
IEコンポを貼り付けて見えないサイズにして(単純にVisible:=Falseだと動かない場合があった気がする)、
あとはNavigate辺りでJavaScript呼ぶかレイトバインドで直接タグ操作してやれば確実
こっちの方が資料も豊富だろうし

310 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 10:31:20 ]
認証時に何をPOSTしてるのか調べて、同じようにPOSTするプログラムを書けばよろしい。

311 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 14:26:05 ]
フォーム認証だとログインしたあとにセッションかクッキーでログイン状態を管理すると思うけど、
そのあたりindyだとどうやるんだろね
単にページを巡回したいなら、スクリプトでコントロールをクリックしたり
ページ遷移できるブラウザがあったと思うんだけど、
それを使えば便利だが、趣旨とは異なるかな?

312 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 14:58:04 ]
サブフォームをモーダルで開いた時にメインフォーム上の処理を行いたいんだが
OnDeactivateに書いても動作せず。試しにこんな感じで。
procedure TForm1.FormDeactivate(Sender: TObject);
begin
form1.Color := clwhite;
end;
どうすればいいんでしょ?

313 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 15:07:33 ]
Form2.ShowModal;
したらフォーム閉じるまで制御が戻ってこないんだからどうにもならない。
Form2側からuses Unit1;して
Form2Showかなんかで
Form1.Color := clWhite
してみたら

314 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 16:27:49 ]
Halbowさんと俺とゲームボーイの誕生日が今日らしい
誰か祝ってやれ

315 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 16:43:05 ]
tmpフォルダにzipから解凍してきたファイルを置いて、読み込み、処理が終わったらtmpフォルダを空にしたいと思ってます。
現状

tmp
 -test
  -A.txt

という様なフォルダ構成で、A.txtを読み込んだ状態です。
そこで、testフォルダを削除しようとすると「プログラムが使用してます」といった旨のエラーダイアログが出て削除する事が出来ません。

A.txtを読み込んだだけでtestフォルダにロックがかかってしまうのでしょうか。
また、そのロックを解除する術はあるのでしょうか。

A.txtの読み込みにはLoadFromFileを使ってます。
また、A.txtの検索にFindFirstを使ってます。
上記2つのどちらかが、フォルダのロックの原因でしょうか。

フォルダの削除はエクスプローラ上からも出来ませんでした。
A.txtはエクスプローラ上から削除可能でした。

何方かご教示お願い致しますm(_ _)m



316 名前:315 mailto:sage [2009/04/21(火) 16:46:04 ]
追記:

フォルダの削除にはSHFileOperationを使ってます。

フォルダをファイルが入った状態で削除するにはコレが良いとGoogle先生に聞いたので。

317 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 20:15:55 ]
>>314
Halbowさんおめでとうございます

318 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 20:19:33 ]
>>315
フォルダをつかんでる(ロックしてる)んではなくて、そのフォルダで作業してる
(カレントフォルダになってる)だけだと思う
処理が終わったら
SetCurrentDir(ExtractFileDir(Application.ExeName));
して味噌

319 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 21:04:06 ]
>>315
それオレもハマった。FindFirstが原因だと思うよ。FindFirstが終わったら
FindClose(SearchRec)とかやってクローズする必要があると思う。

320 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 21:06:24 ]
削除前にきっちりFindCloseを呼ぶ。
カレントディレクトリってコマンドプロンプト以外でもロックしちゃうんだっけ?だったら戻した方がいいかも。

321 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 00:56:17 ]
昨日Turbo Delphi Explorerを入れてみたです。
正規表現使えないかなーとBRegExpとそのUnitを入れてみたんですが
試しに簡単なの動かそうとしたらエラー出ました。
BabaさんのBREGEXPとosamuさんのUnitとを解凍してできるファイルを
とりあえず*.hと*.hlp以外全部delphiのLibフォルダに突っ込んであります。
エラーはこんなかんじ

[Pascal エラー] BRegExp.pas(226): E2064 代入できない左辺値です
[Pascal エラー] BRegExp.pas(227): E2250 指定された引数で呼び出すことのできるオーバーロード関数 'UniqueString' が定義されていません
[Pascal 致命的エラー] Project6.dpr(6): F2063 'BRegExp.pas' ユニットはコンパイルできませんでした

コードはこんなかんじ

program Project6;

{$APPTYPE CONSOLE}

uses
SysUtils,BRegExp;

var
Str: String;
begin
Str := 'うんこ:ちんこ:まんこ';
brx.Match('m/;(+);/',Str);
Writeln(brx[1]);
end.

うまく動かせてる人アドバイス求ム

322 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 18:20:05 ]
使ってないけど落としてソース覗いてみた(出来ればurl書いて欲しかった)
const TextBuffer: string='';の定数が
問題なんじゃね?

{$J+}オプション入れるか、constを
vart TextBuffer: string;
に変えて
functionの最初に
TextBuffer:='';
入れておけばいんで内科医?

ちなみに俺は「TRegExpr」
ttp://delwiki.info/?%E3%82%B3%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%8D%E3%83%B3%E3%83%88%2FTRegExpr


323 名前:315 mailto:sage [2009/04/22(水) 19:07:58 ]
>>318-320
ありがとうございます。対応入れてみました。
結果、複数フォルダがある場合に、最後の一つだけは削除できるようになりました。

まだ何処かでロックしてるみたいですorz

324 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 21:37:56 ]
>323
原因は間違いなくFindCloseのし忘れ。FindFirstした分必ずFindCloseすること。
おそらく今は最後の一回分しかFindCloseしてないんじゃないか?

325 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 23:25:56 ]
Delphiのグラフ書くコンポーネントって
2本の折れ線グラフが交差した座標を検出とか
そんな機能あるわけないよね?



326 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 00:26:40 ]
あるわけがない。
ポイントの座標くらいなら自分で取得できそうだし、
交点くらいちょびっと計算して出せよ。

327 名前:321 mailto:sage [2009/04/23(木) 02:10:16 ]
>>322
レスありがd
constに代入してるのはPascal初心者には奇怪だったんですが
やっぱりDelphiな人にも奇怪だったのね。
const取ってvar内に宣言したり、言われて{J+}オプション(理解できてない)
入れたりしたらビルドは通ったんですが、別な例外で動かないですわ。
まだまだ手に負えそうにないんで、おいらもTRegExprにしてみる。

328 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 03:06:48 ]
constへの代入が何故使われてるかというと、あれはDelphiでスタティック変数もどきを使用するテクニックなんで、
動作するには前回の値が保存されてる必要があるから、単純にvarにするだけじゃ動かない
実体はスコープが関数内に限定されたグローバル変数だから、宣言をfunctionの外に移動させてやればおk
ただ$Jスイッチは局所的に有効になるから、ユニットの先頭にでも{$J+}と書くのが一番確実かな

329 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 04:57:55 ]
>>327
古いDelphiではConstは常に書き込み可能だったのだ
var TextBuffer: string='';
function TBRegExp.Subst()
begin
end;
と外に出してグローバル変数にすればおk
今時{J+}は使わなくて良いでしょ

あと、肝心の正規表現間違ってるよ
エラーはそのせいかと

Str := 'うんこ;ちんこ;まんこ';
brx.Match('m/;(.+);/',Str);
Writeln(brx[1]);



330 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 05:09:19 ]
というか、DLLで良いのなら鬼車の方が良いかな
homepage2.nifty.com/Km/onig.htm
(DLLのLinkがonig.zip になってるけどonig.lzhが正解)

www.geocities.jp/jview2000/oniguruma.html

331 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 11:53:16 ]
クラス化してくれ…

332 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 19:29:51 ]
>>328
322だが、もちろんその使い方で私も使ってます
ただ、くだんのBRegExp.pasでは単に初期化するだけに使っていることを
確認してのレスでした

333 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 22:35:40 ]
エクセルのブックをDelphiで作成したいのですが、
Excel := CreateOleObject('Excel.Application');
てやるとエクセルが起動しちゃうんですよね?

起動させずにブックを作ることって出来ませんか?

334 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 22:49:55 ]
不可能
でも表示をオフにすれば起動されたことはわからんけど。


335 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 22:59:47 ]
鬼車をLoadLibraryなどの実行時動的リンクではなく、
ロード時動的リンクしようとすると、Delphiが変数のインポートをサポートしてないから
面倒なんだよな。Delphiってうんこだよな。




336 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 22:59:49 ]
レストンです。
そうですか。
シートに書き込むデータがアドインソフトに関するもので書き込んだ瞬間

「外部データにアクセスできない。アドインを実行するか?」

見たいなメッセージが出てきてしまします。
エクセルの特定のアドインを一時的にとめることって出来ますか?
エクセルのヘルプに見ても登録と削除しか出てこないようなので。

337 名前:デフォルトの名無しさん mailto:sage [2009/04/24(金) 00:50:22 ]
>>333
勿論できるぞ。種になるブックをどこかに作っておき、
それをコピーするんだ。実行自体にはExcelすら要らん。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<101KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef