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すら要らん。