モナーの *やさしい* Delphi質問スレ
■ このスレッドは過去ログ倉庫に格納されています
0001DELモナ
NGNGDELモナは時に私であり、時には別の人。
他のスレに書き込んで罵倒される前に、まずここで質問しよう。
∧ ∧
( ´∀`)( )
0237デフォルトの名無しさん
NGNGWindows終了時にかちゅーしゃ終了させるアプリ作ってる?
需要あるから公開キボンヌ。
0238デフォルトの名無しさん
NGNG0239デフォルトの名無しさん
NGNG0240235
NGNG|うぇーん、どうしたらいいかわからないモナー
 ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∧_∧
( ´Д⊂ヽ
⊂ ノ
人 Y
し (_)
Googleで調べたら、
PostMessage(Self.Handle, WM_CLOSE, 0, 0);
ってすると、自分自身を終了できるけど、
Self.Handleのとこの変え方(?)がわかんない・・・。
こういうのの使い方ってどうやって調べるの?
>>237
2ch依存しすぎてるんで、
一定時間したら強制終了させられたらいいかな、と。
>>238
cygwin(?)だと、一定時間後とかってできないですよね?
>>239
できたら代わりに作ってください。お願いします。
0241デフォルトの名無しさん
NGNGEnumProcessとかFindWindowとか
0242235
NGNGFindWindowを使って、
FindWindow(nil,'かちゅ〜しゃ');
ってしたらできました。
(こんな方法で良いのか、わからないけど・・・)
あとはタイマーつけて頑張ります。
この度はありがとうございました。
0243デフォルトの名無しさん
NGNG0244デフォルトの名無しさん
NGNG/ ̄ l | / ̄ ̄ ̄ ̄ ̄
■■-っ < んなこたーない
´∀`/ \_____
__/|Y/\.
Ё|__ | / |
| У.. |
0245デフォルトの名無しさん
NGNGむしろ、
FindWindow('TKatjushaMainForm', nil);
のほうがいいかも…
0246235
NGNGかちゅ〜しゃ起動・終了の代わりに、
このソフトで起動・終了をさせなくちゃいけなかったり、
色々と使いづらいところもありますが、満足なできになりました。
ありがとうございました。
0247235
NGNGhttp://members.tripod.co.jp/RtFchs/KatjuClose_1113.lzh
0248Delフサギコ
NGNG\,,,,ミ,,゚Д゚彡 < sageでゴメンなさい。
⊂,,,,,,,,,つつ. \_
かちゅのパスが取得できていないみたいですので
http://homepage1.nifty.com/beny/tips/other10.html
これみて、かちゅ起動時には
フルパスを自動取得できたらいいなあ。
0249デフォルトの名無しさん
NGNGNTだとそれじゃフルパスが取得できないんだよねw
0250Delフサギコ
NGNGミ ゚Д゚彡 ジョウホウ サンクスコ
〜ミ,,,,uuミ
0251249
NGNGEnumProcesses
EnumProcessModules
GetModuleFileNameExA
を組み合わせて作る。
たしかこれ併用して9x/NTどちらでも
プロセスをフルパスで列挙可能な非VCLがあったんだが…
コンポのソースに書いてあったURLに飛ぼうとしたら404、
MSDNの検索でも結果に飛ぼうとしたら、んなページねぇぞゴルァ言われた…
具体的なURLは出せないスマソ。
0252デフォルトの名無しさん
NGNGBorlandのQ&Aで見た記憶がある。
C++用だったかも。
0253235
NGNG(>>248で上げられてるのを、どう使ったらいいのかわからないレベル・・・)
レベル的に無理そうだし、OpenDialogでの取得で落ち着きます。
http://members.tripod.co.jp/RtFchs/KatjuClose_1119.lzh
0254デフォルトの名無しさん
NGNG0255デフォルトの名無しさん
NGNGフォームを表示させる場合に、自動的に画面の中央に
表示させたいのですが、コーディングしないとダメなのでしょうか?
0256デフォルトの名無しさん
NGNGForm の Position プロパティのヘルプを読め!
0258デフォルトの名無しさん
NGNGデータを追加するにはどうすればよいのでしょうか?
ヘルプにはAddItemにリンクが張られてなかったのですが・・・
0259デフォルトの名無しさん
NGNGVCL ソースを読んだら?
0260デフォルトの名無しさん
NGNG質問者がどこで引っかかっているのかがわからないが...
ListView1.AddItem(Item: String; AObject: TObject);
または
with ListView1.Items.Add do
begin
Caption := 'XX';
end;
こんな書き方は? Items.AddItem は第一引数の扱いが難しいから
あまり勧めない。
0261_
NGNGItem: TListItem;
Item := ListView1.Items.Add;
Item.プロパティ := 値;
0262デフォルトの名無しさん
NGNGおなじじゃん...
0263デフォルトの名無しさん
NGNGそこで、環境変数のPathを変更する機能を作ろうと思ったんですが、
読込方法しかわからず、書き込み方法がわかりません。
DelphiMLとか、WebでWin32APIとか検索したんですが、どうにも見つかりません。
知っている方、教えていただけませんか?
0264Delフサギコ
NGNG∧,,∧ /
(,,,,,,,ミ,,゚Д゚彡 < 実は、かなり調べたけどフサにはわからなかったんだな。
⊂,,,,,,,,,つつ. \
もしかしてBATファイルで設定できないでしょうか?
そしたら、テキストファイルとしてBATを作成して実行して削除すれば
いいのかも....
0265Delフサギコ
NGNG#define ENV_MAX 256 //特に根拠のない数字
char EnvOfTmp[ ENV_MAX ];
GetEnvironmentValiable( "TMP" , EnvOfTmp, ENV_MAX );
設定
SetEnvironmentValiable( "TMP", "C:\Windows\Temp" );
∧,∧ ,:: / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ミ,,゚Д゚彡っ━'~ | 改めて調べたらいきなりわかった。
ミ∪ ~,ノ < BCBコードは訳しておくれ。
ミ '' ミ \____________
し'~し'
今は亡き、BCBサイト[ARAHIQS]のTipsですす。
試してないので、動作確認よろしう。
0267デフォルトの名無しさん
NGNGありがとうございます!
早速試してみたんですが、未定義の識別子:'SetEnvironmentValiable'
と言われてしまいました。
現在GetEnvironmentValiableの方は動いております。
何か、Usesに加えたりすれば解決するのでしょうか?
0268名無しヘタぐらま ◆B18Bks.Y
NGNG文字列リストのObjectsプロパティのような
関連するデータへの参照ということでしたら
>>261さんの方法でもできますです.
レポート形式ということなので蛇足ながら
2つ目以降の列の設定のコードの例もあげるです.
procedure TForm1.Button1Click(Sender: TObject);
var
NewItem: TListItem;
begin
NewItem := ListView1.Items.Add;
NewItem.Caption := 'なんとか';
NewItem.Data := FMyNantokaObject; // データへの参照.
NewItem.SubItems.Add('さぶ1');
NewItem.SubItems.Add('さぶ2');
NewItem.SubItems.Add('さぶ3');
end;
0269Delフサギコ
NGNGミ゚Д゚,ミ,ノ< ハニャーン
ミ⊃ ,ミ \
ミ, ,,ミ >>267、あら、見つからないですね。ガセかしら。
⊂,,,ノ
∪
Windows.pasにはこんな風にかかれてるけど。
function SetEnvironmentVariable(lpName, lpValue: PChar): BOOL; stdcall;
0270デフォルトの名無しさん
NGNGValiableじゃなくてVariable。lとr間違ってる
0271デフォルトの名無しさん
NGNG間違っていました(汗
修正したら動くようになりました!
フサギコさん、270さんありがとうございました。
0272デフォルトの名無しさん
NGNG現在テキストエディタを製作中なのですが、
作業中にTabを押してもメモ帳のようにカーソルが移動しません。
これはやはりOnKeyPressでそれ相応の処理をさせないと
いけないのでしょうか?(空白を入れる、など)
一通りTipsを探し回ってみたのですが、それに近い答えが見つからなかったもので…。
お願い致します。
0273Delフサギコ
NGNG,,,,,,,,,,,,,∧,,∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,ミ,,゚Д゚彡 < WantTabs
UU""" U U \_______________
0274デフォルトの名無しさん
NGNGまさかプロパティだったとは…。
もう少し勉強してからお邪魔致します。
厨な質問申し訳ございませんでした。
0275Delフサギコ
NGNG,,,,,,,,,,,,,∧,,∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,ミ,,゚Д゚彡 < そんな恐縮せんでも、
UU""" U U \_______________
ガツガツ質問して、盛り上げてくれたらいいのでは?
MLとか、広場とかでやられるより
ここで質問したほうがよくない?
0276デフォルトの名無しさん
NGNGそれは>1だからいえることで、イパーソジソには禁句と思われw
0277HSP厨房
NGNG0278デフォルトの名無しさん
NGNG0279デフォルトの名無しさん
NGNGおもいっきし TransparentColor とか AlphaBlend とかいうプロパティがあると思うけど
0280デフォルトの名無しさん
NGNG引き続きテキストエディタに関しての質問です。
読み取り専用ファイルを開いて[上書き保存]の処理をさせた時に、
「読み取り専用なので保存出来ません」と言った内容の警告を出したいと思っております。
とりあえず自分が考えたのは、
1)読み込んだファイルの属性を変数Ftype(仮)に格納
2)ダイアログを使用しない[上書き保存]の処理の際にFtypeの値を参照し、
それぞれの処理に分岐させる
と言う感じの処理です。
OpenDialog等でファイルを開いた時に対象ファイルの属性を取得したいのですが、
取得する場合はどうすればいいのでしょうか?
>>276さん、フサギコさん
ありがとうございます。まだDelphiを始めて間もないですが、
自分なりに努力してやって行こうと思っております。
ご迷惑をお掛けするかも知れませんが宜しくお願いします。
0281デフォルトの名無しさん
NGNGExtractFilePathでファイルがあるフォルダを取得して
FindFirst、FindNextをループさせて頑張る。
0282デフォルトの名無しさん
NGNG他にもあるかもしれないけど FileGetAttr
人に聞くのも一つの解決法かもしれないけど、ヘルプを引く癖をつけた方がいいよ。
このFileGetAttrという関数を覚えていたのではなく、ヘルプを開いて、「VCLリファレンス」
「ルーチン一覧(カテゴリ別)」、「ファイル管理ルーチン」と辿って見つけた。約1分。
>>280を書いて、俺がたまたま読んで、このレスを書くまで約30分。この差は大きい。
Delphiのヘルプって使いづらいとか言われてるから、慣れるまで時間がかかるかも
しれないけどね。俺は他の言語をほとんど使ったことがないのでよくわからないけど。
0283デフォルトの名無しさん
NGNGFindNext って、あんたワイルドカードを含んでいるわけじゃないんだから、
ファイル名が確定している状態で FindFirst に渡せばそのファイルの属性が取れる。
0284デフォルトの名無しさん
NGNGあと、ReadOnly のファイルに上書きしたい。という欲求が出てきてもおかしくないから
「開いたときの属性」ではなく「保存時の属性」で判断したほうが自然。
0285デフォルトの名無しさん
NGNG原因を表示しても良し。
0286デフォルトの名無しさん
NGNG282さんの解説して下さったFileGetAttrで処理する事に致しました。
対応としてはメモ帳と同じように、読み取り専用のファイルの場合は
[名前を付けて保存]の処理に移動させるようにしたいと思います。
>>282さん
ご注意頂き申し訳ございませんでした。
これからはヘルプ、Tips等を参照してから質問するかどうかを判断したいと思います。
今回のように基本的なことはすべてヘルプで解決出来そうなので…。
お邪魔致しました。
0288デフォルトの名無しさん
NGNGみたいな設定を自作のコンポのスクロールに反映させたいのですが。
現在は、WM_WHEELlを受信したときWM_VSCROLLに置き換えて1単位ずつ雨後貸しています。
0289デフォルトの名無しさん
NGNGそうですか。
0290デフォルトの名無しさん
NGNG0291デフォルトの名無しさん
NGNG遅くなってスミマセン。ありがとうございます。
しかしそれはwin98じゃできないみたいです。
0292デフォルトの名無しさん
NGNGこんな2ch用語あったか?
0293デフォルトの名無しさん
NGNGhttp://yasai.2ch.net/test/read.cgi?bbs=win&key=994872359&st=316&to=323
0294デフォルトの名無しさん
NGNG0295デフォルトの名無しさん
NGNGあきらめろ。
0296デフォルトの名無しさん
NGNGイルカ。
0297デフォルトの名無しさん
NGNGわかりました。どうも、ありがとうございました。
0298デフォルトの名無しさん
NGNG0299デフォルトの名無しさん
NGNG0300デフォルトの名無しさん
NGNG0301デフォルトの名無しさん
NGNGボーランドはギリシャが好きらしく、
Midas (手に触れるものすべてを黄金に変える力を
与えられた王)などのソフトがある。
0302-
NGNG0303なんで
NGNG0304デフォルトの名無しさん
NGNGhttp://groups.google.com/groups?hl=ja&group=comp.lang.pascal.delphi
0305デフォルトの名無しさん
NGNGアプリによってUIがまちまちなんで全部自前で作らないと駄目なのかな
0306デフォルトの名無しさん
NGNGSHChangeIconDialog を使う。
0307デフォルトの名無しさん
NGNGでDEMOSにあるサンプルを見たが、どれが何だかわからん、ヘルプに説明無いし。
どっか説明してるとこあったら教えてくださいませ。
0308sage
NGNG絵心がないもので...。
0309デフォルトの名無しさん
NGNG別のDelスレにレスがあるよ
0310デフォルトの名無しさん
NGNG0311デフォルトの名無しさん
NGNGまにふぇすとを用意する。
0312デフォルトの名無しさん
NGNGSetWindowLongで無効にするだけだと、Userの操作での最大化は防げても
プログラム自体がShowWindow辺りで最大化するのは防げませんでした。
何かヒントなどありましたら教えてください。お願いします。
0313無断転載
NGNG・ ウィンドウがアクティブにされたり、 作成されたり、 破棄されたり、 アイコン化されたり、 最大化されたり、 移動されたり、 サイズ変更されたりする前
・ システム コマンドが完了する前
・ システム メッセージ キューからマウス イベントやキーボード イベントが削除される前
・ キーボード フォーカスが設定される前
・ システム メッセージ キューを同期させる前
フック プロシージャが返す値により、 Windowsがこれらの操作のいずれかを許可するかまたは許可しないかが決まります。コンピュータ ベースのトレーニング (CBT) アプリケーションは、 システムから有用な通知を取得するために、 このフック プロシージャを使います。
0314デフォルトの名無しさん
NGNG強引な方法だが、KERNEL32.DLL以外で、
対象アプリが起動時に読み込むDLLのラッパを作成。
そのラッパDLL内部で最大化したくないウィンドウをサブクラス化する。
そして最大化のメッセージを拾ったらそれを捨てる。
イメージとしてはWinMXに対するchime、かちゅ〜しゃに対する
Katjusha Extenderな感じだね。
これでどうだろう?外部からあれこれいじるのはあまりスマートに
実装できないし…(少なくとも漏れはスマートに実装する方法は知らない)
こうやって内部に侵入した方が(・∀・)イイ!と思われ。
0315デフォルトの名無しさん
NGNGシステムフックって開発/デバック時、
Windowsや他のアプリにDLL掴まれて再構築とか
出来なかったりして面倒だし、最悪システム全体に
悪影響及ぼすから、あまりスマートとは思えないスマソ。
0316デフォルトの名無しさん
NGNGスレッドに掛けるようにすればという所感。
0317312
NGNGサブクラス化かフックということになるのですね。
詳しく調べて実験してみようと思います。
0318デフォルトの名無しさん
NGNG0319デフォルトの名無しさん
NGNG閉鎖
0320デフォルトの名無しさん
NGNGDelphi4が1000円で売っていたのですが
今、持っているDelphi6Personalをそのまま使用したほうがいいでしょうか?
それとも買いですか?
0321デフォルトの名無しさん
NGNGPro以上なら買いだ
0322デフォルトの名無しさん
NGNGClient/ServerかProfessionalなら買い。Standardなら不要。
VCLソースが入っているかどうか判断の基準。
実際に使うのはDel6PersonalでDel4のVCLソースを参考にするという
使い方がいいと思う。
0323デフォルトの名無しさん
NGNG\1000ならやっぱり買いだ
0324デフォルトの名無しさん
NGNG正規ライセンスがついていれば買い。
もちバージョンアップが前提。
0325デフォルトの名無しさん
NGNGどのスレかだけでも教えて
0326デフォルトの名無しさん
NGNGフサギコ
0327デフォルトの名無しさん
NGNG見つけました。ありがとうございます。
0328Delフサギコ
NGNG〜′,,,,,,,,,,ミ,,゚Д゚彡 < 他にアイコン画像のいいサイトがあったら報告してね。
UU"""" U U \_______________
Delphiお役立ちサイト(コピペ)
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=999486538
0329( = ゚ ω゚ )
NGNG2つ目のフォームを追加し、その名前を aa.pasなどとして保存し、
1つ目のフォームの uses に aa.pasを追加して
実行(コンパイル)すると、
usesの中にある Forms に対して
Forms.pasはどこにあるの?指定して
というエラーメッセージが出てしまう。
コンパイルされない・・・・
フォーム一つだけならこんなことならずにコンパイルできるのに
フォームが1つのプログラムしか作れなくて困ってます。
助けてぇ
0330Delフサギコ
NGNGミ ゙''゙〜
ミ∧,,∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ミ,,゚Д゚彡 < そんな風にならないけど…
U U \________
関係ないと思うけど、D6?Personal?
Updateはあてましたか?<<大切なのでアテテください
0331( = ゚ ω゚ )
NGNG0332( = ゚ ω゚ )
NGNGForm1(Unit1.pas)
Form2(Unit2.pas)
をつくって、
メインフォームであるForm1のusesに
Unit2を追加するだけで良いの?
それから両フォームで使用する変数って
値が変化せずにちゃんと引き渡されるのかな
なんか変数が初期化されちゃうんだけど(0になる)
0333Delフサギコ
NGNGミ ゙''゙゙゙つ
ミ∧,,∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ミ,,゚Д゚彡 < で、とりあえずウプデト1は当てた?
U U \当ててないなら、大切だから当ててチョよ。
Form1のusesっていうのは
interface節ですよね。
今回の問題とは関係ないと思うけど
implementationにもusesできますので
区別しておきましょう。
>メインフォームであるForm1のusesに
>Unit2を追加するだけで良いの?
[ファイル(F)]-[ユニットを使う(U) Alt+F11]
するといいんじゃない。
>それから両フォームで使用する変数って
>値が変化せずにちゃんと引き渡されるのかな
>なんか変数が初期化されちゃうんだけど(0になる)
詳しくは
Delphiテクニックマスター集中講義 谷尻かおり(谷尻 豊寿 監修)
技術評論社 \2,718 ISBN4-7741-0305-5
このあたりの本に載ってるんだけど…
ここでは教え切れない面も多いので
変数スコープに関して書いている書籍を調べた方がいいです。
両フォームで変数を共通に使うよりも
Formのメンバーにアクセスする方がいいんだけどなあ....
0334( = ゚ ω゚ )
NGNGなんかうまくいかないから、初めからやり直してる。
今のところ問題なくいってるよ
Form1,2を別々に作ってから、
後でプロジェクトの追加でForm1にForm2を追加すると
おかしくなっちゃうんだ。
でもこれだと、前に作ったformが全て使えない事になってしまうぅぅ。
updateは今DL中です。
Formのメンバーってなんですか?
0335ソース貼れ
NGNG0336( = ゚ ω゚ )
NGNGprivate
tt: integer; ←(1)
public
ss: integer; ← (2)
end;
var
rr: integer; ← (3)
この(1)で宣言したttは、このフォーム内でのみ使用
(2)のssはどのフォームでも使用可能ということですよね?
どのフォームからでも、ssの値を参照したり、
値を代入したりできるのですよね?
ここでは var はいらないのですか?
(3)のrrはこのフォーム内のみで使用可能らしいのですが
何故privateのところで宣言しないのでしょう?
(1)と(3)にはどんな違いがあるのですか?
■ このスレッドは過去ログ倉庫に格納されています