1 名前: ◆XcB18Bks.Y mailto:sage [2008/06/24(火) 16:24:25 ] Delphi(デルファイ)について、他のスレッドでは書き込めない超低レベル、 もしくは質問者自身何が何だか分からない質問を 勇気を持って書き込むスレッドです。 Delphi使いが優しくコメントを返しますが お礼はDelphiの布教と初心者の救済をお願いします。 <前スレ> くだすれDelphi(超初心者用)その46 pc11.2ch.net/test/read.cgi/tech/1205323779/ <過去スレ> 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
433 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 00:44:16 ] StringReplaceのWideString版ってありますか?
434 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 08:36:38 ] >>421 Button1.Click;
435 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 09:33:40 ] >>433 AnsiStringReplaceのことか?
436 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 14:31:08 ] Memo1.Linesのそれぞれの行の文字数(全角文字は二文字と数える)を取得するにはどうすればいいですか? ------- 最初 12345 あほ apple ------- ならメモ1の最初の行文字数=4 二行目=5 三行目=4 四行目=5 といった感じです!
437 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 14:34:12 ] >>436 普通にLength()でいいじゃん。
438 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 14:36:57 ] length
439 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 14:37:01 ] そんなコマンドがあったのか!ありがとうございます
440 名前:431 mailto:sage [2008/08/23(土) 19:21:21 ] >>431 の問題ってデフォですか、それともウチだけの不具合ですか それだけでも教えてください
441 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 19:32:19 ] >>435 それでも十分いけるんだけどいちいちWideString→Stringで置換→WideStringってやってるとなんか無駄っぽいので WideStringのまま出来ないかなって思っただけです TurboDelphiにWideStrUtilsってのがあったのでその中にある、 WideStringReplaceを使ってみたけどなんか不具合があるっぽくて正常に置換されなくて使えなかったんです でもTntの関数使ったら出来ました ありがとうございました
442 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 01:16:25 ] >>440 カラムのドラッグによる位置変更で データそのものの位置が変わっちゃったらえらい事になるでしょうよ ListView_GetColumnOrderArray ListView_SetColumnOrderArray 辺りで幸せになれるかもね
443 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 02:23:50 ] TTrayIconを使用しているのですが、 TrayIconが表示されている状態でWindowsをシャットダウンすると、 「シェル通知アイコンが削除できません」 というエラーメッセージダイアログが発されて、正常にシャットダウンしません。 ダイアログを閉じるなりすれば、シャットダウンは進行するのですが。 アプリケーションでメッセージを補足して、WM_QUERYENDSESSIONを 受けたときに、TrayIconの表示をFalseにすれば何とかなるかと思ったのですが、 WM_QUERYENDSESSIONを受け取る以前に上記のエラーメッセージが 発されてしまっているようです。 対策をテストするにも、毎回Windowsをログアウトするなりしなければならないので、 非常に非効率的な事態に陥っています。 これらの問題をすでに解決済みの先哲がいらっしゃいましょうや。 なにとぞ愚人に叡智を授けて下されれば、この443、幸いに存じます。
444 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 05:30:02 ] SDK32: 通知領域にアイコンが登録されないことがある support.microsoft.com/default.aspx?scid=kb%3Bja%3B418138
445 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 05:45:16 ] どうも、443っす。 結局のところ、自己解決したっす。 原因は、WM_QUERYENDSESSIONを補足しきれてなかったことみたいっす。 WM_QUERYENDSESSIONをちゃんと補足したときにTrayIconを非表示にするだけで何とかなったっす。 つまり、アプローチは間違って無かったっす。 汗顔のイタリーっす。板汚し、失礼したっす。 それじゃ、天上の調べをオリーブの枝に接ぐ作業に戻るっす。 チャオっす。
446 名前:431 mailto:sage [2008/08/24(日) 06:30:05 ] >>442 ありがとうございました
447 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 14:13:11 ] Excelで管理していたToDoのメモを使いやすくしたいと思い、 愛用のDelphiでDB化できないかと思っています。 可搬性を考え、Delphiの通常のアプリ同様インストールなしでDBを使いたいのですが、 なにかよいエンジンは何かないでしょうか? 手持ちの最新版は Delphi2006です。
448 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 15:21:06 ] EmbeddedFirebirdとか インタフェースはInterbaseそのままだからIBXとかも普通に使える。ただしDLLなので、動作時のカレントディレクトリに注意。
449 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 15:33:36 ] プロパティを絶対に変更しないって前提なら TTodoItem = class published にいろいろデータ溜め込んでTStream.WriteComponent, ReadComonentすればいいんだけど リスク高すぎなんだよな。 ここら辺もうちょっと柔軟にXMLに対して読み書きしてくれるライブラリはないものか。
450 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 16:05:15 ] >>447 SQLiteが一番手軽かと
451 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 16:15:53 ] >>448-450 ありがとうございます。 Embedded Firebird(Interbase6互換)、Write(Read)Component、SQLite などですね。 あと、MyBaseも使えるようです。こちらが参考になりました。 Delphi@WCIMH hp.vector.co.jp/authors/VA028375/delphi/db.html SQLiteはビジュアルコンポーネントと連携できるのでしょうか?
452 名前:447=451 mailto:sage [2008/08/26(火) 16:28:25 ] SQLiteのライブラリがいくつかありました。 Tim Anderson’s ITWriting - Tech writing blog ≫ A simple Delphi wrapper for Sqlite 3 www.itwriting.com/blog/a-simple-delphi-wrapper-for-sqlite-3 Aducom Software [Delphi SQLite Components] www.aducom.com/sqlite/download.htm 18385 SQLite DbExpress driver cc.codegear.com/Item.aspx?id=18385 Delphi8以降で使えない? いくつか試してみます。ありがとうございました。
453 名前:322 mailto:sage [2008/08/26(火) 16:38:56 ] >>369 遅レスですいません。 エンバカデロ日本に電話してみました。 直販はやってないとのことで、個人の場合は量販店やネットなどで買ってほしいとのことでした。 通販の値段はこちらを参考にすることにします。 ボーランド/Borland Borland Delphi 2007 for Win32 Professional R2 アップグレード版 価格比較 [coneco.net] www.coneco.net/PriceList/1070922054/order/MONEY/ 42000円前後でしょうか。 アップグレード割引期間内にアップグレードしておけばよかったと後悔してます。 2006の時は期間を延長したりしてくれてたのに・・・
454 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 19:34:14 ] >>447 ToDo リスト程度なら、TcrientDataSet でも十分実用になると思います。
455 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 20:34:40 ] つかDBいらねぇだろ。
456 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 20:55:00 ] enterprise.watch.impress.co.jp/cda/software/2008/08/26/13696.html >価格は、Delphi 2009、C++Builder 2009とも、 >Professional版が10万2900円、Enterprise版が25万2000円、Architect版が44万1000円。 >両製品のバンドルパッケージも用意されており、 >Professional版が13万4400円、Enterprise版が29万4000円、Architect版が50万4000円となっている。 どう考えても、高いよな。
457 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 20:56:48 ] 日本のPCゲーム業界みたいなことになってるな
458 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 21:13:14 ] アカデミック無いのかな
459 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 21:16:02 ] 5年前にやっとけよといいたいがようやく標準でまともなUNICODEアプリが作れるようになったか。 新版では、IDE、コンパイラ、フレームワーク、ランタイムがすべてUnicodeに対応し、 ANSIデータとUnicodeのシームレスな利用をサポートした。 また、新しいVCL(Visual Component Library)コンポーネントを搭載。 Office 2007から採用されたリボンをはじめとする、 新しいWindowsのルック&フィールに対応している。 さらに、RADテクノロジーを用いた多層データベースアプリケーションアーキテクチャ 「DataSnap」により、コンポーネントベースのデータベースアプリケーション開発を行えるとのこと。 これらに加えてDelphiでは、ジェネリックスや無名メソッドなど、 Delphiが持つ言語機能を強化し、開発効率の向上を実現。 一方のC++Buildeでは、新しい言語標準「C++0x」などもサポートしたとしている。
460 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 21:17:34 ] オッチャスレ池
461 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 21:28:23 ] >>460 ここですか?>< food8.2ch.net/test/read.cgi/pot/1077358365/
462 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 03:54:49 ] どんどん高くなっていくなぁ
463 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 06:16:53 ] >>459 これは欲しい。 次のバージョンアップが待ち遠しいぜ。
464 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 08:01:15 ] オッチャスレみていない俺のために張っておく 新規購入価格 Delphi 2009 Professional ¥98,000 (税込:¥102,900) Delphi 2009 Enterprise ¥240,000 (税込:¥252,000) Delphi 2009 Architect ¥420,000 (税込:¥441,000) C++Builder 2009 Professional ¥98,000 (税込:¥102,900) C++Builder 2009 Enterprise ¥240,000 (税込:¥252,000) C++Builder 2009 Architect ¥420,000 (税込:¥441,000) Delphi 2009 & C++Builder 2009 Bundle Professional ¥128,000 (税込:¥134,400) Delphi 2009 & C++Builder 2009 Bundle Enterprise ¥280,000 (税込:¥294,000) Delphi 2009 & C++Builder 2009 Bundle Architect ¥480,000 (税込:¥504,000) バージョンアップ価格 Delphi 2009 Professional ¥46,000 (税込:¥48,300) Delphi 2009 Enterprise ¥160,000 (税込:¥168,000) Delphi 2009 Architect ¥280,000 (税込:¥294,000) C++Builder 2009 Professional ¥46,000 (税込:¥48,300) C++Builder 2009 Enterprise ¥160,000 (税込:¥168,000) C++Builder 2009 Architect ¥280,000 (税込:¥294,000) Delphi 2009 & C++Builder 2009 Bundle Professional ¥60,000 (税込:¥63,000) Delphi 2009 & C++Builder 2009 Bundle Enterprise ¥180,000 (税込:¥189,000) Delphi 2009 & C++Builder 2009 Bundle Architect ¥320,000 (税込:¥336,000)
465 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 08:40:21 ] 高すぎる
466 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 10:40:51 ] Vistaがこけたおかげで、Delphi7が今でも現役だぜぇ。
467 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 10:59:26 ] 割れ厨急増ですねわかります
468 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 11:03:18 ] >>466 うんうん 助かるよねぇ ってか2006買ったが7使ってる
469 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 15:17:18 ] >>466 というか製品としても現役じゃないか、Del7とCBuilder6
470 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 16:49:25 ] 2007の拡張に慣れたらもう戻れない。
471 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 17:06:21 ] >>470 kwsk
472 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 17:08:09 ] 以前買った「Delphi DB&Webプログラミング」を読んでいるのですが DB初心者にすごくわかりやすくてよい本ですね。 ところで、Delphi7時代の本のせいか、いくつか用語かツールが変わっています。 例えば、SQLエクスプローラー相当はBDS2006時代では何にあたるんでしょうか?
473 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 21:13:03 ] BDS2006はもう誰も使ってないんじゃないかな・・
474 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 21:19:07 ] いや、俺使いまくってるけどw
475 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 00:05:29 ] www.geocities.jp/teamhasebe/prgrming/delphi/tips/dupignre.htm これを利用して多重起動させないようにしようとしてるんですが 新しい起動パラメータでリスタートさせるにはどうしたらいいでしょうか?
476 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 00:32:16 ] 起動させるためのexeを作る
477 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 02:30:28 ] 最初のexe起動。 次のexeをパラメータ付きで起動。 すでに起動済みならパラメータを最初のexeへ渡して自分は終了する。 タイミングによっては難しいかな。 最初のexeを終了させる方がいいかも。 いろいろ試して。
478 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 02:35:53 ] >>476 >>477 やっぱりそうゆうやり方しか無いんですかね。 やってみます。有難うございました。
479 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 05:23:51 ] >>475 自分でExe側をコーディングしているのなら、起動パラメータを弄るのではなく、 多重起動した場合、前のを落として 起動パラメータによって変更されるパラメータを変更するだけではないのかな?
480 名前:475 mailto:sage [2008/08/28(木) 12:49:11 ] >>479 すいません。 前のを落とす方法がわかりません。
481 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 14:22:09 ] mutexで排他制御をして すでに起動していたらWM_COPYDATAでパラメータを丸投げして 新しい方が自爆して すでに起動している方がパラメータを受け取ってリスタートする。 あるいは WM_COPYDATAで死ねというコマンドを送って古い方を終了させて 新しい方がそのままパラメータを処理する。 前者の方が初期化を省ける分軽くなる可能性はある。 後者の方が実装が楽になる可能性がある。
482 名前:475 mailto:sage [2008/08/28(木) 14:26:22 ] いい機会だからWM勉強してみます。 みなさん有難うございましたm(_ _)m
483 名前:デフォルトの名無しさん [2008/08/28(木) 14:50:53 ] TWebBrowserにhtmlでフォームを表示してるんですが フォームのtextarea内で改行出来ません ie・fxでは正常に改行できます
484 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 15:46:53 ] UIWebBrowserとか使っとけ
485 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 16:33:06 ] >>475 DDEを使って、既に起動している方に終了命令を送るかな 後から起動した方が、パラメータを既に起動している方に送って、 すぐに終了ってのはよくあるけど
486 名前:485 mailto:sage [2008/08/28(木) 16:59:49 ] >>475 DDEを使うとこんな感じ ※同じプログラム内に送受信を書きます 【メッセージ受信】 1. Systemパレットから DdeServerConv をフォームに置く 2. DdeServerConv の Name プロパティを "AAA" とかにする ← 後でトピック名に使われる 3. DdeServerConv の OnExecuteMacro イベントに受け取ったときの記述をする 例) Caption := Msg.Text; 【メッセージ送信】 1. uses 節に DDEMan 等(Formsも?)を追加 2. DdeClientConv を使って送信項目を書く↓ // アプリケーションが HogeHoge.exe で、トピック名が AAA の場合 SendStr = 'Tojiro-Goma'; ←送信するメッセージ with TDdeClientConv.Create(Application) do begin if SetLink('HogeHoge', 'AAA') then begin ExecuteMacro(PChar(SendStr), False); CloseLink; end; Free; end;
487 名前:475 mailto:sage [2008/08/28(木) 17:02:44 ] >>485 今回は>>481 さんの前者の方で無事成功しました。 DDEは別のところで使えそうなので参考にさせていただきます。 有難うございました。
488 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 22:11:06 ] 文字列'ABCD'があって、その文字列に1文字置きに'#'を挿入したいのですがどのようにすればいいでしょうか? こんな感じです。 A#B#C#D よろしくお願いします。
489 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 22:13:35 ] insert
490 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 23:01:40 ] Insertとforループでどうにかできました ありがとうございました
491 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 00:07:10 ] 二重ループの中で中側をブレークしてそのまま外をコンティニューするにはどうしたらいいで初夏? 取り敢えずフラグ立ててみたのですがこれしかないでしょうか? for i:=0 to Files.Count-1 do begin while .. do begin case xx of mrOk :zzz; mrIgnore:begin Flag:=True; Break; end; else exit; end; xxxx end; if Flag then Continue; zzzzzz; end; mrIgnoreの時はxxxxもzzzzzzを処理せずfor i:=ループを続けたい
492 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 03:55:45 ] 速度は遅いかもしれんけど中のループはbreakではなくcontinueで全部終わらせば 外のループへ出れる
493 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 07:52:05 ] goto使え
494 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 08:49:03 ] >>481 そっちのほうがスマートだな
495 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 13:36:05 ] bsNoneに設定したフォームで Form1.WindowState := wsmaximized を実行するとタスクバーの領域を浸食してしまうんだがお手軽に システムメニューの最大化を実装する方法ってあります?
496 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 21:31:01 ] こちらのサイトの方法を汎用化する方法はありませんでしょうか? Delphi VCL継承コンポーネントをインストールなしで使う/Tips & Tricks www.geocities.jp/asumaroyuumaro/program/tips/replacecompo.html Edti1 := CloneComponent(Edit1); みたいな方法で使いたいのですが・・・。 Hoge.Createすると、生成されずに、Createだけよばれてしまいます。 class helper使えばできる気もするのですが、class helperの同時に1つしか使えないという制限から困っています。
497 名前:496 mailto:sage [2008/08/29(金) 21:40:44 ] Result := TComponent(Original.ClassType).Create(Owner); でいける気がしました。 ちょっと試してみます。
498 名前:496 mailto:sage [2008/08/29(金) 21:51:58 ] >>497 は勘違いでした。orz とりあえずいけた気がします。 function CloneComponent(Owner, Original: TComponent; ClassType: TComponentClass): TComponent; var Stream: TMemoryStream; begin Result := ClassType.Create(Owner); if Original is TWinControl then (Result as TWinControl).Parent := (Original as TWinControl).Parent; Stream := TMemoryStream.Create; try Stream.WriteComponent(Original); Original.Free; Stream.Position := 0; Stream.ReadComponent(Result); finally Stream.Free; end; end; 使い方: Panel1 := CloneComponent(Self, Panel1, TPanelEx) as TPanel; 問題点は、PanelならPanelの上におかれたものが全部開放されちゃうことです・・・ なんとかならないかなあ・・・
499 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 23:08:08 ] 再帰
500 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 15:57:40 ] 2つのアプリを同じPCで動かしているのですが、 競合する動作があるので片方が動作すつときはもう片方の動作を止めるために WM_COPYDATAを送っています。 開発環境はxpで正常に動作しますが動作環境は98で 「このプログラムは不正な処理をおこなったので・・・」とゆうエラーが出ます。 このエラーは送信側が送信した瞬間に送信側で出ますが受信側は受信できています。 片方を落として動作させたり、片方の受信機能を外して送信した場合はエラーが出ません。 こちらの1と2をほぼそのまま利用しました。 homepage2.nifty.com/Mr_XRAY/Delphi/plSamples/650_SendText.htm
501 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 16:12:36 ]
502 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 16:57:25 ] >競合する動作があるので片方が動作すつときはもう片方の動作を止めるために そういうときには「ミューテックス」というモンを使うんですわ。 ttp://docs.codegear.com/docs/radstudio/radstudio2007/RS2007_helpupdates/HUpdate4/JA/html/delphivclwin32/SyncObjs_TMutex.html
503 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 17:50:03 ] Win98上での開発・デバッグ環境を用意しろとしか
504 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 03:59:43 ] 短い文字列型でやってみるとか。 ShortStringね。 送信側のEdit1.Textが空のときも問題ないのかな。 PCharでキャストすると、コード領域にある#0のアドレス返すから、 その辺でおかしくなるのかも。 良く分かりません。
505 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 11:32:33 ] >>498 TReaderのメソッドの中に、 コンポーネントの構成を再帰的に追っかけて読み込んでくれるメソッドがあった希ガス このメソッド使うと、イベントも含めたコンポーネントのクローンを作成することも可能。
506 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 19:37:44 ] >>502 そこはもう通り過ぎてるだろw
507 名前:496 mailto:sage [2008/08/31(日) 19:49:11 ] >>498 のコードは不完全でして、イベントハンドラ等のコピーができません。 それらをカバーするにはこちらが参考になるようです。 DelFusaBlog コンポーネントをインストールせずに使う方法 delfusa.blog65.fc2.com/blog-entry-40.html#more TMemoryStreamでイベントハンドラを別のオブジェクトにコピーするには? hpcgi1.nifty.com/MADIA/DelphiBBS/wwwlng.cgi?print+200703/07030070.txt 私はも書いてみようと思います。
508 名前:デフォルトの名無しさん [2008/09/01(月) 11:01:26 ] DLLについて質問です。 ----------------------------------- PCOPRS1CONTROL_RET Open(int port_no) port_no 使用するCOMポート番号(0 - 255) 出力 PCOPRS1CONTROL_RET_OK = 0 成功 PCOPRS1CONTROL_RET_ERR = 1 失敗 ----------------------------------- DLL内の上のような関数をテストしようと以下のようなコードを書いて実行すると関数はちゃんと走っているようなんですが矢印のところで毎回'privileged instruction at 0x0012f6d6'とエラーがでてしまいます。 これはDLLの呼び出し方が悪いのでしょうか?それとも他に原因があるのでしょうか? ---------------------------------- function Open(port_no: Integer): Integer; stdcall; external 'hogehoge.dll'; procedure TForm1.Button1Click(Sender: TObject); var i: Integer; begin i := Open(0); ShowMessage(IntToStr(i)); end; //← ----------------------------------
509 名前:デフォルトの名無しさん [2008/09/01(月) 11:49:53 ] >>500 メッセージと一緒にデータも送ってるのか? サンプルはCDSがローカル変数になってるのが良くないと思われるが 別のやりかたとしては、wmuser,wmapp,resisterwindowmessage()、ファイルマッピングオブジェクト、ミューテックスあたり
510 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 18:18:00 ] >>500 CDS.lpData:=PChar(Edit1.Text); がダメじゃないの? S := Edit1.Text; CDS.lpData := PChar(S); でどうだ。 >>508 呼び出し規約が合ってないかもね。 Cならデフォルトはcdecl。
511 名前:508 mailto:sage [2008/09/01(月) 20:51:26 ] >>510 function Open(port_no: Integer): Integer; cdecl; external 'hogehoge.dll'; ズバリその通りで上記のようにしたらエラーが出なくなりました。 ありがとうございます!
512 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 09:37:22 ] すいません、listviewのコラムの順番を変えたいんですけど ListView_SetColumnOrderArray(ListView1.Handle,3,pi); これって、3番目を1番目に移動するには pi に何を指定すれば良いんですか あと、これは全6個のうち3番目を1番目に移動するという事ですか SendMessage(ListView1.Handle,LVM_SETCOLUMNORDERARRAY,6,3) なんか、具体的な使い方が解からないので、お願いします
513 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 11:17:29 ] >>512 少しはググろうぜ ListView_SetColumnOrderArrayはLVM_SETCOLUMNORDERARRAYのマクロだからどちらも同じと受け取っておk piにはarray of Integerへのポインタを指定するっぽい 三つのカラムのうち一番右のカラムを一番左に持ってくるときは pi: array[0..2] of Integer pi[0] := 2; pi[1] := 0; pi[2] := 1; でいいと思う んで第二引数のとこには並べ替えるカラムの個数を指定するんだと思う だからListView_SetColumnOrderArray(ListView1.Handle, Length(pi), @pi);でいいような悪寒 以上ググった結果から適当に推測した結果でした
514 名前:512 mailto:sage [2008/09/02(火) 18:02:04 ] >>513 うまく出来ました しかし、コラムの内容は位置番号と一致してるけど それ以下の内容は位置番号と一致しないです やっぱり一致させるのは無理なのかな でも、使い方が解かったんで助かりました、ありがとうございますw
515 名前:デフォルトの名無しさん [2008/09/03(水) 13:41:01 ] SpTBXLibを使っている方は、おられませんでしょうか? Silverpoint Development club.telepolis.com/silverpointdev/sptbxlib/index.htm SpTBXLibは標準で便利なドッカブルパネルがあるのですが、 いくつものドッカブルパネルを上に載せて設計時にGUIデザインすると、 画面が狭くなるためフレームを使って分離できないかと考えています。 しかし、TSpTBXMultiDock に載せた TSpTBXDockablePanel 上に 他の出作ったTFrameから継承したフレームを載せると、 載せたフレームが真っ黒になってしまいます orz いままでSpTBXLib以外でのフレームでこのようなことはなかった気がします。 何か解決方法はないものでしょうか? SpTBXLib 2.2です。OSは、Vista SP1、XP SP3で確認しました。
516 名前:515 mailto:sage [2008/09/03(水) 14:23:56 ] どうやら、TSpTBXDockablePanel以外にも TSpTBXPanel 上にFrameを載せた場合にも起こるです。 上に載せたフレームの ParentColor := True でも無効な様子で、 Color := clNone から、Color := clBtnFaceにしたところ、通常のように表示されました。 しかし、残念ながらフレーム上では SpTBXLib の Theme設定が効きません。 他の部分がTheme対応なので不恰好になってしまいます。 VCLのソースを覗いてみてわかったのですが、 TXPManifest を載せて ParentBackground を有効にさせると、 設計時はダメですが、実行時は一応、SpTBXLibのThemeが効いてくれます。 しかし、画面リサイズ時などで画面のフレームの描画が崩れることが多々あります。 バグっぽい仕様な気がしてきました。(もしくはFrameに対応してない) ので公式サイトのリンク先のニュースグループで聞いてくることにします。 もし何かわかりましたら、こちらでも報告いたします。
517 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 15:25:20 ] AVGがDelphi7で生成したexeをウィルス扱いしやがったぜというお話 www.delphipages.com/threads/thread.cfm?ID=199695&G=199691&SAR=TRUE I have the new AVG 8 with Delphi 7 Pro With AVG fully updated. Create a new Delphi Project and add nothing and no controls and try and run. AVG throws a false positive Downloader.Banload.ZKA And the exe cannot be created. Add one piece of code or one simple component and no problem and no warnings.
518 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 16:11:31 ] Avast!もDelphiで生成したwin32コンソールアプリをたまに誤認するよ
519 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 16:28:11 ] ICSというコンポーネントをインストールしたんですが、いざ使おうとすると 「ユニット名〜が解決できません」と出て使えないのです。 何か他に特別なことがいるのでしょうか? インストールするのにに参照したサイトはここです。 mrxray.on.coocan.jp/Delphi/CompoInstall/index.htm verは2007です ICS www.overbyte.be/eng/products/ics.html
520 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 17:59:24 ] これIndyとどう違うの?
521 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 18:05:38 ] It is yet another internet component.
522 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 18:08:36 ] 日本語でおk
523 名前:519 mailto:sage [2008/09/03(水) 18:40:06 ] なんだか色々と弄ってたらどうにか使えるようになりました! お騒がせしました
524 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 18:44:03 ] .cbkってファイルがいつのまにかできていたのですが・・・? これは一体どのようなファイル? なのでしょう HogeFrameUnit.dfm.cbk というような ファイルでした 環境:BDS2006
525 名前:デフォルトの名無しさん [2008/09/03(水) 20:05:26 ] google ブラウザのせいでChromeがOxygeneに名前変わっててワロタ RemObjects Software: Oxygene 3.0 www.remobjects.com/product/?id={DC0A9947-5FED-4D34-8CC8-F2DCFA87A1FE}
526 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 20:09:20 ] 質問させてください<(_ _)> Delphiのボタンの色を変える方法ってありますでしょうか?? Bitボタンの文字の色を変えることはできるんですが ボタン表面自体の色を変えたいです。 imageなどで画像貼り付けも試してみましたが ボタン全体に被さってしまい、立体感がなくなってしまいます。 どなたかいい方法ご存知の方おられましたらぜひご教授ください。
527 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 20:24:03 ] >>526 ボタンにピッタリサイズのimageを作ればいいんじゃないかな
528 名前:526 mailto:sage [2008/09/03(水) 20:45:28 ] >>527 全体に合わせてしまうと立体感がなくなってしまうし 表面だけに会わせると、周りの色との違いがでてしまいます。 立体感含むボタンそのものの画像を作るしかないんでしょうか? それだと大きさによって変わるからたいへんですね^^;
529 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 21:20:26 ] >>528 WM_ERASEBKGNDを捕まえて適当に塗る
530 名前:デフォルトの名無しさん [2008/09/03(水) 21:29:20 ] >>528 ちょっと大きいPanelに乗せれば立体的に
531 名前:526 mailto:sage [2008/09/03(水) 21:41:50 ] >>529 、530 それは実行時にボタンを押したときに ちゃんと凹みますか??
532 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 21:44:19 ] やってみればいいじゃない
533 名前:デフォルトの名無しさん [2008/09/03(水) 22:11:47 ] >>526 TButtonの色変えは、かなーり昔からのFAQくさいw 色変更が可能なボタン rakasaka.fc2web.com/delphi/odbtn.html