モナーの *やさしい* Delphi質問スレ Ver4
■最初のDELモナーより ∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ( ´∀`)< *やさしい* ( ) | は「やさしく答えてくれる」という意味でも有り | | | | 「あまり難しい質問には答えられない」という意味でも有りマする。 (__)_) \__________________________ 以上。
4 :
デフォルトの名無しさん :02/03/19 00:59
2
チィ!!
6 :
デフォルトの名無しさん :02/03/19 02:50
v <(゚ω゚) <うっ! ()\ /'> v (゚ω゚)> <はっ! /() <'\ v <(゚ω゚)> <うっ! () /'> v (゚ω゚)/ <はっ! /() <'\ v w (゚ω゚)/ \(゚δ゚)<ジーンギスカーン! /() (戟jゝ <'\ / >
7 :
名無しヘタぐらま ◆B18Bks.Y :02/03/19 04:28
>1-3 乙渠〜.
Delphi6 Update2 3/19 夜よりダウンロード可能に。
巨大ファイルをダウンロードできる!!
10 :
デフォルトの名無しさん :02/03/19 10:30
11 :
デフォルトの名無しさん :02/03/19 11:06
デスクトップ上に鳥が飛んだり動物がマウスを追っかけたりする アプリがありますが、Delphiでもそのような事ができますか? できるとしたらそれは何で作成したらいいですか(例えば新規作成→フォーム)
>>11 「デスクトップマスコット」というキーワードで検索すると参考になるページがでてきまする。
14 :
デフォルトの名無しさん :02/03/19 12:05
>>11 出来る
実際に友達が作ってた
鳥じゃないけど。
デスクトップに雪を降らせるスクリーンセーバー
雪の動きに試行錯誤してたのを覚えてる。
複数同じ事繰り返せばいいじゃん アドレス番号変えて
>>9 今回もでかいよ。
英語版で30M超えていたし。
アドレス番号を変えて送信しなおすとはどういう事でしょうか? もしよろしければ、サンプルソースなどを書いて頂けませんか?
「デスクトップマスコット」
21 :
デフォルトの名無しさん :02/03/19 13:55
テキストデータをMemoコンポーネントにLoadするにはどうしたら良いですか? aaa.txt があったとしてです。 SaveToFileはあるのにLoadのそれらしいのがみるからない・・・
LoadFromFile みえない?
23 :
デフォルトの名無しさん :02/03/19 14:02
>>22 うん
無いです。
Memo1. LoadFromFileと言うメソッドも出てこないです。
memo1.Lines.LoadFromFile();ですよね。 パラメータにはもちろんファイル名どうでしょうか? って、私の質問はだめですか?
25 :
デフォルトの名無しさん :02/03/19 14:05
Linesが抜けてた予感・・・
26 :
デフォルトの名無しさん :02/03/19 14:06
すみませんが、どうかacidproのDLをしたいのですがどこにいけばいいか教えてください
acidproって何?
>>20 googleでもmsnでも見つかんないっス。
はぁ。デスクトップマスコット
31 :
デフォルトの名無しさん :02/03/19 15:33
速度でねー 37Mもあるのに17k/sしか出てねーよ
32 :
デフォルトの名無しさん :02/03/19 15:51
Delphi6 Update Pack2 age
とても参考になるページが見つかりました。 みなさんありがとうございました。
Delphiってなんですか
春だねぇ〜 ネタが特盛りの季節だね〜
いい加減、PostgreSQLもサポートして欲しいなぁ〜とか言ってみるテスト
>>31 俺は 10分でダウンロードできたが?
回線が細いんだろ?
38 :
デフォルトの名無しさん :02/03/19 18:16
TEditorでRowプロパティと直結した文字列プロパティってありますか?
ListString じゃないか?
40 :
デフォルトの名無しさん :02/03/19 18:43
>>39 それビンゴです。ありがとうございました。
今までLines[]でやってた事は内緒にしておいて下さい。
41 :
デフォルトの名無しさん :02/03/19 19:46
Delphiで帳票を作成しようと思うのですが QuickReportはけっこう機能がありそうですが 日本で多い、罫線は使えるのでしょうか また、定型帳票のような複雑なものも作れるのでしょうか どなたかお教え下さい。
42 :
デフォルトの名無しさん :02/03/19 20:53
DelphiでCGIを作りたいのですが、 Delphi製のCGIが動作可能なフリーサーバはありませんか?
43 :
デフォルトの名無しさん :02/03/19 20:56
44 :
デフォルトの名無しさん :02/03/19 21:01
Up2落とそうとしたら鯖がショボーン
45 :
デフォルトの名無しさん :02/03/19 21:02
>>41 できると思う。
「Delphi5 実践データーベースプログラミング」にQuickReportの使い方
がわかりやすく載ってる。
私はLightReport2を使おうと試行錯誤中。
46 :
デフォルトの名無しさん :02/03/19 21:13
これって、自宅サーバですよね。 つまり、相手は、ナマIPでうちのサーバに接続すると。 DNSというか、そういうサービスってあります? 不特定多数にIP知られるのはいくらなんでも… とすると、自分の好きなドメイン使えるんですかね。
47 :
デフォルトの名無しさん :02/03/19 21:16
>>46 そろそろ鼬飼いになってきましたねぇ、Web制作板へどうぞ。
48 :
デフォルトの名無しさん :02/03/19 21:30
>>45 早速のレスありがとうございます。
ところでLightReport2てどんなソフトなんですか
フリーなのでしょうか
gooで検索したのですが詳しい内容がわからないのですが。
49 :
デフォルトの名無しさん :02/03/19 21:33
>>37 ぎゃーす!俺は下り最大8M(べすとえふぉーど)じゃい!
だいたい実質4M出るぞ。つまり500k/s出るっちゅーこっちゃ!
それなのに16k/sしか出んかったの!ヽ(`Д´)ノウワァァァン
>>50 ふん。俺は午後3時に落としたが,すいていたぞ。
52 :
デフォルトの名無しさん :02/03/19 21:54
>>49 ありがとうございました。
早速dlしてみます。
53 :
56Kモデマー(マジ) :02/03/19 23:37
56Kモデマーはアップデートするなってことですか?(ワラ
>>51 Update2は20時過ぎからダウンロード始めたけど、
結局終わるまで1時間10分ほどかかったよ。
計算してみると9.0KB/s(=72Kbps)だ。
ちなみにこちらは1.5MbpsのADSL。
Borlandのサーバーは激重だな。
常時接続でない人は空いてる時間帯を
狙わざるを得ないと思うよ。
>>53 必ずアップデートしろとBorlandのページに書いてあるんだがな。
56kモデマーは眼中にないって事さ。
>>53 何かの雑誌についてくるんじゃないの?
漏れも56kモデマーだけど、さすがに1x時間かけて落とす気にはなれん。
57 :
デフォルトの名無しさん :02/03/19 23:50
>>55 「Delphi 6 と C++Builder 6 を併用される場合は」
アップデートしなさい。だろ。
悪質な引用の典型例だな。
>>56 同志よ!だよねー。
関係無いけど、フラゲがシェアウェアになったらしいね。
いらないな。フリー版で重宝しまくってるし。
ほんとはADSL入れたいんだけどね。 漏れはイリアさん愛用。
>58 広告付のフリーがなくなったって事? 割にショックかも
61 :
デフォルトの名無しさん :02/03/20 00:08
次のバージョンでは string 型を AnsiString ではなく WideString を意味するように 指定するコンパイラオプションが欲しい。
>>61 type
tmpString = AnsiString;
AnsiString = WideString;
WideString = tmpString;
>>60 元・裏ニウス読んだだけだから、よく知らないけど…。
シェアになってスキン変えられるよーになったとさ。
今持ってるバージョンを手放す気はさらさら無い。スパイウェアも取れるし。
本当はとっちゃアカンのかもしらんが…(藁
気になるなら、「連邦」ってとこ見てみたら?他のニウスサイトでも書いてる
と思うし。
irvineで残り176時間… ADSLなんだけどなぁ・・・
>>64 笑えないね…。56Kモデマーでチャレンジしてるチャレンジャーはいるのかな?
またまた関係無いけど、「ime」とかいう2ちゃんから直リン防止(なんでしょ?)
のはリフレッシュでもいいから自動で飛ばないんだろうか?
いちいちクリックすんのメンドイし、DLするURLはそのままじゃ使えないし…。
28.8kで現在0%、残り20時間くらい。 ちょっと空いてきたのかな? このくらいなら慣れっこなので平気。
>>65 2ちゃんねる用ブラウザを使うといいよ。
ちなみに私が使っているのはホットゾヌ。
乏しい燃料を全員で奪い合って 結果全員凍死してしまったという ソ連の逸話をふと思い出した。 お前ら譲り合いの精神つーもんはないのか?
70 :
デフォルトの名無しさん :02/03/20 00:57
2バイト文字が見つかった場所は何バイト目か調べることはできないの?
71 :
デフォルトの名無しさん :02/03/20 00:58
>>68 なんで怒ってんの?オレはパソナルだから別にいらないや。
製品版持ってたらDL考えるけど。
>>68 そんな高尚なモノではない。
半角のエロ動画を必死こいてダウソしている厨レベル。
ここのサーバーは重い。これ定説。
明日になったら、べくたから落とせるのに..
>>72 は半角板でエロ動画を必死こいてダウソしているに100モナー
こういう時こそ串使えよな ホント 有名所のプロバイダ串なら
>>75 やめれ。スレが荒れる。春厨は完全放置してくれ。
78 :
デフォルトの名無しさん :02/03/20 10:18
おいおい、ActionBand、インターフェース変更かよ、勘弁してくれよ。。。
79 :
デフォルトの名無しさん :02/03/20 12:01
いまさらデザパタ・リファクタリングネタか・・・
ギコ猫とデザインパターン かよ。
82 :
デフォルトの名無しさん :02/03/20 15:36
存在しないファイルの作成方法を教えて下さい! ディレクトリの作成はCreateDirで出来たのですがファイルの生成方法が分かりません。 中身は何もない奴でいいんです。
>>82 中身のないファイル(エディタとかで作る)を用意しておいてコピーすればよし
84 :
デフォルトの名無しさん :02/03/20 15:38
あ、FileCreateがあった・・・
>>82 とりあえず 10通りくらい思いつくけど
簡単なの一つと言われたら
with TStringList.Create do try
SaveToFile( 'ファイル名' );
finally free;end;
86 :
デフォルトの名無しさん :02/03/20 15:47
えーっと、、 よく考えたらファイルは自動的に作ってたので別の質問にします 起動する際に参照するファイルが無かったらエラーのダイアログがでますよね。 あれを無視する方法ってありますでしょうか?
>>86 > 起動する際に参照するファイルが無かったらエラーのダイアログがでますよね。
> あれを無視する方法ってありますでしょうか?
私は出ませんがなにか?
つか電波ぎみで意味不明。
88 :
デフォルトの名無しさん :02/03/20 15:55
>>87 LoadFromFileで確かでる。
デバッグ中にやらかすと偉い目にあう。
Try ファイル参照してみる Except On エラー do 無視 end; Try わけわからん Finally あぼーん end;
>>88 もしかしてパーソナルを使ってて、アップデートしてないとか?
LoadFromFileなら Try LoadFromFile('aaa'); Except end; こんだけで大丈夫。
デバック中にと言ってるから 例外を受けたくないのだとして期待してるコードは Try if FileExist( fileName) then LoadFromFile(FileName); Except end;
>>90 普通でないとおかしいんだが・・・。
オプション触ってるんじゃない?
>>86 がパーソナルかproかわからんけど。
>>93 いや えらいことになると言ってるから、例のソースファイルが見つかりませんバグの事かと思ってさ
偉いこと ↓ 例外エラーの事でしょ アレは普通出る
96 :
名無しヘタぐらま ◆B18Bks.Y :02/03/20 16:05
>>92 細かい事では在るが、FileExists
三単現のsを忘れるなーー
>>95 うひゃ本当だ
試しにやってみたら例外エラー(CPUウィンドウ)出てDelphi終了できなくなった。
停止、もしくはプログラムの終了すれば
いまら!100げっとぉぉぉなのれす!  ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄(´´ ∋oノハヽo∈ ) (´⌒(´ ⊂(´D`⊂⌒`つ≡≡≡(´⌒;;;≡≡≡  ̄ ̄ (´⌒(´⌒;; ズザーーーーーッ ・・・・・・・・・・・・・・・・・・  ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ∋oノハヽo∈ (´;; ⊂(´D`⊂⌒`つ (´⌒(´ ろっこいしょれす・・・・・・・・・  ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ∋oノハヽo∈ (´D` )⌒ヽ U‐U^(,,⊃'〜... (´⌒;; らにみてるのれす、てれるらないれすか!  ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ポ∋oノハヽo∈ ポ ン (´D` #) ン (´;) U,U )〜 (;;). (´)〜(⌒;;UU (´ )...〜⌒(`)
自分のプログラムなのかIDEなのかはっきりさせていただきたく
どうにも こうにも 春ですな〜
104 :
デフォルトの名無しさん :02/03/20 16:35
多次元動的配列の受け渡しはどうすればよいのでしょう? procedure zigen( var Data: array of array of Boolean ); では、識別子 が必要な場所に 'ARRAY' があります。と怒られます
type hoge = array of array of Boolean; procedure zigen( var Data: hoge );
>>105 動作しました。 ありがとうございます。
107 :
デフォルトの名無しさん :02/03/20 17:07
ヂレクトリ指定のダイアログを出すには どうしたらいいですか?
すみません。質問させてください。 あるコンポーネントを文字列で検索するのはFindComponentで出来ますが、 あるメソッドを文字列で検索するにはどうすればいいでしょうか? たとえば、フォームにCheckBoxやらEditやらが乗っていて、ユーザがEdit1と 文字列で指定すると、FindComponentでEdit1を探して、Edit1のメソッド一覧を文字列で表示する。 で、今度はユーザがEdit1とClearを文字列で指定するとEdit1のClearメソッドが実行される。 といったことをやりたいのです。
>>107 SelectDirectory
ヘルプの一番目の構文でお望みのものが表示されると思われ。
今日はものすごいトラブルにあった 会社で昼過ぎにFormのキャプションを変えようとForm1.Caption := 'aaa'; とやってみるがエラーが出る。 何度やってもエラーが出る。 未定義の識別子とか言ってんの。 Form1は存在するのに何が未定義だ!と、思い再度挑戦。 ・・・結果、何度ヤッテもだめ。 エラーは出続けた。 しぶしぶ会社のみんなへヘルプを出すことに。 みんなも、「なんでだろうね、uses見たら?」と試行錯誤するが特に問題無い。 初めてエラーが出てから10分以上が経過。 みんなはもう「Update2のバグだよと諦め気味」。 無念・・・ で、このプロジェクトを破棄しようとDelphi6を終了しようとしたそのときだった、 おれは一行のソースに目が行った。 From1.caption := 'aaa'; Fromってなんだよ。 こりゃエラー出るわけだ・・・。 みんなもきづけよ・・・。 今日の日のことは10年経ったら笑い話になるんだと思い脳裏に刻んでおくことにした。
>>110 のアップデートも必要と思われ、と逝ってみるテスト。
まぁいいんじゃないですか、たまには。
112 :
DELモナー :02/03/20 17:24
∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ( ´∀`)< Delphi 6 Update Pack 2 情報だよ。 ( ) \______________ | | | (__)_) 一応まとめておきます。 3月19日、Delphi 6 Update Pack 2が公開されました。 「Delphi 6 と C++Builder 6 を併用される場合は、 必ずこのアップデートファイル(#2)をご利用ください。」だそうです。 Personalも対象となっています。 ファイルサイズは37.2MB(!)です。 かなりでかい上に接続状況が非常に悪いので レジューム機能があるダウンロードソフト(Irvineなど)は必須です。 (続く)
(続き)
■ダウンロードはこちらから
http://www.borland.co.jp/delphi/del6up.html#del6up2 ■ファイルに直リン
ftp://ftp.borland.co.jp/pub/delphi/delphi6update2.exe ボーランドのサーバーはアクセスが殺到してかなり重いようです。
FTPサーバーからこんなメッセージが来てダウンロードできないこともあります。
**********************************************************
Thank you very much for your access to our FTP server
ftp.borland.co.jp.
Now the server is busy and over its capacity of available
connection.
Please back and retry after a few minutes.
We expect the server will be crowded from 9 am to 6 pm,
and around 11 pm on weekday Japan Standard Time(JST).
We would recommend you to avoid those hours to access.
**********************************************************
午前9時〜午後6時と午後11時前後をだめって言われたら・・・
いつダウンロードするんだ!
>>109 ありがとうです。
プラットフォームに依存すると警告されましたが、
問題は無いのでしょうか?
>>111 みんなもこういう凡ミスするだろ?
俺の脳もアップデートしてくるか・・・
116 :
デフォルトの名無しさん :02/03/20 17:42
117 :
デフォルトの名無しさん :02/03/20 17:42
VBで言う所のDir関数みたいなのはDelphiだと何ですか? dir(PathName) で該当ファイル名が出てくる。みたいな
該当ファイル名ってなんだよ? VB忘れたからよくわからんし 「ExtractFileDir」とか?
ExtractFileDirじゃ駄目なの?
120 :
デフォルトの名無しさん :02/03/20 18:08
実行時に引数があればフォームを表示せずにその引数について処理し、終了。 引数が無ければ普通にフォームを表示させる。 というのはどういう風にすればいいんですか? 具体的には引数としてファイル名を与えて、引数があればそのファイルについて処理。 なければ、ファイル選択をするというものなんですが。
ParamCountとParamStrでコマンドライン引数取得 Delphiの「プロジェクト」メニューの「ソースを表示」で出てきたソースの CreateFormの前に処理をするコードを記述
Run消して、CreateFormの後にフォームをshowするかどうか書けばよいよ・・・たぶん・・・
123 :
デフォルトの名無しさん :02/03/20 19:16
Delphi6の無料版で、IEの画面を埋め込む事って出来ますか?
ダウンロード終わったよ。 今なら25kb/sでるよ。
125 :
デフォルトの名無しさん :02/03/20 19:42
127 :
デフォルトの名無しさん :02/03/20 22:09
>>126 あ、こんなのあるんですか。初心者でやりかたわからないかもしれませんが、ありがとうございます。
129 :
デフォルトの名無しさん :02/03/20 22:59
コンポーネント作ってて思ったんだけど、コンポーネント内のメソッドから プロパティーにアクセスする場合、プロパティー名でアクセスする方がい い?それともフィールド変数名でアクセスする方がいい?それともどちら でも同じ? TTest = class(〜) Private FHoge: Integer; public procedure testmethod(val: Integer); published property Hoge: Integer read FHoge write FHoge; end; procedure testmethod(val: Integer); begin Hoge := 0; //1 Fhoge := 0; //2 end; 例えば上記の場合、みなさんは1にしてます?それとも2? 効率的には2の方が良さそうな気もするけど、継承とか考えると 1の方がいいのかな?っと思ったりもするんだけど・・・・・ なんか、よーわかりません
130 :
デフォルトの名無しさん :02/03/20 23:02
>>126 やっぱり初心者で、インストールの仕方が全然分かりませんでした。すいませn
>>129 > property Hoge: Integer read FHoge write SetHoge;
だとしたら
副作用(SetHogeのこと)込みで普通に使いたい場合はHoge使う。
逆に明示的に副作用を当てにしたい場合はSetHoge(かHoge。この辺りは割にてきと〜)
副作用を回避したい場合はFHoge直接アクセス。
継承の場合はFHogeをprotectedにすることは
まずないのでHoge使う。
>>129 効率はread writeで直接フィールド指定してるときはHoge, FHogeどっちも同じ。
GetHoge, SetHoge指定した場合、メソッド経由な分遅くなる。
>>131-132 レスサンクス。結構、難しい。
HogeとFHogeで効率が変わらないなら、基本はHogeでアクセス。
特別な理由がある時だけ、FHoge、GetHoge、SetHogeに直接アクセスって
感じがイイのかな・・・・・とか思ってみたり。
とりあえず、マイローカルルールは、Hoge基本ってことにします。
サブフォームがメインフォームのPanelにDockingするアプリ 作ってるんだけど、いまいちDocking状態の保存・復元がつかめない… ManualDockで(・∀・)イイ!と思ったんだけど、 サブフォームのOnCreateでManualDockしても表示されない… (Refreshしても。) でも描画されてないだけでリサイズとかするとすぐ描画される。 で、OnShowはどうかというと、例外が発生し 「OnShow/OnHide イベントの処理中は表示状態の変更はできません.」 これをきちんと出来る方法ないでしょか? 検索しても余計な物しかヒットしない…
人それぞれだとは思うが、オレ、デルファイ(タダ版)で初めてインストールした ActiveXがIEコンポだったなぁ…。特に悩むことは無かったけど。 何にも分からんでも出来るって。マジで。 つーか、gif問題はビルゲイツと糞シスとで意見が違うんだけど、どないなってる ネン!mngなんて広まりゃしねー(藁
>>136 >つーか、gif問題はビルゲイツと糞シスとで意見が違うんだけど、どないなってる
>ネン!mngなんて広まりゃしねー(藁
そっとしておこう。触らぬ髪に祟りなし。
荒れる原因にもなるし。
IMEで「リッポウメートル」を変換するとm3の記号が表示される のですが、Editに入力すると ? になってしまいます、 そこで、m3と入力すると 3を上付文字として表示させるように したいのですが、EditやMemoコンポーネントでは無理でしょうか? (RichEditでも試してみましたが、入力は出来るのですが、 入力結果をプログラムから参照すると、やはり ? になっています。)
当方WIN95なんですが 95で使えるDELPHIってまだDLできるんでしょうか? あと、厨房にも分かりやすい 参考書を教えてもらえるとうれしいっす
142 :
デフォルトの名無しさん :02/03/21 12:00
>>140 >>141 質問はageたほうがいいよ〜。レスがつかないから。
今日だれもageてないからもうだいぶsagaって来てるよ。
質問 age → 回答(あるいは個人的な意見) sage
がいいと思う。代わりにage。
>>140 EditやMemoではまず無理。
ただのテキストでは不可能だと思う。
m^3の記号が入力できたとしても
表示できる環境が限られるので
使わないほうがいい。
リッチテキストで上付き文字を指定するしかないと思う。
>>141 厨房(=初心者?)ならDelphiの機能に目移りする前に、Pascalの基礎から
入りなさい。
>>143 敢えて反抗w
DelphiのイベントドリブンをいじってPascalを覚えましたが。
まぁ、その前にDOSのCやってたんだけど。
たのしけりゃそれで良いでしょ。そいつにやる気と才能があれば最終的には正しい知識となる。
145 :
デフォルトの名無しさん :02/03/21 12:51
>>144 たしかにそーだな。
漏れはWinでは開発環境一通りやってBCBに落ち着いたんだけど
ちょっと前からさらに上をめざしてDelをはじめた。
VCLに関しては熟知してたんだがPascal全然知らなかった。
が、ツールキットを知っていれば何とか使うことができるから
そこからはじめることも良いと思う。
(ActiveX知ってればVB使える?みたいに)
最近ゆっくりObject Pascal Guide?(取説)読んで
けっこー目からうろこだった。
Del6から(付属の)リファレンスがなくなったけど、その分開発者ガイドが
増えてるんで、参考書買う前に一通り読むのが良いかと。
付属の(紙の)ドキュメント読んでよく思うんだが リファレンス以外のオンラインヘルプがひじょーに読みにくいと 思うのはおれだけ? 素直にPDF(or HTML)のほうが読みやすいような
やっぱり、 {$APPTYPE CONSOLE} program hoge; begin Writeln('Hello, world!'); end. から始めるべきかと。w
>>147 エディタはメモ帳、コンパイルはDCC32、これ最強。
回答あんがと やる気と基礎が必要なわけっすね。がんばってみます!
まず6,7年前のOS使うの止めなさい
151 :
デフォルトの名無しさん :02/03/21 14:13
授業でプログラム作ってます。 HTMLの表示にIEコンポを使いたいです。 学校の提出物にこれを使うのはやっぱりマズイんでしょうか? 使えないとなると自力で表示させることになるのでヒデブです。
>151 課題程度ならindex.htmをSaveToFileして 表示ボタン押したらShellExecuteするだけでいいんでないの。
IE使わずを自力で表示か。 CSSやらJavaScriptやらJavaアプレットやら大変そうだな。
155 :
デフォルトの名無しさん :02/03/21 15:12
>>155 出来る。Socket使うなりhttp使うなり。
.∧,,∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 〜'"ミ,,゚Д゚ミ < リッポンメートルはUNICODEみたいだね UU''UU \___________ CLXなら表示できるかも。 EmEditorのプラグイン作ってて思うけど TWideStringListとか、本格的にUNICODE対応してくれるのは いつになるのやら。
158 :
顔も名前も出さずに毎月100万円 :02/03/21 15:31
Future-Web(フューチャーウェブ)登場
なんと10,000円単位の収入
●10,000円単位の高収入
1件につき最大10、000円の高額収入。月収100万円以上も可能。
●画期的なビジネス!
インターネットを利用したこれまでにない斬新で画期的なビジネスです。
●誰でも出来ます!
インターネットが出来る環境の方なら誰でも参加可能です。
●専門的な知識は一切不要!
ビジネスに必要なツールはすべて当社で用意いたします。また、サポ
ートも万全です。
●詳細は今すぐHPをご覧ください。
http://www.future-web.tv/7823/
159 :
デフォルトの名無しさん :02/03/21 15:31
function GetHtml(URL: String): TStrings; みたいなのがやりたいんだったらWinInetで簡単にできるよ。
>>158 ハァ〜?
まだこんなんやってる奴がいるんだな、そもそも、うさんくせーよ、
こんなもん貼っても逆効果なんじゃねーの?ちーたー考えて宣伝したら?
進歩しないねぇ、この手の連中は・・・。
>進歩しないねぇ 放置できない奴が言うもんじゃねえな
>>155 Indyだったら、TIdHttp、フォームに貼って
S := IdHttp1.Get('
http://xxx/xxx.cgi ');
の1行だけで済む。エラー処理とかは居るけど。
ところで、Pro以降の標準でIndyがついてくるDelphiって、
Indyの日本語のヘルプもついてくるの?
>>163 スマソ!久々に見たもんだから興奮してしまったもので。ハァハァ
166 :
デフォルトの名無しさん :02/03/21 17:48
前スレで話題になってた雪のソース書いてみようかな 雨は誰かが書いてくれたんで。 俺の知識じゃ出来るかどうかわからないけど。
>>166 まずは雪の結晶をの形状を解析して
落下速度に応じた空気抵抗を算出だ。
>>164 >ところで、Pro以降の標準でIndyがついてくるDelphiって、
>Indyの日本語のヘルプもついてくるの?
うん、Delphiヘルプに含まれているよ
171 :
顔も尻も出さずに毎月100万モナー :02/03/21 19:43
Future-Web(フューチャーウェブ)登場
なんと10,000モナー単位の支出
●10,000モナー単位の高支出
1件につき最大10、000モナーの高額支出。月収100万モナー以上もなー。
●画期的なビジネス!
インターネットを利用したこれまでにない残虐で漫画的なビジネスです。
●誰でも出来ます!
インターネットが出来る環境の方なら誰でも酸化化膿です。
●専門的な知識は一切不要!
ビジネスに必要なツールはすべて貴社で用意いたします。また、サポ
ートもマンセーです。
●詳細は今すぐエロサイトをご覧ください。
http://www.fusagiko.tv/2323/
自分でプログラムつくっているのですが、自分の作成したアプリから 他のアプリを実行させる方法がわからず、煮詰まってます。 誰か教えてください。(TT
ShellExecute API
>>172 「煮詰まる」の言葉の使い方が違うような気が。
「論点が限定され *解決に近づく* 」という意味だよ。
「行き詰まる」が正しいね
>>174 「知恵熱で、脳がいい感じに煮詰まっている」のかもよ?かもよ?
>>176 今見たらレスがついてるな。
咎めるつもりで
>>174 を書き込んだわけではないけどね。
フィーリング的な意味で書き込んだ言葉には言及するつもりはないよ。
気軽に書き込んでいいと思うし、気軽に書き込めるべきだと思う。
私個人としては、2ちゃんねるが気軽な気持ちで発言できるような場所だとしても、
全国数千万のネットユーザーが見られるようなところに発言をするのだから、
ある程度慎重に発言しようと心がけている。
自分で発言するときは、送信ボタンを押す前に絶対2,3回チェックするようにしている。
やっぱり私は言葉遣いとかに敏感なのかな。
このスレとは直接関係ない話になってしまった・・・スマソ。
次の方質問どんどんどうぞ。↓
>>178 2ちゃんねらに求められるのは慎重に発言する心がけより、
多少叩かれても気にしない神経の太さだろう・・・
関係無いのでsage
次の方質問どんどんどうぞ。↓
>>179 あと煽りへの耐性と厨房を放置する心がけを忘れてはならないと思う。
でないと余計環境が悪化するからね。
漏れも関係無いのでsage
次の方質問どんどんどうぞ。↓
ClientDataSetの良い使い道を教えれ。
開発者ガイド嫁。
>>181 Oracleのような単方向のデータをDataGridに表示しようと思ったら
ClientDataSetを使わざるを得んかったんじゃなかったっけか(う、自信不足)
184 :
ミ…ミキティ!? :02/03/21 23:08
標準コンポのcomboboxって、書き込み不可の「csdropdownlist」(だったかな?) ってスタイル選ぶと、「最初に表示される『text』」ってヤツが消えちゃうんだけど、 そーゆーもんなの?readonlyってプロパティは無いの?あるいは 「リストから選ぶだけ・最初にセットしたtextは表示される・書き込みは出来ない」 ってことは出来ないもんでしょか?
あのさー、なんか、質問の内容がgoogleやMLで解決するようなのが多すぎないかい?
そもそも、MLの過去ログの検索を知らないとかって人もいるかな?
武内氏が作ってくれてるここがお勧め、
ttp://www2.big.or.jp/~osamu/index.html Tipsもあるから、そこも調べるとよろし。
別に、超初歩的な質問でも良いのだろうが、一応自分で調べる癖つけないと身に付かないと思われる。
自分で調べると、調べてる事とは違う知識がオマケで付いてくることがあるからね。
186 :
Delヲサギコ :02/03/21 23:11
>>184 ComboBoxのStyleをcsDropDownListすれば、選択だけになる
一応検索したのだが…。
で、自分の書き方が悪いのか…。
>>186 csDropDownListにすると、textにセットしたやつが消えちゃうんです。
それは必然なんスかね?
188 :
Delヲサギコ :02/03/21 23:16
>>187 ItemIndexで最初に表示させたいitemの位置を指定
0〜itemの数-1 の範囲
デフォルトは -1となっている
あ、onchangeでいちいち-1を監視すればいいかな?もしかして…。 当たってるなら気が付かなかったなぁ。違うかしらん?
>>188 キビシイコトイッテルワリニ、オマエシンセツナヤツダナ カンシンカンシン
>>188 偉そうにしといて、いい加減な答え方するな!
>>189 リスト内に存在させたくない文字を初期表示させたいってことですよね?
たぶん、仕様上無理では?
あ、違うや。最初にセットすりゃーいいのか。出来るんなら。 「MLの過去ログの検索」って、関係無いの拾いまくりだよね。 もーすこし、絞ってくれると使いやすいんだけどなぁ。いや、文句じゃないんだけど。
>>193-194 ∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ´∀`)< 次スレの先頭に貼ろうかな。
( ) \____________
| | |
(__)_)
>>192 あれま。無理?そっかー…。なーんか簡単なことなのになんでダメなんだろう?
richeditとかmemoのreadonlyがあれば問題なしなのに…。
>>198 もともとそういう動作のために作られたものではないと思う。
「ドロップダウンするコマンドボタン」の話を思い出したぞ。(w
>>198 OnKeyPressで入力潰せばReadOnlyもどきにはなるけど
多分おそらくComboBoxの存在理由を勘違いしている。
>>200 そっか。じゃ、これまでにします。
教えてくれた人、ありがd。
>196 一番上の行を見てわかるとおり、かなり昔のスレの頭に張ってあった ものなので、リンク切れが他にもあるかもしれぬ >197 最近張ってないようなので、是非とも張ってくれ
>>198 なんか、いい加減呼ばわりされたようだが、ComboBoxのitemsに
(選んでね)
aaaa
bbbb
cccc
と設定しておいて、ComboBoxのItemIndexに0を設定じゃ駄目って事か?
>>203 いい加減呼ばわりしたのはオレじゃないよ。
なんか、荒れそうなんで、その方法も後で試してみますよ。
ありがd。
>>204 いあ、「なんか、いい加減呼ばわり」の部分は、君に言ったんじゃないよ。
じゃ、がんばつてね
206 :
デフォルトの名無しさん :02/03/22 00:00
めちゃ厨房な事かもしれないけど・・・ 何行かもとめる関数ってある?
もうちっとわかりやすくきけ。 TStrings.Countじゃだめなの?
>206 richedit.count;とか?なんの「行」か書かないと。
richedit.Lines.Countか…。テヘ。
>>206 質問の内容は厨房なことだとしても、質問の仕方は厨房ではないようにできる。
詳しく、どんな状況にあるかを書こう。
例えば、求める対象となる文字列がString型の変数にある場合とか。
212 :
デフォルトの名無しさん :02/03/22 00:15
>>169 雪の結晶から作るんか!
普通は画像か何かでやるでしょ。
今度Delphiで作ったプログラムをKylixに移植することになったんすけどー 取り合えず、VCLからCLXに変換する必要があるとおもったんすけどー 一括して変更してくれるようなモードとか見当たらないんすけど、無いの? Delphi6(VCL) -> Delphi6(CLX) -> Kylix2 こんな感じでwin側もLinux側も 同じソース使おうとかって思ってるんだがどーよ。 因みに、Kylix2はまだ届いてない・・・大丈夫なのか?
(´-`)。o ○ (まず、口のききかたを勉強する必要があるヤツがいるな…)
* ツレでもない人間のタメ口口調の発言を読むのはそれだけで愉快ではありません。 * 自分についたレスならハッキリと不愉快です。 * インターネットの匿名性の元で国籍、年齢、性別、職業、地位の別なく * 自由に意見交換をするということは * 『対等だからタメ口でよい』ではなく * 『対等だからこそ相手に最大限の敬意を払うべき』と思いますが? * 敬語を使い慣れていなくても * 丁寧語で、『です、ます調』で書くくらいの気配りはあるべきではないでしょうか?
>>213 Kylixはまったく分かりません・・・。スマソ。ところで、
2チャンネルがいくら「フレンドリー」に書き込みができる場だとしても、
ちょっと「馴れ馴れしく」見えてしまう人がいるかも。
私が質問をするときは「教えていただく」わけだから、
丁寧にお願いするようにしているよ。
(´-`)。o ○ (思ったことは同じか…。次は口調を改めてマルチポストするのかなと…)
>>216 細かいことだけど訂正。 2チャンネル → 2ちゃんねる
>>213 共通部分はユニットのエリアス設定するだけじゃ駄目なんだっけ?
よくわかりました、ありがとうございました。 マルチポストなんぞしません。さようなら。
( ´∀`)アイヨー
>>219 でも、それ何処とじゃないことが解ったのでもう諦めました。
自作のコンポ使ってる部分があってWinAPIガチガチだったんで
そっちから手をつけることにしました。
ありがとうございました。
#bye #end
>>224 Win32API使ったコードがLinuxでそのまま動いたらえらいこっちゃ。
リーナスがゲイツに訴えられるよ。
>>224 「プラットホームに依存する」とかの警告が出ると思うよ
227 :
デフォルトの名無しさん :02/03/22 02:08
readme_62.txt に、 > 修正,改良の詳細については,Delphi 6 のディレクトリにインストールされた > D602FIXES.html ファイルをご覧ください。 とあるが、そんなファイルどこにもないぞ!!!
229 :
デフォルトの名無しさん :02/03/22 02:32
>>213 本当は作る時点でCLXプロジェクトとして組まないとダメ。
もしそういうことをしてないならかなり手間かかっちゃうね。
とくにドッキングとか使ってる人は。
でも元のソースが有るんならCLXに移すだけで1日もあれば出来るはず。
自分はkylixから入ったんだけど、ハッキリ言ってあのソフトはくそでした。
glibc如きで依存した動作するわバグ満載だわ、デバッグ実行したらソフト落ちるわ・・・。
そりゃ速攻でバージョン2出すわな。(本当は無料で欲しいけど。)
バージョン2届いたらレポートよろしく。
うちはまだDelphi6&kylix1で開発を続けてるんで。
>>225 ShowMessageもAPIだった予感・・・
そもそもkylixはwine上で動いてるからね。
>229 ShowMessageは非API。 詳しくはソース。
いっそ米司法省がMSに資金提供させて BorlandにLinuxで動くCRL作らせりゃいいんだよ。
232 :
荒れる?荒れるの? :02/03/22 02:53
Linuxとネスケって需要あるの?
>232 需要は作るものだ。
234 :
デフォルトの名無しさん :02/03/22 04:57
こんな時間にスマソ 今、データベースの勉強しようかと思ってます。んで・・・ サンプルデータベースのアニマルで、やろうとしてるんですが、 SQL文に「WHERE SIZE > 10」ってやると、「キーワードが無効です キーワード:SIZE」ってでちゃうんです。 「WHERE WHIGHT > 10」だと正常動作します。 なんで、なんでしょうか? 助けてくださーい
>>234 「SIZE」はSQLのキーワードだからでしょ
SQLもプログラム言語なんだからキーワードを変数名(フィールド名)
としては使えないと・・・
>なんで、なんでしょうか? この表現よいね・・・
237 :
デフォルトの名無しさん :02/03/22 05:15
>>235 回答ありがとうございます。
こんな、時間に即レスあるとわ、びっくりです!
しかし、まいったなぁ・・・・
じゃぁSIZEで抜き出しするには、どうしたらいいですか?
まさか、出来ないとか・・・
ずるいよ、ずるいよなぁ?
>>237 WHERE "SIZE" > 10
では?
ってことは結局キーワードを変数名としても使えるわけか・・・ 自分の勉強にもなりましたよ
×変数名 ○フィールド名 ・・・ま、いっか
241 :
デフォルトの名無しさん :02/03/22 05:31
>>238 う〜ん、出来ませんです。
それだと、「式中の型が一致していません」って出ちゃいます。
困ったナァ
>>241 自分の手元にあるのはInterBase(Delスレだからまだいいけど一般にはマイナーかな)
だけど通りましたよ
SIZEの中身が文字列だったら数値と比較すれば当然「型が一致していません」
でしょうけど
243 :
デフォルトの名無しさん :02/03/22 05:47
>>242 う〜ん なんでかわからないけど、出来ませんでした。
””で囲むと型が変わっちゃうのかナァ?
SIZEの中身はNUMERICなんですが・・・
もうちょっと、調べてみます。
>>243 アニマルというのがDelのanimal.dbfと分かったので・・・以下でOKのはず
select *
from "animal.dbf" a
where
a."SIZE" > 20
それとね 同じDBDEMOSのテーブルならbiolife.dbの方が面白いですよ ちなみにanimal.dbfはdBASE、biolife.dbはParadox Delで最も扱いやすいのはParadoxですね
>>244 あらら?出来ました!
でも、なんでだろう?
「animals」を「a」として「a」の「SIZE」が20より大きい物を抜き出す。
ですよね?これって。
なんで、これだけ、テーブル名つけなきゃいけないんだろう?
わかんないなー
しょうがないから、これからはなんでも、テーブル名先につけるように
します。
どうも、ありがとうございました!!!
0から作るのではなく、既存のものに手を加えて作る。 それこそがOOPの醍醐味..と思ってみるテスト。
248 :
どうか教えてください。 :02/03/22 08:30
var A,B : TStringList ; の時 A := TStringList.Create ; B := TStringList.Create ; A.Add('あいうえお'); B.Add('かきくけこ'); として A := B ; とすると、変数A,Bはそれぞれのインスタンスへのポインタに過ぎないので 変数A,Bはどちらも同じインスタンスを指すことになる。 (↑ここまではあってますよね?) このとき、変数Aがもともと指していたインスタンスはどうなってしまうのですか? A := B ;の時点で開放されるのでしょうか? それともプログラム終了まで、メモリに残るのでしょうか? もしメモリに残っているのなら、どうやって参照すればよいのでしょうか?
醍醐味というなら 少し手を加えるだけで使えるように コンポーネント作ってる方がオイシイぞ
>>248 1、 インターフェース型ではないのでメモリには残っている
2、 その情報だけからは参照出来ない
コンポーネント型なら、作成時の親から辿れるけど TStringsはコンポーネント型ではないから
∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ (´・д・`) < はぁぁ、モテないよぅ (つ旦と) \_______ と_)_)
252 :
デフォルトの名無しさん :02/03/22 08:57
質問です。 Gridの上に目印を置きたいのですがどうやったら良いでしょうか? クリックしたとき、ダブルクリックしたときにそれぞれColとRowの座標を持ってくるんですがそこに目印のような物を 起きたいのです。 文字を置き換えは既にやってるので出来ないです。 何か良い方法は無いでしょうか?
>>248 Aで参照されていたものはメモリに残ってしまうので、自分で解放しないといけませんね。
250の言うように非インターフェースや非コンポーネントは注意が必要です。
>>252 OnDrawCell でその座標の時だけ特別な描き方をしたらいいんじゃないの?
>>251 キミがいいと思う人はどこかに(そこら中に)居ると思われ
ただし、その人をキミがいいと思わないのであろう
256 :
デフォルトの名無しさん :02/03/22 09:05
257 :
デフォルトの名無しさん :02/03/22 09:11
>>248 この場合、スタックに確保された変数Aと変数Bの領域は関数を抜けると開放されるけど、
文字列のためのヒープ領域はB.Freeとしないとメモリーリークになるという理解でいいですか?
さらにこの場合元々Aが使用していたヒープ領域はFreeしようがないのでリークの原因になるっつー理解でいいですか?
>>256 ○でも×でも文字でも絵でも好きなように描けばいいよ
>>257 正解だけど、そういうミスをしないように
1、ひとつのブロックで一つしか作成しない
2、インスタンスを作成する場合は必ず try ... finally hoge.free;end; を入れる
とか自分で決めておいたらどう?
>250,253,257,259 回答ありがとうございます。 結局メモリの無駄遣いになるということですね。 おろかにも上記のような代入を多用したルーチンを 書こうと思ってましたので大変助かりました。
>>260 TStrings(TStringListを含む)の中身の代入には
Assignを使う
248の例だと
A.Assign(B);
これ常識
>260 Interface, TComponent使ってると明示的に 開放する必要ないんだけどね。 >261 そりゃ意味が違うよ。
263 :
デフォルトの名無しさん :02/03/22 10:16
メモリの中に入ってる値(String)を保存ダイアログでテキストに保存させることって出来ますか?
>263 状況がよくわからんがTStream系を使えば十分可能。
先頭アドレスPCharにキャストして文字列として普通にセーブ。
初心者はTStringListが一番楽でしょ if SaveDialog1.Execute then StringList1.SaveToFile(SaveDialog1.FileName);
RichEditで、DBから自動でテーブルやDBの情報を持ってきてそれに 手書きでワープロ出来るようなソフトを作っているのですが、 RichEditの属性って .SelAttributes.〜 じゃないと属性設定出来ない のでしょうか?
268 :
デフォルトの名無しさん :02/03/22 11:19
Stringの変数をStringlistに持っていくと互換性無いって言われる!
なんで?
>>266 一応ダイアログ開きましたけど。
StringList.Add(String)しろ
270 :
デフォルトの名無しさん :02/03/22 11:28
271 :
デフォルトの名無しさん :02/03/22 11:28
Object Pascalでデザインパターンを説明したサイトってありませんか?
>保存ダイアログでテキストに保存させることって出来ますか? 保存ダイアログはファイルパスを決めるまでしかしないYO!
274 :
デフォルトの名無しさん :02/03/22 11:41
>>272 そのサイト言ったら落ちたよ?
デザインパターンって言う文字と外人の顔は見えたけどそのあと窓が何個も開いてブラウザが強制終了しちゃった。
鬱です・・・。
>274 落ちないよ。ただウザい広告がしばらく出てるだけ。 しばらく待ってれば消えるよ。
>>275 ノートン使ってると「ウザい広告」が出なくて快適
あ、やっぱりこそっと出てた
278 :
デフォルトの名無しさん :02/03/22 12:11
構文解析パターンについて知りたいです。
TabSheet.Freeをすると親のTPageControlのActivePageが一瞬、 Pages[0]になった後にまた元のActivePageになるが嫌なんですが、 この現象を止めるにはどうしたらいいんでしょうか?
>>279 TabIndexを指定してからFreeしれ
281 :
デフォルトの名無しさん :02/03/22 12:39
ここ、レベル低〜い。
脊髄レス失敗
>283 あれじゃわからんだろ。 しかもDelphi+Iteratorってさいて〜な組み合わせ。
>Delphi+Iterator たーしかに・・・。 List周り自作すると今度はVCLとの調和が・・・。
どうしてObject PascalとC#&Ruby比較しないんだろ?
288 :
デフォルトの名無しさん :02/03/22 14:30
ドッキングを作りたいんですけどPanelでやるとフロートしたあとに元に戻せないです。 他に良い方法無いですか? 元の位置にくっつけたいんです。
あ、別にPanelにこだわってる訳じゃ無いです。 ドッキングが出来たら何でも良いです。
サンプルがあったような
291 :
デフォルトの名無しさん :02/03/22 14:51
Decoratorパターンを試してみようと思い、UMLマガジンを見ながら 以下のようにしたのですが… このあとどういう風にすれば Decorator パターンになりますか? type TInstrument = class procedure Play; virtual; abstract; end; TGuiter = class( TInstrument ) procedure Play; override; end; TEffector = class( TInstrument ) FInstrument: TInstrument; procedure Play; override; end; TEffector1 = class( TEffector ); procedure Play; override; end; TEffector2 = class( TEffector ); procedure Play; override; end; TEffector3 = class( TEffector ); procedure Play; override; end; procedure TGuiter.Play; begin WriteLn('ビヨン..'); end; procedure TEffector1.Play; begin FInstrument.Play; WriteLn('ョンョンョン...'); end; procedure TEffector2.Play; begin FInstrument.Play; WriteLn('ボワワンボワワン'); end; procedure TEffector3.Play; begin FInstrument.Play; WriteLn('キィーン'); end;
>>291 property Instrument: TInstrument read FInstrument write SetInstrument;
にして着脱を容易にするインタフェースがあるといい。
あとはAssigned(Instrument)のチェックを忘れずに。
ついでにoverrideした全てのPlay内で毎回
Instrument.Playを呼ぶのは面倒なんで(忘れると悲惨なことに...)
Playはprotectedにして
procedure TInstrument.Execute;
begin
if Assigned(Instrument) then
Instrument.Play;
Play;
end;
みたいにすると楽かも。
こういうデザパタとかをDelマガで特集すれば売り上げ伸びるのにね。
誰も興味なんか無いさ。
>>291 Decoratorらしくするには
サブクラスで 親クラスのインスタンスを引数にするコンストラクか 親クラスを持つ為のプロパティが必要かと
そして、飾られるのは親クラスだから、ええと
自分のPC,MMX P166なもんでW98ですらきつすぎ(−− ということで、95OKなDELPHI探してるんですが やっぱ、ないんですかねえ(;;
>>296 Delphi1.0なら余裕で動く。
CDにおまけでついてない?
>>297 ついてたのは Delphi4までだからねえ どこかの在庫探すしかないんじゃない?
それよりDelphi1をフリーにしてくれないかなあ
>>297 雑誌とかについてるのですか?
自分が持ってるのは、参考書についてた、6.0だけでした。
301 :
デフォルトの名無しさん :02/03/22 16:30
プログラムが終わる瞬間の、とあるグローバル変数の中身を知りたいがために initialization finalization ShowMessage( 変数 ); end. としましたが、なぜか全く表示されません。…ナゼ?
>301 そこに制御が移る直前にもうShowMessageを呼び出す 機能がdestructされちゃってるから。 Windows.MessageDlgなら呼べるよ。
>>296 Cel366のVMWare上のWin95OSR2でDelphi5ProとDelphi6Personal
をつかってます。ツールバーのアイコンがすぐバケる以外は特に
問題は出てないですね。
使えなかったんですか?
304 :
名無しヘタぐらま ◆B18Bks.Y :02/03/22 17:10
>>296 私の前の開発マシンがMMX Pentium 200MHzのPC-9821系でしたが
Delphi3ならサクサク動くし,5も起動に時間がかかって,
ファイルの読み込み後にちょっとディスクアクセスするほかは
問題ないレベルでした.
>300さんのあげたくださったオークションも選択肢に入れていいと思います.
とりあえずこのページを見に行くといいかも.
>300さんのサイト、スタンダード版ばかりでろくなの無いよ。
書籍付きでお得ですよ!
307 :
デフォルトの名無しさん :02/03/22 19:20
メモリの解放し忘れをチェックするために、こんなものを作りました var HogeInstances:TList; ... constructor THogeItem.Create; begin HogeInstances.Add( Self ); end; ... HogeItem を使った後のタイミングで実行 procedure HogeInstancesFree;begin var P:TObject; begin while HogeInstances.Count > 0 do begin P := TObject(HogeInstances[0]); HogeInstance.Delete(0); P.Free; end; end;
308 :
デフォルトの名無しさん :02/03/22 23:08
途中でcomboboxのスタイルをcsdropdownlistに変えるとindexが変よ? combobox1.itemindex:=combobox1.items.count-1とかすると一番上のが選択されちまうのよ ほんでcombobox1.seltext:='hoge'とかするとhogeの一個上が選択されとるわけよ どうなっとるわけ? (´-`).。oOy(あ、僕、ど素人ですけど・・・)
>>308 回答じゃないけど、
とりあえず
>>216 あたりを読んで・・・。このスレの雰囲気を見よう。
>>309 (゜д゜)<あらやだ!ごめんなさい。
でも怒りに満ちてるのはデルファイに対してなの・・・わかって・・・
>>308 >>310 ちょっと動作を検証してみたけど、
>>308 に書いてある限りでは、こっちでは質問のような動作の不具合はなかった。
また、
>>308 の3行目についてだけど、ドロップダウンリストにすると、
項目は選ぶのみで、テキストの直接入力はできないので、
そのプロパティは設定しても音沙汰なしになるはず。
何か特別な状況になっているかもしれないので、
もっと不具合が起こった状況を詳しく書いたほうがいいと思うよ。
あるキー操作でコンボボックスの中身を入れ替えてスタイルをcsDropDownListに変えます。 そのときソートをtrueにオートコンプリートをfalseに変えます。 んで、さらにある操作で中身を変えられるようにしてるんですけど、入れ替えたときに combobox1.itemindex:=combobox1.items.count-1とすると一番上のが選択されてしまう。 combobox1.itemindex:=combobox.items.indexof('aho')とするとahoの一個上が選択されてしまう。 何も指定しないと上から2番目が勝手に選択されてしまう・・・などなど・・・ この動作をスタイルを変えずにやると上のような問題がおきなかった。
コンボボックスのスタイル変更、ってのは Windows コントロールの再生成を 必要とするから、コンボボックスの中身や選択状態はすべて消失するのが Windows の仕様。 それを VCL 側で管理している部分に手落ちがあるんだろう? 素直に index を 0 に設定するか、同様なことを TCOmboBox のコードに入れて 再ビルド。 ソースついているんだからしゃぶれ。
314 :
デフォルトの名無しさん :02/03/23 00:00
307がなんなのか解らない。
( ´・ω・)ぁぃ・・・
(´-`).。oOy(あ、言い忘れたけど、スタイルを変えてから中身入れ替えてます・・・ いろいろ調べてみよっと)
(´-`)。o ○ (本当に邪魔だな…)
お邪魔します プログラム作成中にタバコを大量に吸ってしまう人でタバコを辞めたい方 100%タバコを辞める方法を教えます。 タバコを捨てたりしなくてもOK、必ず辞める事が出来ます、 しかも、今まで以上に吸ってください、私は2時間程度で辞める事が出来ました。 1.タバコを全て箱から出して下さい。 2.フィルタが上にくるようにして箱に戻してください。 3.タバコを吸う時は必ずフィルタ側に火をつけます。 4.おもいっきり吸って下さい。 但し、臭いからといって吸うのを辞めたら駄目です、完全にフィルタ部分を 吸い尽くして下さい、その後、葉の部分まで火が来たらそもまま吸っても 結構です、しかし、ここまで来るとモドシそうになっているはずですので、 消したくなるでしょう。 これを数本吸うだけで、タバコに手がのびなくなります! それでも吸う人は逝って下さい。 但し、非常に有害で危険ですので自己責任でお試し下さい。
放置で宜しく
>>319 そんなことしても大丈夫?煙草吸ってた方が健康だったんじゃないの?
発ガン性物質がその数本で十分からだに蓄積されたから、
あんた近いうちに死ぬよ、たぶん。(藁)
319=323
325 :
デフォルトの名無しさん :02/03/23 01:19
文字列をCommaTextで処理すると 'あああ','いい いい','うううう' と成ることを期待しているのに、 'あああ','いい','いい','うううう' と、「いい いい」 の中間のスペースで区切られて しまうようなのですが、どーすれば良いのでしょう。
326 :
デフォルトの名無しさん :02/03/23 01:20
319=320=321=322=323=324
327 :
デフォルトの名無しさん :02/03/23 01:23
>>325 全角空白ならOKだとおもうけど
俺レベルだと 半角空白を \nとかに変換して CommaText
んで \n を元に戻す・・・あほや
>>325 ' "あああ","いいい いい","ううう" ' と 文字列を "で囲んでやったら大丈夫だとおもふ
>>328 この場合DelimitedTextは意味無いと思われる
>135(≠>289氏です)ですが、ポインタだけでもキボンヌ… まともな検索結果が上位にでてくるGoogleサーチでも是非に。 というかドッキングの使い手ってあまり居ないのでしょうか… >289氏 フロートする物をToolWindowなFormでやって、 DragKindをdkDockに DragModeをdmAutoMaticに 適当にドック先にPanelでも配置して、 UseDockManagerをTrueに DocSiteをTrueに これでどう?漏れはこれで出来たけど、 フロート/ドック状態の記憶・復元がうまく出来ない(;´Д`)
331 :
デフォルトの名無しさん :02/03/23 01:37
>>327-329 ありがとうございます、テストしてみると""で囲むと上手く動きましたが、
もう一つ、今度は逆に
Memoコンポーネント等の中身をカンマ編集にして書き出す時に、
xxxx:=Memo1.Lines.CommaText;
のようにしてカンマを付けているのですが、この場合に勝手に ""で囲まれる
部分と囲まれない部分が判断(空白の有無等?)されるみたいなのですけど、
1行1行ループさせて ""で囲むようにガリガリと書かないと駄目なのでしょうか?
332 :
デフォルトの名無しさん :02/03/23 01:43
>>331 ガリガリって・・・・程度なんで、これで良いのでは?
var
i:integer;
begin
Memo2.Clear;
for i:=0 to Memo1.Lines.Count -1 do
begin
if (Self.Memo2.Text<>'') then
Self.Memo2.Text:=Self.Memo2.Text+',';
Self.Memo2.Text:=Self.Memo2.Text+'"'+Self.Memo1.Lines[i]+'"';
end;
end;
訂正: 程度なんで -> この程度なんで
>>332 速度的にループさせると遅くなるのでは?と考えまして、その意味でのガリガリの表現でした。
少し試してみました、データ件数が少ないので何とも言えないのですが、速度の差はあまり無いみたいです。
有難うございました。
モジュール(*.exe/*.dll)全体ならinitialization/finalizationでAllocMemCountを比較、 クラス毎ならNewInstance/FreeInstanceのオーバーロード。 ちなみにそのコードだとFree忘れを(チェックではなく)もみ消してるようにしか見えないが? 報告させて、キッチリ忘れてる箇所でFreeするようにするのが筋と思う。(GCしたいなら別だが)
訂正、おーばーらいど…鬱です逝って来ます
>>330 昔Adobe風味なUI頼まれてDock使ってみたんだが
状況の保存、復元がうまくできなくて断念(鬱
結局TForm継承したTDockFormを作って
移動中にほかのフォームに近づくと吸い寄せられるよーな作りにした。
でTDockFormにPageControl配置してそれをDockの親?にして、
TabSheetをDock/UnDockするといい感じだったような記憶が・・・
この場合は保存/復元はTDockForm単位でできたような・・・
あいまいでスマソ
雪を降らす奴作ってたんだけど全然うまくいかない 誰かヒント下さい!!
>>331 それで正解です。
CSVの仕様(MS独自?)では半角スペース、若しくはカンマのあるときは
"で囲み、"そのものを表すときは""と表し、かつそのセルは"で囲みます。
Tstringlistのcommatextはその仕様を満たしており、331で吐き出された
データはそのままでOKです。
そのデータをcommatextプロパティに代入すれば、元のデータに戻ります。
よって332のような処理は不要です。
>>337 殿
レスありがとう。
> 状況の保存、復元がうまくできなくて断念(鬱
ヤパーリ(;´Д`)
> 結局TForm継承したTDockFormを作って
(以下略失礼)
なるほど
漏れはそこまで作り込む時間も技術も無いので、
ドッキングは諦めます(;´Д`)
>>339 その後発覚した事なのですが、どーしても 全ての項目を " で囲んでやる必要ができてしまい、
結局 332さんに書いて頂いた方法と同じような方法を使うことにしました、Memoコンポへ読み込んだり
吐き出したりするだけなら良かったのですが、外部のとある見積システムへデータを流し込む時に、
全ての項目に " が付いていないと 「不正な数値です」と怒られてしまうのです、
見積システムがボロなので仕方ないのですが、結局、332さんの方法でやってみます。
何れにせよ、DelphiがCSVの仕様を満たしていないのでは無いことが理解できましたので
勉強になりました。ありがとうございました。
>>341 セルに「"」文字が入ってる場合はどうなるか?など、
「外部のとある見積システム」の挙動を把握しておくことをオススメします。
343 :
デフォルトの名無しさん :02/03/23 22:40
タスクバーに常駐するだけのものを作りたい。DataModuleでやってみたけど、すぐに終了されてしまう。どうすればいいですか?
BorlandのFAQ, Q&Aにあったよ
345 :
デフォルトの名無しさん :02/03/23 23:13
ファイルのI/Oで質問です。 大きなテキストファイルを読み込むとき、 メモリの使用量を減らすため一度には読み込まず、 一定の量ごとに分けて読み込もうと思うのですが、 これでは、2バイト文字が分断される可能性があります。 これを回避する方法はないでしょうか。 具体的には、TFileStream.Readで 一回に32KB分をCharの配列に読み込んで、 それをStringに変換し、しかるべき処理をして、 EOFに達するまでそれを繰り返していくという流れです。
Readlnで行ごとに読んでいけば分断されないことが保証されるよ。
>>346 書き忘れていました。すみません。
改行コード(CR,LF)などをしっかり管理したいので、
行ごとに読み込むということはできません。
>>347 名前欄を訂正します。 ×344 → ○345
>>348 回答ありがとうございます。
処理が煩雑になりそうですが、考えてみます。
>>345 やはり行毎に読むのが安全だとおもいますよ。
改行コードは最初に調べておき、書き込む時点で修正すればよろしいかと。
352 :
デフォルトの名無しさん :02/03/23 23:28
カーソルの読み込みを Screen.Cursors[99] := LoadCursorFromFile('hoge.cur'); とやって読み込んでるのですが、カーソルが無いと読み込めないですよね。 特にエラーは出ないですが。 これをファイルの中に埋め込む事って出来ないですか?
Readで一バイトずつ読んでいくとか。 バッファリングは内部でやってくれるよ。
>>352 リソースファイルにカーソルをいれておくとヨイ。
それをプロジェクトソースでインクルードする。
{$R xxxx.RES}という具合。
>>353 > バッファリングは内部でやってくれるよ。
すみません。バッファリングとはどういうことでしょうか。
356 :
デフォルトの名無しさん :02/03/24 00:19
風邪薬。
行の途中で分断されるのも都合が悪いと思うが。
始めまして! FileListbBoxに表示されているファイル名をダブルクリックしたときに、 とある処理を行いたいのですが、どうすれば良いでしょうか? 以下のような事を行って見ましたが、ダブルクリックしても反応なしでした。 type TForm1 = class(TForm) FileListBox1: TFileListBox; procedure FileListBox1OnDblClick(Sender: TObject); (途中省略) procedure TForm1.FileListBox1OnDblClick(Sender: TObject); begin ShowMessage('dblclick ok'); end;
360 :
デフォルトの名無しさん :02/03/24 05:37
ListBoxのAutoCompleteプロパティについての質問です。 Delphi6のヘルプには、 >ユーザーがさらに文字を入力すると,一致する文字列が長くなるため, >ItemIndex はそれより後の項目に変更されます。 とあるのですが、このような動作をさせるためには、どうすればいいのでしょうか?
自己解決。 SortプロパティをTrueにしなきゃいけなかったのね。 ところで、このキー入力時は一定時間内に連続して入力しないと リセットされてしまうようですが、どこかで変更できるのでしょうか?
procedure TForm1.FormCreate(Sender: TObject); begin word := 'おはよう'; lebel1. end; label1.でコード補完するとDelphiが止まってしまいます。既出ですか? wordなんて使わないから予約語だなんて知らなかったんですよ。マジで。 当方Delphi6です。
俺んとこだとちゃんと一覧出るよ。
>>362 何が言いたいのか分からない・・・とりあえず変数は定義すれ
あ、宣言っつったほうが正確か
367 :
デフォルトの名無しさん :02/03/24 15:03
例外が発生した際に、その例外メッセージをダイアログではなく、 他の方法で表示したいのですが、 try ... except ReportError( '例外メッセージ' ); end; このとき、例外メッセージはどのようにして取得することが出来るので しょうか。
try except on E:Exception do ShowMessage(E.Message); end; つかヘルプ嫁
369 :
デフォルトの名無しさん :02/03/24 18:00
PQCompoを使ってPOSTGRESQLに接続している人に教えて頂きたいのですが、 他で排他にてレコードが参照されている場合に、こちらが、レコードがロックをかけて 更新しようとすると待ちになってしまい固まったように見えてしまいます。 今から更新しようとするレコードがロック状態なのか否かを先に調べて、メッセージ でも表示させたいのですが、どのように実現すればよいのか判りません、何か SQLで状態を参照したり出来るのでしょうか? 板違いのような気もしたのですが、Delphi+PQCompoってことで一応こちらで質問 させて頂きました。 環境は、D6(WinXP home)+PQCompo1.5+PostgreSQL-7.1(Linux)です
>>369 折れも、昔同じ部分でひっかかったよ、そして解析してみたんだが厨房なもんで結局諦めた、
折れの解析によると、libpqの仕様だったとおもうよ、非同期問い合わせ関数を使えば、なんとかなる
のだが、ちょっと試した限りじゃ難しくて手に負えなかった、つーか、最初から非同期問い合わせで
やつ作りにしてなかったんで、トランザクションが中断された場合を考えるとジャー臭くなって止めた。
そんなこんなで、独自にロックしてるよ!って情報を蓄積するテーブルを1つ作成して、そのテーブル
を参照してから処理するようにした。当時はレコードロックが無かったんで今よりは意味があったが、
今ならレコードロック可能なんで、作りと運用を工夫すればロックの待ちで長時間放置されないよう
なことも可能なのでは?
>>370 やはり・・・・・・・。
大体ワカリマシタ有難う御座いました。
>>362 Update 当ててからテストしてみ。
373 :
デフォルトの名無しさん :02/03/24 20:23
アマゾンで注文してた Sams teachs you DElphi in 21 days という本が届いたので、またDelphi を始めます。 電話帳みたいに分厚いです。
374 :
デフォルトの名無しさん :02/03/24 20:24
直前にフォーカスがあったウインドウのハンドルを得るにはどうしますか? 直前にアクティブだったウインドウのハンドルはGetNextWindowで得ることができるんですけど・・・
>>374 フォーカス当たったらその値を記憶していく。
376 :
デフォルトの名無しさん :02/03/24 20:57
初めてプログラムに手をつけるなら Delphiがいいと言われたので、ダウンロード、インストールしました。 でもそれから何をすればいいか分かりません。 Delphi初心者のために全て解説してくれてるサイトとか ありませんか?基本だけでも分かるような。
>>376 本買いな。
基礎をしっかり覚えるならそれが一番いい。
どうせPascalを完璧に解説してるサイトなんて・・・ある?
>>376 50MBも落とすのは馬鹿らしいんじゃなかったっけ?
379 :
デフォルトの名無しさん :02/03/24 21:01
>>378 ?それは僕じゃないですよ。
僕は1ですから。
380 :
デフォルトの名無しさん :02/03/24 21:02
>>376 まずはメモ帳とdcc32.exe、これ最強。
IDEはしばらくは起動しない。
>>380 Delphiの楽しさがこれっぽっちも・・・w
>>375 外部プログラムのフォーカスがあったウインドウハンドルって意味なんですけど、
それを監視するってことでしょうか?とりあえずやり方サパーリですけど・・・
さらに質問なんですけど、外部プログラムをアクティブにするやり方なんですけど、
SetForegroundWindowだと最善面にくるもののアクティブにならず(なるやつもある)、
SetActiveWindowだと何の音沙汰もなし・・・で、非常に悩んでおります。
※フォーカスはキー入力先、アクティブはフォーカスのあるウインドウを含むって意味です。
何か起動したら一瞬で消えました。 黒い画面が出てきて文字がバーッて書かれたあとに。
385 :
デフォルトの名無しさん :02/03/24 21:07
>>384 DCC32か?コマンドプロンプトから起動しる。
>>384 プログラムの前にWindowsのお勉強が必要かもしれない・・・。
コマンドプロンプトとは・・?
388 :
デフォルトの名無しさん :02/03/24 21:08
DOSプロンプトともいう。
ん、結局どうすればいいですか? できたら詳しく教えてもらうと嬉しいのですが・・。
つまり本屋に行くまでは 諦めなければダメですか?
>>391 まぁいいか。
Delphiを機動・・・
って言うかシリアルナンバーとか取得した??
393 :
デフォルトの名無しさん :02/03/24 21:20
メモ帳を開く。 おもむろに --------------------------------- {$APPTYPE CONSOLE} program hoge; begin Writeln('はろーわーるど。'); end. --------------------------------- と打ち込み、hoge.dprというファイル名で保存。 コマンドラインから dcc32 hoge.dpr を実行すると、 hoge.exe が完成。 すばらしい。
>391 半日待っても問題ないだろ。 それまではサンプル端から起動していけ。 Delphiでどんなことができるかなんとなくわかるから。
本なんていらねーよ
>>395 んだ
自分のやりたいことがはっきりしていればヘルプを見るだけで
十分アプリは作れる
Delphiが出た当初
「特に行き詰まることもなく覚えられるから本は必要ない」
とう話もあったように思う
397 :
デフォルトの名無しさん :02/03/24 23:21
うそつけ。Pascal がわかんなきゃなんにもできねーよ。
>>397 Pascalの文法なんか知れてるよ、ヘルプを見るまでもないくらい
サンプルを参考にするだけで自然に使えるようになると思うよ
399 :
デフォルトの名無しさん :02/03/25 00:02
あんたがそう「思う」のは自由だ。
んだ
>>376 インストール出来たんだね。 そしたら ファイル(F) プロジェクトを開く
そして Delphi6\Demos\RichEditl\richedit.dpr から開いてみて
そこから F12 を押してフォームとコードが切り替えられる
F9 を押すと実行出来る
このDemosのディレクトリには他にもサンプルが色々あるから、これを読み込んで
は眺めたり実行させたりして操作を試してみて
403 :
デフォルトの名無しさん :02/03/25 00:33
漏れのバージョンは 6.0(build 6.163) なんだけど、パッチ必要?
漏れのは 6.240 UP2
406 :
デフォルトの名無しさん :02/03/25 01:36
>>404 今パッチ当てたらそうなった。
やっぱり必要だったんだ。
あとほかにパッチはいらないよね?
407 :
デフォルトの名無しさん :02/03/25 02:24
>>406 BW_108b.exe
Star_108b.exe
408 :
デフォルトの名無しさん :02/03/25 02:27
\Borland Delphi Personal Installer\documentation に入ってる、pdf読みナよ。
409 :
デフォルトの名無しさん :02/03/25 02:42
というかやはり 何のexeでも開くと一瞬で消えてしまうのですが、 どうすればいいですか?
410 :
デフォルトの名無しさん :02/03/25 03:35
411 :
デフォルトの名無しさん :02/03/25 03:44
すいません、さっきもそれ言われたんですが わかりません。 スタート→プログラム→アクセサリ みたいな感じで説明してもらえませんか?
412 :
デフォルトの名無しさん :02/03/25 03:46
あ、できました。 黒い画面が出てます。 この後どうすればいいですか?
413 :
デフォルトの名無しさん :02/03/25 05:30
ComboBox のスタイルが csSimple のとき、 ダブルクリックすると2回イベントが発生するんですが、 回避方法をご存知の方、教えていただけないでしょうか。
補足: エディットのところだと1回なのですが、下のリストをダブルクリックすると ダブルクリックイベントが2回発生してしまいます。
comboboxはバグだらけ。まともに使えるのはcsDropDownだけ・・・これまじよ
416 :
デフォルトの名無しさん :02/03/25 07:57
procedure TForm1.Button1Click(Sender: TObject); var H:HWND; begin H:=GetNextWindow(Application.Handle,GW_HWNDNEXT); SetForeGroundWindow(H); keybd_event(VK_CONTROL,0,0,0); keybd_event(Byte('V'),0,0,0); keybd_event(VK_CONTROL,0,KEYEVENTF_KEYUP,0); keybd_event(Byte('V'),0,KEYEVENTF_KEYUP,0); end; だめね・・・これじゃ貼付が上手くいかないわ・・・どうすればいいのかしら?
操作に慣れたら、自分で作ってみよう ※ファイル->新規作成->アプリケーション これだけで骨格が作られるからすぐに 名前を付けて保存しておこう ※ファイル->プロジェクトに名前を付けて保存 Unit1に名前をつけて保存 と出たら 新しいフォルダを作成をして Helloフォルダを作ろう そしてクリックしてunit1.pasのまま保存する すぐに Project1に名前を付けて保存とでるから、これの名前を Hellow.dprとして保存しよう まず、画面にこんにちはと表示してみよう ※F12を押してフォームが表示されている時にF11を押す ※イベントと書かれたタブをマウスでクリック ※OnPaintと書かれた右側の空白欄をダブルクリック これで画面に表示するイベントが書ける状態になった begin と end の間にコードを書けばいい たとえば procedure TForm1.FormPaint(Sender: TObject); begin Canvas.Ellipse(1,25,80,50); Canvas.TextOut(10,30,'こんにちは'); end; と2行を追加する。 そして、F9を押せば実行されるだろう。 この行のそれぞれの意味はマウスでクリックしてF1を押して調べてくれ
418 :
デフォルトの名無しさん :02/03/25 09:00
Delphiをはじめたばかりのobject pascalも ぜんぜん分かってない厨房ですが よろしくお願いします。 終了時に closeを使ったら、ファイルセーブもなく終わってしまうので 見よう見まねで、データが変更されてたらメッセージを出るようにしましたが これをファイルのオープンなどにも再利用したいのです。 終了時に書いた"procedure TFo…"の1ブロックをよその"procd…"の中で 呼べない物でしょうか? あとbutton1〜10.Enabled:=True;とまとめて処理をしたいのですが どの様に書いたらいいのでしょうか?
>>418 もう少し具体的に書いてくれた方がいいなあ
まず
>>417 の TForm1.FormPaintを 例に Form2から呼び出すには
Form1.FormPaint(Form1);
のように Form1を付ければ呼び出せる。
ただし、当然描画されるのは Form1に描画される
Form2に描画させたいなら、
procedure TForm1.FormPaint(Sender: TObject);
begin
with Sender as TForm do begin
Canvas.Ellipse(1,25,80,50);
Canvas.TextOut(10,30,'こんにちは');
end;
end;
と、両方に描画出来るように作っておいて Form1.FormPaint(Self) と引数でどれに描画するか指定する
まとめて処理する方法は、 for i:=0 to ControlCount-1 do begin で
if Controls[i] is TButton then with Controlst[i] as Tbutton do
begin
Enable:=True;
・・・ 他の処理
end;
みたいな感じかな
>>419 さっそく教えて頂きありがとうございます!
一つめのほうですが、質問のニュアンスがちょっと違いまして
たとえば"TForm1.Exit1Click"以下必要なコードを書いた上で
"TForm1.Button1Click"のコード中で、先の"Exit1Cllick"を呼びたいのです。
単純にButton1.Clickで
begin
Exit1Click;
end;
と書いてコンパイルすると「実パラメータが足りません」と蹴られてしまいました。
教えて頂いた別のフォームからの呼び出しは、今後の参考にさせて頂きます。
二つめのまとめて処理する方法は、咀嚼して後でやってみます。
本題とズレるのですが、sageで書くのが正解なのでしょうか。
421 :
デフォルトの名無しさん :02/03/25 10:33
shift+Delと言うキー割り当てをしたいのですがどうしたら良いですか? Deleteだけだと46でいけますよね。
>>420 同じですよ
TForm1.Button1Click(Sender:TObject)
begin
Exit1Click(Sender);
end;
みたいにするといいです。
Exit1Clickの 引数 つまりSenderを使ってないなら Exit1Click(nil); みたいに nil を渡しても同じです
もし Exit1ClickでSenderが Exit1である事が期待されているなら
Exit1Click(Exit1);
のようにします
>>421 ShortCut:=Shift+Del
>>422 たびたびありがとうございます。
教えて頂いた方法は○でしたが、でも欲しい所で×でした。
ちょっと長くなりますが、そのまま貼ります。
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var
i: Integer;
SaveAnswer: Word;
begin
if Table1.Active = True then
for i :=0 to Table1.Database.DataSetCount - 1 do
if Table1.Database.DataSets[i].State in [dsEdit, dsInsert] then
begin
SaveAnswer := MessageDlg('内容が変更されています。保存しますか?',
mtConfirmation, [mbYes, mbNo, mbCancel], 0);
if SaveAnswer = mrYes then
begin
Table1.Database.DataSets[i].Post;
CanClose := True;
end
else if SaveAnswer = mrNo then
CanClose := True
else
begin
CanClose := False;
Exit;
end
end
else
Exit;
end;
procedure TForm1.Exit1Click(Sender: TObject);
begin
FormCloseQuery(Sender);
end;
やはり「実パラメータが足りません」とエラーが出ます。
ホントに厨房ですみません・・・
そのまま貼ると半角スペースは消えてしまうのですね、きっと。
ヘルプのOnCloseQuery見れ
つーかCloseQuery呼んでも終了しないし。 Form1.Closeでいいんじゃないの?
>>426 >>427 Closeを呼ぶとそれが呼ばれるのでしたか。
OnCloseQueryの本当の意味が分かってなかったです。
ありがとうございました。
>>424 procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
と定義されているんだから、このメソッド(手続)は2つの引数がある
だから 呼び出すには 2つの引数を用意しなければいけない。
そして2番目は var だから参照渡し、つまり2つめの引数は変数を渡さなければいけない
・・・というふうに読む
ただし、これを Exit1Clickで呼び出しても無意味だけどね
430 :
デフォルトの名無しさん :02/03/25 13:23
DLLってどうやって作れば良いんですか? 関数をまとめて入れちゃえば良いの?
>>430 DLLウイザードで骨格作って
関数を宣言するように
exports
関数名 index 1;
と外部に提供する関数名を書いておく
フォームが必要なら新規作成でフォーム作って必要なタイミングで作成するだけ
>>429 こちらも回答ありがとうございます。
まだ教えて頂いた内容はまだ咀嚼できてませんが
次からの参考にさせて頂きます。
それと最初に回答をくださった
>>419 のかた
重ねてお礼申し上げます。
433 :
デフォルトの名無しさん :02/03/25 14:30
DOSプロンプトを開いたらどうすればいいのですか? まったくの初心者で何も分かりません。
>>433 昨日の高校1年生? ならお名前欄に 高1#覚え易い英字 とでも入れておくれ
Delphi32 と入力して改行すれば、Delphi IDEが開くから そこから
>>401
436 :
高1 ◆mI/k17xg :02/03/25 14:42
改行したら コマンドまたはファイル名が正しくありません といわれました。
カレントディレクトリを C:\Proglam Files\Borland\Delphi6 にしてから、 delphi32と入力してみましょう
438 :
高1 ◆mI/k17xg :02/03/25 14:55
おっ!できた! form1とか出てます。
そしたら、F9押してみな。 何もしないプログラムの完成だ!!
ありがち。。。
441 :
高1 ◆mI/k17xg :02/03/25 14:58
uses Forms, Unit1 in 'Unit1.pas' {Form1}; {$R *.res} begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end. と出てきました。 ちなみに起動は一回一回delphi32と入力しなければ いけないのですか?
DOSプロンプトから起動する必要はない。 スタート>プログラム>Borland Delphi6>Delphi6 で機動
443 :
高1 ◆mI/k17xg :02/03/25 15:05
>>401 さんのでデモを開くたびにエラーみたいのが出て
無視するかみたいの聞かれるんですが。
445 :
デフォルトの名無しさん :02/03/25 15:12
>高1 ちん毛は生えてますか?
>>436 それはどうも正しくインストールされていないように思う。
もしかしてパソコンがWin2000かXPでは?
447 :
高1 ◆mI/k17xg :02/03/25 15:14
>>447 やっぱりちゃんとインストールされてないね
インストールの途中でエラー出なかった?
再度インストールして
>>402 のアップデートも実行してみる事
BorlandDelphiPersonalEditionJP.exe これですよね? 前にダウンロードしたファイルなどは全て削除してから 再度やった方がいいですか?
>>449 コントロールパネルの アプリケーションの追加削除で Delphi6アンインストールしてあれば
削除する必要はないよ。
ここの連中は放置というものを知らない
>>452 放置できるだけしないから 聞きたい事あったらどうぞ (Delphiに限る)
Delphiに関する質問であれば放置はしない
455 :
デフォルトの名無しさん :02/03/25 17:00
対応がスレタイトルと違うと言う奴が現れたから、 態度変えたらこんどは452のような奴が。結局はアラシがもくてきですか。
「もくてき」は「目的」という漢字なんですよ。
再インストールして最後に、 今リスタートしますか?ってとこを はいにしても何もならなかったから 自分で再起動しようとしたらビジー状態です みたいになって待機押しても変わらなくて 結局強制終了ボタン二回押してした。
>押してした。 なにをした? オナニーか?
はーい、先生!! ここは誰かの日記スレじゃありませーん! Delphiに関係ある質問にやさしく答えるスレでーす! 高1くんは話し相手が欲しいなら馴れ合い板にでもウセロって感じです!!!
>>459 しょうがないねえ・・・とりあえず そのへんの報告は自分のたてたスレで報告しなさい。
それから使ってるパソコンのメモリとはHDの空容量とかWindowsのバージョンとか書くといいよ
もういい、諦める
>>463 まあプログラミングは18になってからでも遅くない。
今は色んな事やったり本読んだりして人間としての経験値を上げなさい。
そろそろC#を使った人にDelとの比較が聞きたいな〜
466 :
中2 ◆mGm.IRgU :02/03/25 19:52
Delphi 6 Update Pack 2 って、Personal版でも使えますか?
469 :
中2 ◆mGm.IRgU :02/03/25 19:57
トライアル版 = Personal版 のような気がしたんで。違うんですね?
>高1 そんなことより、ともっちスレでともっち継いでみない?
>>469 トライアル版というのはEnt版のトライアルじゃないかな
>>469 Personalにはトライアル版は存在しません
無料でダウンロードしたやつも立派な製品版です
Delphiの場合、トライアル版というのはEnterpriseのやつのこと
だからPersonalでもUpdatePackを当てる必要があります
。・゚・(ノД`)・゚・。 誰か教えて・・・
>>416
474 :
中2 ◆mGm.IRgU :02/03/25 20:16
>>471 >>472 Thx!
MS HTMLのヤツがうまくコンパイルできなかったから、当ててみる価値ありそう。
475 :
デフォルトの名無しさん :02/03/25 20:22
>>407 それは何?
>>408 どのPDFの何ページ目を読めばいいの?
なんかパッチあてないとやばいの?
>>416 GetNextWindowでHWnd取れてるの?
>>476 レスどうもです。getnextwindowで直前にアクティブだったウインドウのハンドルを取得できてます。
それでsetforegroundwindowでそのウインドウを最善面にすることもできてます。
でも問題は最善面にくるものの、アクティブにはならず・・・ってとこです。
setforegroundwindowの説明では最善面にしてアクティブにするって書いてるのに・・・
しかも貼り付けできたりできなかったりなんですよ。例をだすと秀丸はできてメモ帳はできないって感じで・・・
>>478 えーとこれは確か最前面に出ずにタスクバーが点滅するって問題ですよね?OSの仕様が変わって・・・。
僕が困ってるのは最前面に出るけどアクティブにはならないってことなんですけど、これと関係あるんでしょうか?
OSはMEとXPです。一応試してみますけど・・・
>>416 これでできるんじゃないの?
>一応試してみますけど・・・
はネーヨナ。
これでもダメならもっと良い方法もサンプルで転がってたし、
もっと自分で探せ。
最近失礼な人が多いですわ。
いやぁ、表現が悪くて申し訳ないっす。 もっと良い方法やサンプルを探してみますm(_ _)m
まあ、2chで礼儀云々言っても仕方ないと思うが いくら2chでも相手が真面目に答えてるならそれなりの礼はつくすべきだろう
>>481 (前から思っていることを言っているだけ。416さんに言っているわけではないよ。)
∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ´∀`)< 本当に無礼な人が書いたものであれ、そういうつもりが
( ) | なかった人のものであれ、字面だけ追いかけてくと失礼に
| | | | 見えるものがあるよね。
(__)_) \__________________________
言い回しひとつで不快な感じになってしまうから、
書き込む人(特に質問者)は注意なくちゃね。
例えば質問するときに、ただ疑問形の文を一文だけ書くようだと、
失礼に見える可能性がある。
逆に、丁寧語を使うと回答されやすいこともある。
誤解を与えない日本語を書くようにしたほうがいいと思うよ。
(それが案外難しいこともあるけど、
日本人なら日本語ぐらいちゃんと書きたいね。私も含めて。)
あと、無礼な人ついて思うのは、
このスレをヲチしてる人(回答者)は別に質問者の質問に
答えなくても全然構わないのに、わざわざ数分〜数十分の時間と、
ヘルプなどで裏を取る手間をかけて答えるのだから、
多少礼儀を持って質問をすることは必要かと。
(でも回答者が威張っていいということは、決してない。)
当たり前なことだとは思うんだけど・・・。
>>484 といいながら前半部分がなんだか無礼な人を擁護しているように
見えるように書いてしまった・・・。擁護するようなことは決してない。
整数の正負を知る命令ってありますか?
487 :
デフォルトの名無しさん :02/03/25 23:49
QBasicならSGNで調べられるが、Pascalにはないっぽい。
>>487 無いんですか。
ありがとうございました。
489 :
デフォルトの名無しさん :02/03/25 23:59
Delphi6になかったっけ Sign 関数。
sign >ただ疑問形の文を一文だけ書くようだと に対するネタかと思ったぞ(藁
>>484 反対の賛成(古い!)
いろんな香りのする集団があった方が良いと思う.
言い回しとか気にせず、放置されることも前提の上で好きなことを言い合えるのが
2ch の存在意義。わずかでも儀礼を必要とするのなら、別のところに行け。
492 :
デフォルトの名無しさん :02/03/26 00:02
それよりもなによりも、Object Pascal 言語ガイドを見ていて発見。 (. .) は [ ] と同等らしいな。知らなかった… いや、知っていても何の役にも立たないんだけど、 var hoge: array (.0..4.) of Integer; begin for I:=0 to 4 do Sum := Sum + Hoge(.I.); なんて書き方が出来るってナンか新鮮。
膳膳
いや、MLに比べればものすごーく気が楽だと思うけど。
MLなんて敬語やらそれに対する返答やら、面倒でイヤ。
純粋に聞きたいことを聞きたいではないか。
失礼だが、2chがわずかな礼儀をも必要しないと
思っているのはあなただけなのでは。
http://www.2ch.net/before.html >暴言や第3者を不快にさせるような発言はやめましょう
>人間的モラルやルール・ネットマナーに反した発言はやめましょう
だからうぜーってんだよ アフォをアフォととがめる奴はより異常にアフォなんだよ いちいちレス付けんなよ つーか投げーんだよ 無視するか市ねヴォケの一行にしとけ
497 :
デフォルトの名無しさん :02/03/26 00:10
[エラー] Unit1.pas(30): 未定義の識別子 : 'sign'
0と比較してやれば良いんじゃない? <正か負か
( ´∀`)マターリ♪
>>497 今まさに心から言おう
「逝ってよし」と
502 :
デフォルトの名無しさん :02/03/26 00:14
テキストボックスに数字を入れて、ボタンをクリックすると、signが発動して正か負か判断してラベルに表示する、というつもりで書いたんだけど procedure TForm1.Button1Click(Sender: TObject); begin label1.Caption := sign(val(edit1.Text)); end; end. [エラー] Unit1.pas(30): 未定義の識別子 : 'sign' [エラー] Unit1.pas(30): 実パラメータが足りません [致命的エラー] Project1.dpr(5): 'Unit1.pas' ユニットはコンパイルできませんでした となります。
ヘルプ嫁
ともさかりえ堂々と交際宣言・・・どうでもいいことだね・・・
505 :
デフォルトの名無しさん :02/03/26 00:21
そろそろ雪降らすの出来たか? 休み明けだぞ。
507 :
デフォルトの名無しさん :02/03/26 00:25
上の方で「雪を降らす効果はどうやったら良いのか?」って話題に出てたから 前スレから言ってたぞ。 前スレの雨の応用で行けるんだけどね。
ああ僕は愚かでした。これでできましたm(_ _)m procedure TForm1.Button1Click(Sender: TObject); begin keybd_event(VK_MENU,0,0,0); keybd_event(VK_TAB,0,0,0); keybd_event(VK_TAB,0,KEYEVENTF_KEYUP,0); keybd_event(VK_MENU,0,KEYEVENTF_KEYUP,0); keybd_event(VK_CONTROL,0,0,0); keybd_event(byte('V'),0,0,0); keybd_event(byte('V'),0,KEYEVENTF_KEYUP,0); keybd_event(VK_CONTROL,0,KEYEVENTF_KEYUP,0); end;
>>508 強引だねぇ・・・いや、俺はスマートなやり方わからんけどね・・・
>>502 Help使ってる?
signにカーソル当ててF1な
>>509 自分で解決したって勝ち誇ってらっしゃるのよ。ホットケ。
>>511 いや実はそうなんですけど、ひょっとしたら誰かの役に立つかもしれないし・・・
ってことで↓のほうがよいですm(_ _)m
procedure TForm1.Button1Click(Sender: TObject);
begin
keybd_event(VK_MENU,0,0,0);
keybd_event(VK_ESCAPE,0,0,0);
keybd_event(VK_ESCAPE,0,KEYEVENTF_KEYUP,0);
keybd_event(VK_MENU,0,KEYEVENTF_KEYUP,0);
keybd_event(VK_CONTROL,0,0,0);
keybd_event(byte('V'),0,0,0);
keybd_event(byte('V'),0,KEYEVENTF_KEYUP,0);
keybd_event(VK_CONTROL,0,KEYEVENTF_KEYUP,0);
end;
いや、もうこれで最後です。カキコするの・・・すいませんでした・・・
>>512 その通りです。
一度質問をして、それが回答によって解決しても、よらずに解決しても、
見ている人の参考になるので、どういう風に解決したか書くべきです。
514 :
デフォルトの名無しさん :02/03/26 02:08
>>475 とりあえずQs.pdfを全部読んで試してくれ。
Object Pascalはoplg.pdfを読めば分かる。
>>502 usesにMathを追加。
で、ヘルプでvalを見る。
(゚∀゚)おはよー
(゚∀゚)オメデトー>511
2典やっと来たよ。
519 :
デフォルトの名無しさん :02/03/26 12:55
質問です!
ネット上のサーバーににある(自分のサーバーとする)テキストをGetする方法って無いですか?
もしくはそのテキストに書かれてる内容を読んで来る方法など。
ローカルのファイルと比較がしたいんです。
>>518 2典結構おもしろい。
特に文末の語りが。
表紙をはずすと・・・。
本にはInternetタブのNMHTTPを使えって書いてあるけどそんなの無いし。 もちろんプロフェッショナルです。 そもそもこのコンポーネントでファイルのGet出来るのかな?
FastNetって言うタブにあった・・・>NMHTTP 本にだまされた。 これ以外に「こっちの方が使えるよ」って言うコンポーネントあります?
Indyって何するコンポーネント? テキストデータ以外にも扱えるかな。 アーカイブファイルを拾って来たり。
テキストを持ってくるのは出来たんですけどバイナリファイルを持ってくるのが出来ない NMHTTPでやるとファイルがhtmファイルになってダウンロードされるし。
>>524 プロ版なら右のほうのタブにIndyあるでしょ。タブが3つくらい。
httpだけなら目的はNMHTTPと同じだよ。
でも、使い勝手はIndyが上。ソースもついてくる。
IndyならidHTTP1.Get(URL, Stream); 形式で呼べばバイナリだろうがテキストだろうがOK
つか、Demoにサンプルあるから見てみ。
ごめん。↑の2行目が意味不明だ。 ×httpだけなら目的はNMHTTPと同じだよ。 ○TIdHTTP(Indy)とNMHTTPの目的は同じだよ。
>>526 >IndyならidHTTP1.Get(URL, Stream); 形式で呼べばバイナリだろうがテキストだろうがOK
Streamって言うのは保存するファイル名でしょうか?
さっきIndy使ってみてこのメソッドを触ってみたんですがなんかエラー出るんです。
529 :
デフォルトの名無しさん :02/03/26 16:49
Delphiでファイル名を変える方法とファイルの削除の方法を教えて下さい。 実行ファイルと同一ディレクトリにあると想定してです。
「名前を付けて保存」「プロジェクトから削除」
531 :
デフォルトの名無しさん :02/03/26 16:56
>>530 いや、違います。
プログラムからファイルの操作です。
ヘルプ!
procedure Get(AURL: string; const AResponseContent: TStream); overload;
これを使うとエラー出ます。
エラー内容
[エラー] Uupdate.pas(79): 指定された引数で呼び出すことのできるオーバーロード関数 'Get' が
定義されていません
HostFile := '
http://www.???.com/hoge.zip ';
IdHTTP1.Head(HostFile);
IdHTTP1.Get(HostFile,LocalFile);
これだけじゃ駄目なんですかね?
533 :
ちょっとスゴイかもよ♪ :02/03/26 17:06
>>529 RenameFile, DeleteFile
>>532 まんま、HostFileかLocalFileの型がおかしんじゃねえの?
535 :
デフォルトの名無しさん :02/03/26 18:30
Delphi6 Personal で TMemo を使った簡単なメモ帳を作っています。 TSaveDialog と TOpenDialog について困っています。 「名前を付けて保存」の時に新規のファイルだった場合は、 '新規.txt'となるように、 FileName プロパティ = 新規 DefaultExt プロパティ = txt としました。 1. 自作メモ帳を起動させて、メニューバーから「名前をつけて保存」を 選ぶと、セーブダイアログのファイル名の所には'新規'とあらかじめ入力された 状態となりました。 そのままダイアログの保存ボタンをクリックすると'新規.txt'と保存されました。 2. 次ぎに、メモ帳の中身を編集して、もう一度「名前をつけて保存」を押して セーブダイアログを呼び出すと、今度はダイアログのファイル名の所には '新規.txt'と拡張子付きであらかじめ入力された状態になっています。 3. これを'TEST'として保存ダイアログの保存ボタンを押すと、 当たり前ですが'TEST.txt'として保存されます。 4. そして再度、「名前をつけて保存」を押してセーブダイアログを呼び出すと、 ダイアログのファイル名の欄には'TEST.txt'と入力された状態になります。 今回はこのまま保存を選びました。 5. 次ぎ。今度はメニューバーから「開く」を選び、OpenDialog を呼び出します。 オープンダイアログから一番最初に保存した'新規.txt'を選び開きます。 '新規.txt'が開かれました。 6. '新規.txt'が開かれた状態で「名前をつけて保存」セーブダイアログを呼び出すと、 ダイアログのファイル名の欄には先程保存した'TEST.txt'のままになって しまいます。 長くなりましたが、6番で保存ダイアログのファイル名の欄を 現在開いているファイル名(6番の場合'新規.txt')にしたい場合、どうすれば良いですか? また、開くファイルを新規にウインドウを作って開く(現在編集中の メモ帳ウインドウはそのままで)ようにするのに良い方法はありますか?
> 6番で保存ダイアログのファイル名の欄を > 現在開いているファイル名(6番の場合'新規.txt')にしたい場合 ↓ ↓ ↓ ↓ ↓ 6番で保存ダイアログのファイル名の欄を 現在開いているファイル名(6番の場合'新規.txt')が入力された状態にしたい場合 分かりづらい文章ですみません
537 :
デフォルトの名無しさん :02/03/26 18:35
TstreamとStringが互換性無いって言われる どうしたら良いですか?
>>535 SaveDialog1.FileName:=OpenDialog1.FileName;
> また、開くファイルを新規にウインドウを作って開く
自分をもう一つ起動させればいいんでは?
C++,VC++,C,Delphiの中で初心者にうってつけの言語はどれですか?
C#!!
>>537 というか、
>>528 での、
>Streamって言うのは保存するファイル名でしょうか?
ここで、根本的に間違ってると思われ。
TStream型の所をヘルプでじっくり読んでみるといいかも
String型で受け取るなら、
>>164 参照。
>>540 Delphi。
最も美しいから。
そして1番の理由はここがDelphiスレだから。
>>539 さん、
ありがとうございます。
> SaveDialog1.FileName:=OpenDialog1.FileName;
これは以下(
>>545-546 )のどの段階で(何処に)入れればいいのでしょうか?
あまりに初心者質問で申し訳ないっす。
> > また、開くファイルを新規にウインドウを作って開く
> 自分をもう一つ起動させればいいんでは?
開くファイルを持ったままもう一つ起動させるってことですよね?
理屈は分かるのですが、書式(?)が分からなくて・・・
いま、リファレンスが書いてある本を探しているのですが、
自宅近くの書店には入門書しかなくて・・・(VBやVCはたくさんあるのに・・・)
<<名前をつけて保存>>現在のソース procedure TForm1.SaveAs1Click(Sender: TObject); begin if SaveDialog1.Execute then begin if SaveDialog1.FilterIndex=1 then begin Memo1.Lines.SaveToFile(SaveDialog1.FileName); end; if SaveDialog1.FilterIndex=2 then begin SaveDialog1.DefaultExt:='html'; Memo1.Lines.SaveToFile(SaveDialog1.FileName); end; if SaveDialog1.FilterIndex=3 then begin Memo1.Lines.SaveToFile(SaveDialog1.FileName); end; CFileName:= ExtractFileName(SaveDialog1.FileName) ; Form1.Caption := CFileName + '試作メモちょう'; end; end; ※オブジェクト インスペクタの変更箇所 FileName プロパティ = 新規 DefaultExt プロパティ = txt Filter = テキストファイル (*.txt)|*.txt|HTMLファイル (*.html;*.htm)|すべてのファイル (*.*)|*.* FilterIndex = 1 Options.ofOverwritePrompt = True
<<開く>>現在のソース procedure TForm1.Open1Click(Sender: TObject); begin if OpenDialog1.Execute then begin Memo1.Lines.LoadFromFile(OpenDialog1.FileName) ; CFileName:= ExtractFileName(OpenDialog1.FileName) ; Form1.Caption := CFileName + '試作メモちょう'; end ; end; ※オブジェクト インスペクタの変更箇所 Filter = テキストファイル (*.txt)|*.txt|HTMLファイル (*.html;*.htm)|すべてのファイル (*.*)|*.* FilterIndex = 1 長くなってすみません
>>545 CFileName:= ExtractFileName(SaveDialog1.FileName);の前にOpenDialog1.FileName:=SaveDialog1.FileName;
>>546 CFileName:= ExtractFileName(OpenDialog1.FileName);の前にSaveDialog1.FileName:=OpenDialog1.FileName;
> 開くファイルを持ったままもう一つ起動させるってことですよね?
> 理屈は分かるのですが、書式(?)が分からなくて・・・
ヘルプのコマンドラインユーティリティのところ読むと良いと思われ。
Delphiって他の言語に応用効くの? プログラム始めたいんだけど、何から手をつけていいのかサパーリわからん。 もし応用効きそうならDelphiから始めてみようかな。
Delphi5で入力データをEXCELへ出力する方法のサンプル または参考文献などありましたら教えていただけませんか。 Excelxxxxx.Renge[A1,C3].Value := 'TEST'; のような使い方ではなくセル範囲を可変で使用したいのです。 VBなら xxxxx.Cells(i,j); と記述できるんですが...
>>547 さん
どうもありがとうございました。
今まで何気なく使っていたフリーウェアが
こんなに細かいことまで考えて作られてるとは・・・
自分がプログラムに手を出して初めて分かった気分です。
>>548 応用って言葉が微妙だが
Object PascalとVCLという面ではあまり応用効かない(BCB使うときくらい)
WindowsのプログラミングやOOを学ぶという面では応用が効く
C++やJavaと比べるとPascalのほうがなんとなく初心者にはよさげ。
とりあえずPersonalダウンロードしる!
>>548 >Delphiって他の言語に応用効くの?
文法こそ違えど考え方と機能はほぼCと同一。
テンプレートなどを除いたC++と言ってしまってもいい。
>>551 了解。とりあえずPersonalダウソしてみるよ。でもDelphiってどの程度の
プログラムが作れるの?こんなこと言っちゃ誤解を生むかもしれないけど
仕事として使えるくらいのことできる?例えばだけどDelphiを使ったソフトって
どんな物があるのかな。
>>548 さん、自分も金曜日に Personal を DL したばかりの初心者です。
ObjectPascal(Delphi で使われる言語)の知識が C/C++ や VB に応用が利くかは
ワカランですけど、プログラムの構造(?)は学べると思いますよ。
条件分岐や変数などの考え方は一緒だと思います。
Delphi は VBなどと並んで素人が理解しやすい部類だと思いますけど、
Personal はフリーで DL できますから、とりあえず手を着けてみるのもアリかと。
自分は入門書買ってしまいましたが、ネットでもたくさん解説されたサイトがありますし。
>>555 DelphiはDelphiで作られています。
>>554-555 ありがとう。なるほど「かちゅーしゃ」もDelphiで作られてたのか。
ちょっと感激。んじゃ早速ダウソしてみようかな!
>550 >今まで何気なく使っていたフリーウェアが >こんなに細かいことまで考えて作られてるとは・・・ >自分がプログラムに手を出して初めて分かった気分です。 禿同です。自分も同じように 規定の文字数を入れると自動的にカーソルが次の入力BOXに移動する、とか そういうのはいちいち自分で書かないといけないんだなぁと思ったことがあります。 たしかに面倒ではあるけど、 細かいところまで気が利いてるソフトって使いやすいですよね。
C++BuilderもDelphi製だし(w
560 :
デフォルトの名無しさん :02/03/26 22:55
519さんと似た質問なんですが WebサーバーにGetリクエストPostリクエストを送って返事を得たいのですが どうすればいいのでしょうか。 Personal版のせいかヘルプでそれらしいものを調べても(TWinSocketStreamなど) リンクが見つかりません、と出てしまいます。 「プロフェッショナル版を買え」等と言わずにPersonal版で何とか実現できませんか?
karekano
TClientSocketでWinsockを直に使う <- 調べれ Indy使う <- Janeのソース見れ WinInet使う <- monazillaの資料見れ
プログラム初心者が仕事で使えるとか気にするなっつーの!!
>>562 抜けてる。
WSA系とsocket bind accept recieveAPIを直接呼ぶ。
>562,564 Indyってフリーソフトだったんですね。 てっきりプロフェッショナル版のコンポーネントだと思ってました。 助言を参考に、もうちょっといろいろ試してみます。
>>549 可変というのが変数で指定したいというのなら
↓お試しあれ
uses ComObj;
procedure ExcelTest;
var
i : Integer;
j : Integer;
vOleApp: Variant;
vOleWnd: Variant;
begin
vOleApp:=CreateOleObject('Excel.Application');
try
vOleApp.Workbooks.Add;
vOleWnd:=vOleApp.ActiveSheet;
for i:=1 to 10 do
for j:=1 to 10 do
begin
vOleWnd.Cells[i, j].Value:=i*j;
end;
vOleApp.Visible:=True;
finally
vOleWnd:=Unassigned;
vOleApp:=Unassigned;
end;
end;
567 :
デフォルトの名無しさん :02/03/27 04:57
《゚Д゚》ゴラァァァァァァァァァァァァァァア!!!!!!!!!!!!!!!! 【コンポーネントパレットの[Additional]ページにある ActionManagerコンポーネントをダブルクリックして,フォームに配置します】 ってあるけどActionManagerなんてねェぞ! ほんとはどこにあるんですか?
(゚∀゚)オハヨー
>>567 散々がいしゅつです。これで56回目です。
Personal版にはActionManagerはついていません。
アプリ起動時にbsSizeToolWinで作成し、
起動している間は常にインスタンスを保持し続けるフォームがある。
その間、ユーザの操作により、幾度と無く表示・非表示を切り替えられる
のだけど、そのVisibleの値を終了時に保存したいんです。
で、OnDestroy()でVisibleの値を取ってみたら、常にFalseなんです。
まぁ当然といえば当然なのかも知れませんが…
出来ればそのフォームの中で値の保存を完結したいのですが、
(゚д゚)ウマーな方法って無いでしょうか?
Delphi5 Up1 + Win2kPro
>>570 しかし、よく数えたなぁ…
TEditで 数字とBS、Enterのみ入力を受け付けるようにしたいのですが どうしたら良いのでしょうか? そしてEnterが入れば、次のTEditの移動もさせたいです。 すみませんが教えてください。
574 :
デフォルトの名無しさん :02/03/27 09:02
PageControlでTabSheetを動的生成して、その上にScrollBoxを置きます。 そのScrollBoxの上にImageを置くにはどうすればよいでしょうか?
>>574 parentをScrollBoxにすれば?
>>575 そのやり方がいまいちわからないんですよね・・・どう記述すればよいのか・・・
tabsheet:=TTabSheet.Create(self);
tabsheet.PageControl:=PageControl1;
with TScrollbox.Create(self) do begin
parent:=tabsheet;
align:=alClient;
end;
with TImage.Create(self) do begin
parent:=(゚∀゚)ワカラン・・・
そうだったんすか・・・ 逝ってきまp 《゚Д゚》ゴラァァァァァァァァァァァァァァア!!!!!!!!!!!!!!!!
>>577 それだと、メインフォームを閉じられたときとかCloseQuery通らないんですよ。
んで状態を保存できないと…
それに動的にユーザがShow/HideするのでOnCloseも使えないし…
メインフォームのOnDestroyだと既にToolWinな窓は破棄済でAV出るし…(;´Д`)
>>579 だからメインフォームのCloseQuery内でやれって
>>573 OnKeyPressで、if (Pos (Key, '1234567890-') = 0) and (Key <> #8) and (Key <> #13) then ・・・と
それらしいのを作ったのですが、EnterだけはWindowsの警告音が鳴ります。
やはり基本的に間違ってるのでしょうか・・・
それとSelectNext(ActiveControl, True, True);・・・で
Enter入力で 次のTEditには飛べました。
583 :
デフォルトの名無しさん :02/03/27 11:11
NMHTTPでサーバー上のファイル容量を取得する方法って無いですか? IdHTTPなら出来るそうなんですが。 それとローカルにあるファイルの容量も知りたいです。
>>574 (#゚Д゚)<馬鹿、氏ね、頭悪すぎるわ・・・俺・・・
>>581 あ、そう言うことでしたか、誤解スマソ。
それでやったらうまく逝きました。
禿しく感謝です。
>>580 サソもレスサンクスコです。
>>583 ローカルなら、
FindFirst
FindNext
あたりでPathをFileまんまにして使ってみたら?
確かTSearchRec構造体にSize: Integer;
ってメンバがあったと思われ。
これで出来るはず。
ディレクトリ中なら、再帰検索で問題ナッスィング。
>>582 if (AnsiPos(Key, '1234567890-')=0)or(Key=#13)or(Key=#8) then
Key:=#0;
>>586 やはりEnterを入力すると、Windowsの一般警告音がなります。
なんでしょうか・・・
あと遅れましたが、
>>573 >>586 さん、レスありがとうございます。
>>587 Key=#0;
でキーを判定してSelectNext(ActiveControl, True, True)
とかする前後でキーの内容をクリアしないと音が鳴ってしまうが、その話と違うのか?
>>589 日本語マトリックスが壊れていたらしい、
キーを判定してSelectNext(ActiveControl, True, True)
とかする前後でキーの内容を Key=#0; 等としてクリアしないと
音が鳴ってしまうが、その話と違うのか?
です。
>>588 はい、数字やBSはokですが、Enterは入力その物はokですが警告音が出ます。
>>589 いえ、そう思ってSelectNextを外してますがやはり鳴ります。
593 :
デフォルトの名無しさん :02/03/27 13:48
みんな#13とか使っているんですか?私は Char(VK_RETURN)って書くけどね。 別にどうでもいいのですけね(w
けね(w
595 :
デフォルトの名無しさん :02/03/27 14:11
Mainmenu−MenuItem−プロパティーのショートカットに ’+’を指定したいんですが、怒られました。 どう書けばいいんでしょうか・・。
596 :
デフォルトの名無しさん :02/03/27 14:30
freeはなぜ使うのかを教えてくれ。
>>596 今迄の言語遍歴とか教えてくれんとどう説明していいか判らん
598 :
デフォルトの名無しさん :02/03/27 14:49
>>572 キーボードで入力するだけじゃなくて
クリップボードから貼り付けることもできるんだけど・・・。
アルファベットとかを貼り付けられたら・・・。
あとEnterで次のコントロールにフォーカスを移動するのは
Windows標準の動作ではない。Tabキーを使う。
Enterはダイアログボックスだったら、[OK]ボタンを押すのに使われる。
>>599 クリップボードからの処理カットは、次のステップで考えます。
標準操作は確かにTabですが、続けての項目なのでEnterでも
処理ができると便利だからです。
>>595 テンキーの所にある”+”ですよね? 実行中に設定するには
なんとか.ShortCut:=ShortCut(VK_ADD,[]);
と設定します。
プロパティエディタにどう入力すればいいかは
procedure TForm1.FormCreate(Sender: TObject);
begin
Caption:=ShortCutToText(ShortCut(VK_ADD,[]));
end;
みたいに書いて実行した結果の通り書けばOK
--------Textショートカット一覧------ Scroll Lock BkSp Tab Enter Shift Ctrl Alt Esc 変換 無変換 Space PgUp PgDn End Home Left Up Right Down Sys Req Ins Del Num * Num + Num - Num Del Pause Scroll Lock Right Shift Caps Lock ひらがな 半角/全角
バイナリデータを読み込む方法を教えて下さい。
>>603 TFileStreamを使えばいいのでは?
605 :
デフォルトの名無しさん :02/03/27 16:58
>601 できましたー。ありがとうございました。「Num +」「Num -」でした。 って、かなり初歩なんだろうな・・・。でも、色々Tips読みあさったけど全然なかったんで・・。
>>598 長らくだれも答えないようなので答えよう。
freeってオブジェクトの破棄のFreeだよね。
自分で作成したオブジェクトはFreeを呼び出して破棄しなければならない。
それは、自分で作成したものは自動的に破棄されないから。
きちんと最後にFreeをしないと、おそらくメモリリークになると思われ。
別に自分は詳しいわけでもないので、これ以上のことはヘルプの
「VCL リファレンス
TObject.Free」とかを読んで。
>>606 そんな冷たいこと言わないで。マターリといこうよ。
>>604 TFileStreamってなんですか?
詳しく教えて下さい。
>>608 ファイルを扱いやすいように抽象化したって位のもの。
くわしくはヘルプ嫁。
610 :
デフォルトの名無しさん :02/03/27 20:41
Del6のIDEの検索・置換ダイアログで勝手に文字列が設定されるのがジャマ過ぎ。 本当にイライラしてストレスがたまる。OFFにできない?
>>572 は、Enterキーで警告音が鳴るとかって言っていたのは解決したのか?
解決してないならOnKeyPressのソースを貼ってみろ、あと、教えてくれてる奴の方法を
ちゃんと読んで理解してるかな?
>>611 残念ながら、まだ未決です。
うちのソースを貼りますので、ご指南頂ければありがたいです。
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if (Pos (Key, '1234567890-') = 0) and (Key <> #8) and (Key <> #13) and (Key <> #27) then
begin
Key := #0;
ShowMessage('半角数字とハイフンだけが入力できます。');
end;
end;
本当は、Enter入力でTabを兼ねるようにしたいのですが
上の分が解決できてないのでそれも止まっています。
>>612 例えば、Enterだけ言えば、これをそのまま貼ってみて、音が鳴るか試して
if (Key = #13) then
begin
SelectNext(ActiveControl, True, True);
Key := #0;
end;
if (Pos (Key, '1234567890-') = 0) and (Key <> #0) then
begin
Key := #0;
ShowMessage('半角数字とハイフンだけが入力できます。');
end;
あと、Enterで移動したいなら、FormのKeyPressにEnterでの移動用のコード
を書いて KeyPreviewをTrueにした方が楽だと思うけど、どーよ。
>>610 できる。
環境オプションのエディタ見れ
>>613 ありがとうございます。貼ってみたらokでした。
ただ
> if (Pos (Key, '1234567890-') = 0) and (Key <> #0) then
の、(Key <> #0)でまたキー入力を消してますが
ここの場所ではどんな仕事をしているのでしょうか?
Enterと合わせてBSなど追加してやってみましたが
上記の有無で結果が変わってきました。
まだプログラミングのなんたるかを理解してないので
この差が分かりません。
解説して頂ければ助かります。
>>612 ENTER,とかESCみたいな特殊キーはOnKeyDownで見た方が良さげ。
>>615 上のIF文でEnterだったら Key:=#0 にしてるんで、Enter入力だったのに次のIF文で、
ひっかからったら嫌かな?と思って書いてあるだけです。
ちゃんとした書き方をすれば書けるんでしょうが、貴方が書いたソースの流れから
大きく変化させない方が解り易いかと思いそのように書きました。
あと、今回のように行き詰ったら、ソースを分解したり段階的に試したりして、
シンプルにしてデバッグしやすいようにして試して見てください。
>>616 これは指摘があったのでやってみたのですが、charとwordの違いで
うまくいかなかったです。
これは私の不勉強ゆえちゃんと使えるとは思うのですが・・・
>>617 はい、わかりやすかったです。
それと指摘通り次のIF文でやはり引っかかりました。
いろいろ教えて頂きありがとうございました。
619 :
デフォルトの名無しさん :02/03/27 22:28
質問です。 私はDelphi6PROを使用しています。 でもって私の会社はムカつくことにDelphi6パーソナルを使用してるんです。 (営利目的では使用しちゃダメだとわかっててやってるから腹ただしい・・) そこでお願いなんですが。 私が今組んでるプログラムを他の会社の人に渡したときに開けない様にする方法って無いでしょうか? 言いたいことは、「Proで開発したものだからパーソナルでは開けません」 と、言いたいんです。 Proにしかない特殊な物をusesに突っ込むとか、コンポーネント使うとか・・・。 教えて下さいませ。
それに以前「キミのプロフェッショナル持ってきてくれる?」って言われたこと有るし。 なんで不正使用の片棒担が無いとだめなんでしょうか? 「Proには認証があるから・・・」と逃げましたけど。
>>619 意味がわかりません。本当に論理的思考ができるプログラマの方ですか?
まあまあ。割れを使わないだけましとおも割れ
>>619 DB関係のコンポーネントを仕込んでおいて(使っていようといまいと)
→これでPersonalではプロジェクトをコンパイルできんはず
実行時パッケージを使うようにすればいいんでないかい?
→これでパッケージを配布しなければ実行もできんはず
>>620 ソフト自己負担かよ!
凝ったことやると自然とpersonalでは開けなくなるかもしれん。
>if (Pos (Key, '1234567890-') = 0) and (Key <> #0) then これは if not (Key in ['0'..'9' , '-',#0]) then と同じかな?
BDEなんかどうよ? Personal付いてないでしょ。
訂正・・・かな >DB関係のコンポーネントを仕込んでおいて(使っていようといまいと) >→これでPersonalではプロジェクトをコンパイルできんはず プロジェクトを読み込んだときにそのコンポーネントが削除されるだけ という気もしてきた
ソースのusesにDBとかを分かりにくいように入れておくのがいいかもね
>>620 >「Proには認証があるから・・・」と逃げましたけど。
何故かワラタ
>>618 普通は、#13とかchr(13) とか使いません。
理由は、キーコードを直接使用するとソースの見通しが悪くなる点等があります。
OnKeyDownでやる場合、
if (key = Windows. とここまで入力して見てください、
コード補完で VK_〜 の部分にキーが出てきますので、それを使ってください、
Enterは VK_RETURN です。
ソースの一部をわざと消して渡せばパーソナルでもプロでもコピーできない。 っていうか、プロ買わせろよ。仕事だろ。学生に頼めば諭吉3本で買えるし。
アップグレードはお店じゃ買えないでしょ
>>631 学生ってアカデミック版?それ商用に使えたっけ?
>>634 つーか、俺の知ってる会社では、会社でアカデミック版を仕入れて普通の会社に
売っている、まぁDelphiの話じゃないけど、SQL-ServerとかVBとかWin2000Serverとか
だが、これって小売やってる所じゃ当然のように行われている事みたいだ。
一旦売ってしまえば、ユーザ登録の段階ではアカデミック版なのか通常版なのか
のチェックは無いからね。
いっそ、アカデミック版の小売は廃止して直販のみでの販売にして欲しいと願う昨今。
ショップでも店員と親しくなると、アカデミック版をこそっと売ってくれるし、まぁ、いかがな
ものかと。
たとえPro買ったとしてもみんなで使い回すのが目に見えてる。 見せしめに家の様な会社が摘発されて晒されます様に・・・。
告発すればいいんじゃないかな?
>>625 はい、今やってみてうまくいきました。
こっちのほうがキレイですね。
>>618 やはりキーコードを書くのは良くないんですよね。
そうじゃないかなと思ってました。
コード補完で出てくる候補で何とかなりそうです。
レスありがとうございました。
>>640 ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ´∀`)< 572さん頑張ってるね。
( ) \__________
| | |
(__)_)
642 :
デフォルトの名無しさん :02/03/27 23:23
| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| | 次でボケて | |_________| ∧∧ || ( ゚д゚)|| / づΦ
619は自分で速報板にスレ立てて自分の会社晒して
644 :
デフォルトの名無しさん :02/03/27 23:25
| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| | 次でボケて | |_________| ∧∧ || ( ゚д゚)|| / づΦ
| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| | ヘタクソ | |_________| ∧∧|| ( ゚д゚)|| / づΦ
648 :
デフォルトの名無しさん :02/03/27 23:47
| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| | 次でキメて | |_________| ∧∧ || ( ゚д゚)|| / づΦ
649 :
デフォルトの名無しさん :02/03/28 01:47
サーバーにあるファイルを書き換える方法って無いですか?
(サーバーは自分のサーバーだと想定して)
サーバー上にあるテキストファイル
http://www.xxxxx.co.jp/hoge.txt が
”あああああ”
だとしたらローカルのプログラムから書き換えて更新したいんです。
”あああああいいいいい”とかに
Delphiで出来ますでしょうか?
CGIかFTP覚えれ
619の話も驚いたけど、
>>636 の話はホント驚いた!
>>619 さんもACCSとかにタレこみすれば?
タレこみ先によっては報奨金が出るって話。
ただそれで会社が潰れたら困るね・・・。
>>648 次にパス。
652 :
デフォルトの名無しさん :02/03/28 01:55
(´-`)。o ○ (「出来るか?」って質問、よく見るけど「出来る」or「出来ない」って一言レス もらって、何かウレシイのかな?)
ウザイヨ?
654 :
デフォルトの名無しさん :02/03/28 02:08
>>649 HTTPコンポーネントでput出来なかった?
ファイルをGetしてからローカルで書き換えてそれをput
ダメ?
誰かフォローキボンヌ!
656 :
デフォルトの名無しさん :02/03/28 02:16
>>655 元々あがってるスレッドをsageる必要性とは?
657 :
デフォルトの名無しさん :02/03/28 02:44
>>649 Indyで出来た予感
サンプルで似た様な事やってたし
違った?
昨日はアドバイスを たくさん頂きありがとうございました。 また質問をしてすみませんが、モニターの表示解像度が変更されても 起動するソフトが常に真ん中に表示されるようにするのは どうしたら良いのでしょうか。
659 :
デフォルトの名無しさん :02/03/28 10:07
すっごい基本的なことかもしれませんが… イベントプロシージャって、かならず "Sender: TObject" を引数に取りますよね。 これってどういう意味があるんですか? 今まではそういうもんだと思って、余り気にしていませんでした。
>>659 呼び出し元を特定するため。
100個のチェックボックスがある。
それぞれOnCheck書いてたら死にたくなる。
そういう場合は100個のOncheckイベントを一つのプロシージャに割り当てることができる。
その場合、呼び出し元がわからないとどのチェックボックスがクリックされたかわからない。
そこでSenderのnameを確認する。
>>660 nameを確認するより、
Senderをチェックボックスにキャストしてアクセスした方が良いのでわ?
それか、Objectがあるチェックボックスとイコールか調べるとか。
使い方は人それぞれとw。
人それぞれですけど、僕はこれのおかげで女の子にモテモテになりました。
いや、俺の知り合いはこれのおかげで会社やめたよ?
667 :
デフォルトの名無しさん :02/03/28 11:34
引数の事教えて下さい たとえば実行ファイル起動時に引数を渡して起動すると、Edit1にその引数が代入される って言うのをやりたいのです。 出来るんでしょうか?
>>667 ParamStrを使う・・・詳細はヘルプでどうぞ
>>658 TForm.Position で不足する機能は何?
>>658 TFormのヘルプを開いて、プロパティに目を通しておこう
やりたいことの多くがプロパティを設定するだけでできてしまうことが分かるだろう
Delphiのクラス(VCL)はそのように設計されている
「MFCとは違うのだよ、MFCとは」
>>670-671 ごめんなさい、そんな項目があったのですね。
見逃してました お手を煩わしすみませんでした。
673 :
デフォルトの名無しさん :02/03/28 14:37
aviファイルを実行ファイルの中に埋め込みたいんですがどうやれば良いのでしょうか? かちゅ〜しゃはaviを埋め込んでますよね。 Aviの再生にはTAnimate使ってます。
675 :
デフォルトの名無しさん :02/03/28 14:51
Resource Workshopってどういうものなんでしょうか? Delphi6には見あたらなくて・・・ イメージエディタと言うのならあるんです。 それともフリーなんでしょうか?
677 :
デフォルトの名無しさん :02/03/28 15:04
>>675 Delphi6に付いてなかったっけ? >Resource workshop
Delphi6とかのメニュー部分(ファイルとかって部分です)って移動出来ますよね、 あれを俺のプログラムでもやりたいのですが、ControlBarの上に何を乗せたら あのような事が出来るのでしょうか? ToolBarでやろうとすると、ペロっとメニューのようにはならないみたいで悩んで います、某ツールでDelphi自身の該当箇所のクラスを調べてみると、 TDockToolBar らしいのですが、こんなのありませんし、どーしましょうか。 みんなの知恵をオラに少しわけてくれ!
679 :
デフォルトの名無しさん :02/03/28 15:07
>>678 ControlBarにControlBar乗せてみ
>>678 あとラベル貼りたいならLabeledEdit
小さいのがいいならActionMainMenuBar
そのたActionToolBar、もいける
682 :
デフォルトの名無しさん :02/03/28 15:17
>>680 Professionalです。
CDは家にあります。
急いでる訳じゃないので帰ってからやります。
CDの中にコッソリ入ってるんですかね?
Delphi5は入ってる記憶が有ったんですが。
>>681 できたよ、ありがとう。どーも新しい機能が使いこなせてないです。(反省)
>>682 大丈夫。カキコ前に確認したから。丁度インストし直したばっかなもんで。
俺自身はworkshop入れてないけど。
FreeBSDにCLIが移植されて、C#だとWindowsのバイナリがFreeBSDでも動くらしいが、 これって 将来的にDelphiと関係ありな事?それとも無関係? ひょっとして .NET が広まったら、Kylixって無意味になるのでしょうか? Delphi.NETで世界を制覇できるようになる?圧倒的なよーわからん戦略でC#が蔓延 してしまい、大好きなDelphiでは仕事をさせてもらえなくなる可能性あり?
>>685 去年の夏に言われてたけど さあどうでしょうね
公開されたのはCLR ではなく そのサブセットのCLIだけのようだし
C#が成功するなら JAVA にだってチャンスはあった筈でしょうしね
687 :
デフォルトの名無しさん :02/03/28 16:01
>>685 言ってることがようわからん。
バイナリが動くならC#以前からもあるが。
XWindow上でwineやWinエミュレーター動かせばそのまま動く。
Windowsの電卓も動いたし。
で、それがどうしたの?
DelphiとkylixはCLXによってなりたってるでしょ。
両者ともGUI統合環境と言うサポート上で。
そもそもWindowsのバイナリをそのままBSDで動かすと言うのが危険きわまりない。
Win依存だらけのソースだったらどうするべ?
>>687 CLI/CLRは wine とは全く意味が違うとおもわれ。
> BSDで動かすと言うのが危険きわまりない。
この部分は同感。
つーか、せっかくのBSDを不安定にしたいなら使っても
いいけど、サーバ用途で使ってるBSDで動かす気には
なれんな。
689 :
デフォルトの名無しさん :02/03/28 16:11
Lindowsが全て解決してくれるよ?
Lindowsなんて使い物にならんだろ、そもそもあれこそwineの塊だろ? つーか、激しくすれ違いな気がする(w
691 :
デフォルトの名無しさん :02/03/28 17:00
カレントディレクトリ(ExtractFileDir)にある実行ファイルの存在有無ををチェックして その後ファイルが実行されているかどうかを調べる方法は無いですか? 前者は出来ると思うんですが後者は難しそう・・・ UNIXだとshellコマンドで出来たんですが。
>>691 もっといい方法があるかもしれんが、今すぐ思いつくのだと、プロセスを列挙して、
各プロセスの実行ファイル名とそのファイル名が一致するかどうかの判断かな。
Win9xではToolHelp32、WinNTではPSAPI.DLLを使用すれば面倒だが出来たはず。
>>690 Lindows 作っているところは、Kylix の Wine を移植したところよん。
>>691 Windowsで?
なら、EnumWindows API
Lindows日本語とおるなら 99$払って買うよ
>>695 DEBIANベースでって部分までは好感持てるのだが、
全てのユーザがroot権限ってのが /.Jに書かれていたのを読んで幻滅した。
DEBIANベースならLinux側は日本語もそこそこ使えるだろうが、Windowsアプリ
だったらWINEがどこまでチューンされるかによるんじゃないの?
最近のWINEは試してないけど、以前のは日本語関係は駄目だったように記憶している。
697 :
デフォルトの名無しさん :02/03/28 21:32
A、B、C、D、E、Fの6チームがリーグ戦を行った。 勝敗の結果は次のようであった。Fが勝った相手はどのチームか。 1 Bは1勝2敗2引き分け 2 EはBに敗れ、3勝2敗 3 Dは1勝もできなかった 4 Cは2勝3敗 5 Fが勝ったのは1回のみ
>>697 Delphiで解こうというのでない限り、
激しくスレ違い、いや板違い。
>>1 >DELモナーがどんな厨房疑問でもやさしく答えます。
というのは、質問の内容が、Delphi初心者がつまづくような内容でも
やさしく答えよう、という意味。
スレ違いの質問や、厨房のような姿勢での質問は、
どこであろうと晒される。
ちなみに答えはC。
>>700 俺は熱狂的なCファンだ!CがFに負けるわけねーだろ、このウスラハゲ!
>>701 勝敗表。5つの条件からここまで矛盾することなく分かる。
A B C D E F 勝-負-分
A\○○?○? ?-?-?
B●\●△○△ 1-2-2
C●○\○●● 2-3-0
D?△●\●△ 0-?-?
E●●○○\○ 3-2-0
F?△○△●\ 1-?-?
EはBに敗れているので、 \ABCDEF A\??????-?-? B?\??○?1-2-2 C??\???2-3-0 D???\??0-?-? E?●??\?3-2-0 F?????\1-?-? Cに引き分けが無い以上、BはCに敗れている。 \ABCDEF A\??????-?-? B?\●?○?1-2-2 C?○\???2-3-0 D???\??0-?-? E?●??\?3-2-0 F?????\1-?-? CはDに敗れておらず、かつ引き分けでないので、 \ABCDEF A\??????-?-? B?\●?○?1-2-2 C?○\○??2-3-0 D???\??0-?-? E?●??\?3-2-0 F?????\1-?-? Cの2勝が決まり、Cに引き分けが無いので、CはFに負けている。 よって、FはCに勝った。
>>673 かちゅーしゃはaviを埋め込んでいません
>>673 お前の目は節穴か。
anime.avi ってファイルがおもっきりあるだろーが。
707 :
デフォルトの名無しさん :02/03/29 10:37
実行ファイルにAVI埋め込み上手くいきました。 FONTとかも埋め込められるんですね。 それにしてもResource Workshopは使いづらかった・・・。
単に埋め込むだけなら、Delphiのプロジェクトに .RES を入れるだけでいいぞ 別にWorkShop使わなくても
jconvertってのを拾ってきてEUC <--> SJIS のプログラムを書いてるんだけど、 日本語が部分的に化けてしまう、jconvertって結構有名だと思ったんだが、 使ってる人いますか?使えてますか? 又は、EUC<-->SJISのコンポとかで完璧なのがあれば教えて下さい。 よろしくお願いします。
710 :
デフォルトの名無しさん :02/03/29 11:27
>>710 EUC-JPだと思うけど、漢字が使えるEUCって沢山あるのでしょうか?
デルファイってよくBeginとendがいやだって言う人居るじゃん。あれってなんでかな? ルールに乗っ取った書き方だけどエイリアス出来ないのかな? 不可視にしちゃうとか。 ぁ、自分はなれてるから大丈夫だよ。 インプライズ時代からの付き合いなんで・・その前からも。 さぎょうしてると周りの人がBegin、endにやたらと、 いちゃもん付けてくるもんだらか。 コーディングによっては逆に見やすくなったりもするんだけどね。 うまく説明出来ないけど。
>>712 > デルファイってよくBeginとendがいやだって言う人居るじゃん。あれってなんでかな?
仕様ルールをよく知らない人間のただの戯言だろ、それが仕様なんだ、従うのが
嫌なら使わなきゃいいだけだ。
しかし、そんなレベルのプログラマはおそらく他の言語でもマトモなプログラムは書いて
ないと思う、相手にしなくてもいいよ。
>>712-713 日本人はbegin/endはキーを打つのが嫌いで、{}は楽で好き。
英語圏の人はbegin/endが読みやすくて好きで、{}が記号みたいで嫌い。
715 :
デフォルトの名無しさん :02/03/29 13:08
俺はBegin、Endの方が断然見やすいけど。
Ruby >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Delphi
韓国には EUC-KR がある。理屈の上では EUC-xx で xx にほとんどの国が入る。 EUC ってのは Extended Unix Code の略で、ひとことでいうと8ビット目をセット するだけ。エンコード規則だと思えばよい。 Unicode 以前にすでに多くの国で符号化集合の規定が進んでいて、基本として 7bit 単位で符号化することにし、8bit 目で、複数の符号化集合(通常の日本語文書だと 8 bit 目が0の時は残り 7 bit は US-ASCII 相当。8 bit 目が 1 の時は二つ分 14 bit で 漢字一文字)を指定する。 で、規格上は 8 bit 目 0 と 1 の時の符号化集合を指定するエスケープシーケンスを 送らなきゃいけないのを、どうせひとつの環境ではいつも同じ符号化集合の組み合わせだ。 ってんで省略したのが EUC だから EUC-KR や EUC-中国(-ch かなぁ?わすれた)が存在する。使われているかどうかは 別ですが。
>>707 WorkShopはTurbo Pascal for Windows時代の遺物だから・・・
でも他のアプリケーションのリソースを抜き取ることができる利点はある
(IEとかはだめだけど)
719 :
デフォルトの名無しさん :02/03/29 14:40
720 :
デフォルトの名無しさん :02/03/29 14:41
OpenDialogでファイルを選択すると絶対パスしか取得出来ないのですが、 選択ファイル名だけを取得するにはどうしたら良いでしょうか?
>>722 関数のヘルプは「Delphiヘルプ」-「VCLリファレンス」にあるよ
Q1.タスクトレイにプログラムを常駐させる方法を教えて下さい。 Q2.メインアイコンを32×32と16×16で分ける方法を教えて下さい。
725 :
デフォルトの名無しさん :02/03/29 15:22
なんて巧妙な縦読みだ。
>>724 A1.トレイにアイコン表示するコンポでも使え
A2.アイコンリソースに32×32と16×16の両方を入れたアイコンを使え
>>712 そこまでいくと個人の好き嫌いになっちまうよ。
俺だってincludeが嫌いってだけでC言語がきらいだよ。
たてーよみーかぁぁぁ
>>712 かなり手の込んだ縦読みだな。
文章も普通だし。
731 :
デフォルトの名無しさん :02/03/29 18:41
文字があったとし徐々に横にずらしていくのはどうしたら良いでしょうか? VBでは簡単に出来たんですが。
>>731 やりたいことが伝わってこないんだけど
Webがどうたらじゃなく基本的な動作なら
「VBなら簡単だけどDelphiでは難しい」
なんてことはまずないと思うよ(
>>723 のヘルプを参照)
>>731 private
I : Integer;
Str2: string;
procedure TForm1.OnFormCreate(Sender : TObject); //起動時の初期化処理
var
N : Integer;
Str : string;
Retry : Boolean;
begin
N := 20; //ずらす回数
Str := 'Hello.'; //ずらす文字
Retry:= True; //繰り返す→True 繰り返さない→False
end;
procedure TForm1.OnTimer1Timer(Sender : TObject); //TTimerコンポーネント
begin
if I < N then
begin
Str2:= ' '+Str2; //' 'の中身はスペース
I := I+1;
end
else
if Retry then
begin
Str2:= Str;
I := 0;
end;
Edit1.Text:= Str2; //コンポーネント名はご自由に
end;
こんなもんではどうでしょう?
このソースでは、Str入力した文字列がN回ずらされてEdit1に出力されます。
今速攻で作成したので文法には自信ないです。
>>731 2つの事を知れば解決します
1、AnsiStringはシフトJISなので1文字単位に処理したいなら WideStringを使う
2、VBのMid相当の関数は copyである
733 ずれた、鬱だ。
>>733 酒の肴になりそうです
どうもありがとう
>>737 コンパイラが答えを出してくれるだろうね
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
|
>>193-194 のリンク集の
| リンク切れを修正して、再編集したよ。
|
| 次スレの先頭に貼ろうと思うんだけど、
| ここに追加してほしいサイトとか、
∧_∧ | このリンク集の中で特に(・∀・)イイ!っていうサイトが
( ´∀`)<. あったら、次スレになる前に教えて。
( ) .| (・∀・)イイ!サイトは星印でも付けようと思うよ。
| | | | かなりでかいけど、よろしく。
(__)_) \_________________________
743 :
Delモナー ◆fPymXWHY :02/03/29 21:57
>>745 ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ´∀`)< ありがとう。追加しておく。
( ) \__________
| | |
(__)_)
748 :
デフォルトの名無しさん :02/03/30 00:22
age!
749 :
デフォルトの名無しさん :02/03/30 01:48
Zlibユニットを使ってZIPファイルの圧縮&解凍はできますか? TCompressionStreamを実際に使ってみたところ、ヘッダも一緒に 吐き出してるようなのですが・・・。 ただ、zip32j.dllで同じファイルを圧縮しても、バイナリ的に 符合しないので見当がつきません。
750 :
デフォルトの名無しさん :02/03/30 02:12
超初心者にオススメの本はありますか? 書籍スレでも探せませんでした。みなさんのオススメを教えてください
751 :
デフォルトの名無しさん :02/03/30 02:24
>>750 Delphi付属のマニュアル。本気です。
あとは、TryPCとかが出してるムック本かなぁ。
752 :
デフォルトの名無しさん :02/03/30 02:26
753 :
750じゃないよ。 :02/03/30 02:28
基礎だけがわかった初心者向けの本はありませんか? IDEの使い方、ifやforなどの構造文、classの作り方とかは分かったのですが それの例題みたいなのがたくさん載ってる本とかないですか?
TBitMapで透過させる方法はどうすればいいのでしょうか? IamgeはTransparentをTrueにするだけで出来たのですが・・・
TBitmap.Transparent
>>753 そこまで理解できてるんなら、本なんか頼んないでも、
なんか自作してみたら?
その方が随分と勉強になると思うけど・・・。
>>755 それをTrueにしただけでは透過しないんです。
コードはこうなってます。
Img := TBitmap.Create;
Img.Width := s;
Img.Height := s;
Img.Transparent := True;
Img.Canvas.CopyRect( Rect(0,0,s,s), Form2.Image1.Canvas, CharRect(0,0,x,i,s) );
CharImg[x+1,y] := Img;
>761 お、おもしろそう。 完成の暁にはぜひ一言声かけてください。
>>761 いいねぇ、なんかゲームとしての仕組みはあれだが・・・。
なんか、たぶんあるであろう連鎖以外に特別な技が欲しいな。
>>757 検証しやすいようにもう少しソースを貼ってみて
(コンパイルが通る程度に切れないかい?)
コンパイルってまだ生きているno?
>>764 Image1.Picture.LoadFromFile('puyo2ch.bmp');
Img := TBitmap.Create;
Img.Width := 32;
Img.Height := 32;
Img.Transparent := True;
Img.Canvas.CopyRect( Rect(0,0,s,s), Form1.Image1.Canvas, Rect(0,0,32,32) );
CharImg := Img;
Img := CharImg;
Form1.Canvas.CopyRect( Rect(0,0,s,s), Img.Canvas,Rect(0,0,s,s));
こんな感じです。
ただ実際はBackImg(TBitmap)に描いてからformに書き込んでます
名前をもっと変えた方がいいんじゃにゃいの?ギコギコとか
モナモナで
>>767 最後のここ
Form1.Canvas.CopyRect( Rect(0,0,s,s), Img.Canvas,Rect(0,0,s,s));
こーする
Form1.Canvas.Draw(0,0,Img);
>>770 出来ました!!
本当にありがとうございます!!
>>771 うむ、完成したら報告よろしく。
でも、ちゃんとゲームとしての速度が出るか不安も残る・・・
775 :
デフォルトの名無しさん :02/03/30 04:02
TimageってBitmapしか使えませんでしたっけ? JpegやGifが使いたいんですが。
Jpegはいけたと思うよ
777 :
デフォルトの名無しさん :02/03/30 11:08
ジェダーイに逝ってTGifImage採ってこい。
778 :
Delモナー ◆fPymXWHY :02/03/30 11:28
779 :
デフォルトの名無しさん :02/03/30 11:31
Rubyyyyyyyyyyyyyyyyyyyyyyyyy!
>>780 激しくすれ違いな奴は相手にするなよ、報知でよろしく
>>724 リソースに入れるアイコン名を教えて下さい。
783 :
飯 ◆z/PMXgLI :02/03/30 16:48
Delphi6でブラウザを作ってみたいのですが、 Delphi6でIEコンポーネントを使うにはどうすればイイのですか? 教えてください。
>>783 [コンポーネント]→[ActiveXコントロールの取り込み]
で、Microsoft Internet Controlsをインストール
ActiveXタブにWebBrowserが追加されてるはずなので、
これをフォームに貼り付ける。
ついてに、ボタンも貼って、
procedure TForm1.Button1Click(Sender: TObject);
begin
WebBrowser1.Navigate('
http://www.yahoo.co.jp ');
end;
みたいな感じ
788 :
デフォルトの名無しさん :02/03/30 18:23
Robyyyyyyyyyyyyyyyyyyyyyyyyy!
ギf
790 :
デフォルトの名無しさん :02/03/31 03:48
実行ファイル(exe)を削除しようとするときに、そのファイルが実行されていたら 消せませんよね? これってエラーを吐いてちゃんと分岐処理って出来るんでしょうか? ・実行されていなかったら・・・削除する ・実行されいたら・・・削除できないからエラーダイアログを返す こんなのです。
実行されてるファイルのハンドルを見て存在したら… なんて言う分岐が出来たと思います。 指定したプログラムを終了させる事も出来るはずなので、 実行されていたらダイアログを出して終了させても良いか確認し、 OKなら終了させて削除なんて事も出来たと思いますよ。
コンポをOnFormCreate中で、Createコマンドを使って
作成しようとすると、書き込みエラーが発生するのですが、
正しい作成方法を教えて下さい。
>>793 レス先間違えた。正しくは、(
>>790 )
procedure TForm1.Form1FormCreate(Sender: TObject); begin Button1 := TButton.Create(Self); end; ってかんじー
>>795 1.Button1をちゃんと宣言しているかどうかチェック
2.Butoon1.Parent:=Self; を書いておく
とりあえず以上で・・・
76→796 75→795 撃つ出汁脳
早速レスありがとです。 やってみます。
800 :
デフォルトの名無しさん :02/04/01 00:46
ImageでJPEGを読み込もうとするとエラーが出るんですが何故ですか? Img1.Picture.LoadFromFile('C:\aaa.jpg'); ってやるとエラーが出るんです。
jpeg
802 :
デフォルトの名無しさん :02/04/01 01:05
やまなし、おちなし、いみなし
無駄なレスが増えるからちゃんと書いてやれよ usesにjpegを追加だ。わかったな
TImageが読み込めるのはIconとMetaFileとBitmap・・・JPEGは対象外でしょ 今手元にあるのはDel5(6は隣の部屋)だけど多分変わってないはず
>>805 自己レス
ヘルプを鵜呑みにした・・・読めるね・・・恥・・・討つだし脳
>>805 普通にJPEG読み込めましたよ?
プロパティから設定すると。
808 :
デフォルトの名無しさん :02/04/01 01:15
読める
809 :
デフォルトの名無しさん :02/04/01 01:20
読める… 読めない… 読める… 読めない… 読める… 読めない………… 読める!
810 :
デフォルトの名無しさん :02/04/01 01:24
usesにjpegを追加するだけで何故読めるようになるんだろう? ってのは中村氏も最初疑問に思ってたぐらいだしね。
811 :
デフォルトの名無しさん :02/04/01 01:26
812 :
デフォルトの名無しさん :02/04/01 01:27
>>810 うわ!
本当だ
usesにjpegって記入しただけで読めちゃった。
なんて単純な・・・
813 :
デフォルトの名無しさん :02/04/01 01:41
>811 jpeg ユニットによって、TGraphic から派生した TJPEGImage クラスが定義される。 んで、TImage.Picture は TPicture で、自分が解釈できるものに合わせて適切な TGraphic を呼び出すから、この時点で TGraphic として TJPEGImage が使われて、 正しく読めるんだな。 TImage.Picture がアイコンなら TIcon を、メタファイルなら TMetaFile を勝手に選択 して生成利用しているのと、原理はいっしょ。 オブジェクト指向をうまく使っている例だよ。 これを応用すれば、GIF や PNG を読めるクラスを TGraphic から派生で定義してや ることで、JPEG と同じように使えるんだな。
アダプタパターンだっけか?
質問です。 CSVファイルをTstringgrid に突っ込んでデータベースとしているのですが 自作の検索フォームの動作がうまくいかんのです(クエリーと言うのか?) TCombobox TCombobox TEdit と並んでいて 検索結果を TListboxに表示 と言うのを作っております 例えば 「名前」 「含む」 「モナー」 かつ 「色」 「含まない」 「オレンジ」 かつ 「頭身」 「=」 「8」 これで 8頭身モナー(オレンジ以外) の一覧が TListbox に表示される と・・・ よく見る機能なのですが自分では実装できませんでした・・・ このような機能を作る際の定石などがあればご教授いただけたら幸いです。
>>815 ちなみに 開発環境は Del6 Pro です。
カードゲームのテキスト管理ソフトを作ってます(データは1000〜2000件程度)
>>813 TGraphicから派生してクラスを定義して、usesしただけでどうして読めるようになるんでしょうか。
疑問なんですが。
>>815 データベースを使うのが楽ちんでいいと思うけど、テキストファイル
ということなんで、その部分をコーディングしなくちゃならん
(CVSファイルを検索するためのライブラリって無いのかなあ)。
で、どうやるかというと、木構造を使ってレコードが条件にマッチ
するかどうかを一つ一つ判定していくのが定石だと思う。電卓の
プログラムなんかが参考になると思ったんで探してみたんだけど
いい感じのが見つからなかった(w
>>815 D6使ってるみたいだし、MyBase使ってみれば?
まさにこういう用途にうってつけだと思うが。
mybase・・・難しいなぁ データベースは触ったこともないから・・・。 とりあえずどっかしらから頑張るっす。 どんどん機能拡張していったものだから根本を変えるのは大変かなぁ (現在β22。
>>820 MyBase使ってるの?
どっかに優しい説明書無い? 情報キボーウ!
824 :
デフォルトの名無しさん :02/04/01 08:55
自分もDelphiでデーターベースソフト作ろうと思ってるんだけど、何が一番良いですか? csvやらアクセス取り込むやら方法はいっぱいあるじゃ無いですか。 これが一番簡単で手っ取り早くて良いって言うのを教えてください。 csvは中見られたらおしまいなんですよね・・・。
ぼやき;
うーん Tstringlist は引数に使えないのか、戻り値に使えないのか・・・エラーが出る。
commatextで事なきを得たが いまだに動作は変だ・・・
>>815 も1項目だけなら簡単にできるんだが、2項目目からはもはや理解不能なコードを書いてる俺。
TPicture.RegisterFileFormatをInitializationでよんでいるわけですね。なるほど。 jpeg.pasがないので残念がっていたら、 中村さんのwebページにまんま解説ありました。
すごく初歩的な気がするんですけど、 DLLの読み込み方法を教えて下さい。 ヘルプとか見てもいまいち良くわからないです。
>>827 スタテック?それとも動的に読みたいの?
1)Tstringlist を引数に使うより TStrings を引数に使って TStringListを渡すのが普通
2)戻り値に使える。ただしインスタンスの寿命管理の問題がややこしくなるので注意する事
3)
>>815 のような事で楽したいなら 正規表現検索の出来るコンポーネントを入手して
検索条件から正規表現を動的に作り出したらいい
830 :
デフォルトの名無しさん :02/04/01 11:13
やたあああああああああああ
復刊.COMからメールだああ
---------------------------------------------------
復刊ドットコムをご利用いただきありがとうございます。
下記の書物に対して投票数が規定数に達しましたことを
ご連絡いたします。
(略)
交渉の状況や結果は、可能な限りメールにてお知らせ致しますのでお待ち下さい。
また、交渉状況表をご覧いただければ、交渉中に入ったかどうかわかりますので、ぜひご覧になってください。
http://www.fukkan.com/nego.php3 登録No.4407 登録日時 2002/04/01 08:56:22
------------------------------------------------------------------------------
ジャンル : コンピュータ
書名 : Delphi オブジェクト指向プログラミング
著者名 : 塚越 一雄
出版社 : 技術評論社
本の内容 : 1997年に発行された、Delphiでのオブジェクト指向を分かりやすく解説した、
Delphi中級者以上のユーザ必須の書。
ISBM4-7741-0427-2 C3055
現在の得票数 : 100
831 :
DELモナ :02/04/01 11:27
>>815 まあ、このコードでも使ってみなさいと。
type TFindOption = record
FEnable:Boolean; //有効か否か
FIncluding:Boolean; //キーワードを含むか否か
FKeyword:string;
end;
type TFindOptions = record
FName, FColor, FTall:TFindOption;
end;
function Match(CommaText:TStrings; FindOptions:TFindOptions):Boolean;
function MatchProc(AText:string; FindOption:TFindOption):Boolean;
begin
Result := True;
if not FindOption.FEnable then Exit;
Result := FindOption.FIncluding = AnsiSameText(CommaText[0], FindOption.Keyword);
end;
begin
Result := MatchProc(CommaText[0], FindOptions.FName) and
MatchProc(CommaText[1], FindOptions.FColor) and
MatchProc(CommaText[2], FindOptions.FTall);
end;
procedure Find(Data, Result:TStrings; FindOptions:TFindOptions);
var
I:Integer;
C:TStrings;
begin
C := TStringList.Create;
for I:=0 to Data.Count-1 do begin
C.CommaText := Data[I];
if Match( C, FindOptions ) then
Result.Add( Data );
end;
C.Free;
end;
832 :
デフォルトの名無しさん :02/04/01 11:34
>>825 まずは、戻り値に使えない理由を知るべきでしょう。
function GetTStringList:TStringList;
begin
Result := TStringList.Create;
end;
↑みたいに、Result 変数に対してちゃんと
TStringList.Create しないとダメよ。
もしくは、
var
GlobalTStringList:TStringList;
function GetTStringList:TStringList;
begin
if not Assigned( GlovalTStringList ) then
GlovalTStringList := TStringList.Create;
result := GlovalTStringList;
end;
これは Create - Free の関係を(あまり)気にする必要がない。
Singleton パターンもどき。
833 :
デフォルトの名無しさん :02/04/01 11:39
エクスプローラでファイルを右クリックしたときに出てくる シェルメニューの編集をしたいです。 そこでレジストリを調べてみました。拡張子毎の情報は HKEY_CLASSES_ROOT \.* にあって、キーを頼りに情報を捜すということは分かりました。 問題は、恐らくDLLを参照しているであろう {XXXX-XXXXXX-XXXX} みたいなキーの場合です。HKEY_CLASSES_ROOT\CLSID\{XXXX-XXXXX-XXX}\InprocServer32\ の標準キーにDLLのファイル名が書いてありますね。 多分、DLLにあるメニュー項目取得関数を呼び出して 動的にメニューを構築していると思うのですが、 なんという名前の関数を呼び出せばよいのですか。
>>831 ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ´∀`)< 私以外のDelモナー、久しぶりに見たよ。
( ) \________________
| | |
(__)_)
私は「元祖」じゃないけど。
>>831 訂正.
含むか、含まないか であれば
MatchProc 関数内の
AnsiSameText(S1, S2) の部分を
( AnsiPos(S2, S1) >= 1 )
にした方が良いですな
836 :
デフォルトの名無しさん :02/04/01 13:40
C++からDelphiに移ったんですが、C++みたいに構文の途中で変数の宣言などは出来ないのですか?
837 :
DELモナ :02/04/01 13:59
Pascal では、変数の宣言場所はあらかじめ決められていて、 それ以外の場所で宣言することはできないよ。 自分は、途中で宣言可能なよりも、一括して宣言しなければ ならない Pascal 文法の方が見やすくて好き。
838 :
デフォルトの名無しさん :02/04/01 14:01
VBみたいに全角文字変数も駄目なのかな? 上司のソース見たらもの凄いことになってた 全部Public変数だし全角で宣言してるし・・・ 四角 as〜って言う風に
>>838 全角って入力しにくくないのかねぇ。
そういえば、VBの初心者向けの本で、
関数名を全角で宣言しているというすごいものがあったな。
普通の言語なら半角英数字で書くものだけど・・・。
>>836 素直にC++Builder使っとけとか言ってみる。
>>835 あなたが「元祖」DELモナさんですか・・・。
この名を借りさせてもらいました。
このスレも立てさせていただきました。
勝手にしてスマソ。
842 :
デフォルトの名無しさん :02/04/01 18:58
Formをセンターに持ってくる方法って無いですか? Form1.Position := poDesktopCenter; では無く別の方法で求める方法です。 Formshowでこれをやろうとすると 「OnShow/OnHide イベントの処理中は表示状態の変更は出来ません」 って言うエラーが出るんです。 Screen.DesktopHeightなどから求められないかなと思いまして・・・ どうも上手くいかず。
843 :
デフォルトの名無しさん :02/04/01 19:14
>>842 いつフォームをセンターに持ってくるかは別にしてまずは
ボタンが押されたらセンターに持ってくるコードを書いてみたら。
フォームの幅・高さとScreen.DesktopWidth, Screen.DesktopHeightを
使えばセンターは求まる。
D6はほんと買いなの? MyBaseはみんな使ってないつうか、使い方聞いても無視されちゃうし・・・ ちょっと愚痴、スマソ
845 :
デフォルトの名無しさん :02/04/01 20:03
>>842 Form1.Top := Screen.DesktopWidth div 4;
Form1.Left := Screen.DesktopHeight div 4
これでいけました。
どうもありがとう御座います。
あってるかわからないけど・・
;
847 :
◆fwK7enJI :02/04/01 21:36
>>845 Self.Top := Screen.DesktopHeight div 2 - Self.Height div 2;
Self.Left := Screen.DesktopWidth div 2 - Self.Width div 2;
これで中央によります。
>>847 だよね。
個人的には
Self.Top := (Screen.DesktopHeight - Self.Height) div 2;
Self.Left := (Screen.DesktopWidth - Self.Width) div 2;
だけど。
>>844 漏れ仕事でつかってるけど買いだと思う。
DBクライアントつくるなら最強(ただしEnterprise)
MyBaseは単に使ってる人が少ないだけだと思うが(w
C/S構成でCをSから切り離して動かすときとか便利そう。
時間が空いたら手をつけたいとは思っているが・・・
MyBase単独で使う分にはParadoxと大差ないと思われ
851 :
デフォルトの名無しさん :02/04/01 22:00
簡単なMyBaseの使い方。(これ以上を僕に訊かないでね。僕も知りませんから) ・TClientDataSetを配置する。 ・ClientDataSet1のコンテキストメニューから「項目の設定」を選ぶ。 ・出て来た小さい窓のコンテキストメニューの「項目の新規作成」でフィールドを追加。 ・ClientDataSet1のコンテキストメニューから「データセットの作成」を選ぶ。(これでオブジェクトツリーの「?」が消える) ・TDataSet経由でTDBGridなんかに繋げば、編集できる状態になる。 ・ClientDataSet1.SaveToFileでdfXMLを指定すればXMLとしてセーブできる。(デフォルトはバイナリーセーブ) ・ロードのときは一旦ClientDataSet1.ActiveをFalseにして読み込んでからまたTrueに。 ・変更記録が延々記録されているので、時々はClientDataSet1.MergeChangeLogで整理。
852 :
デフォルトの名無しさん :02/04/01 22:30
>>838 英数字以外を変数名に使うのは置いといて、
>全部Public変数だし
なぜ皆ここに突っ込まん(w
853 :
デフォルトの名無しさん :02/04/01 22:39
簡単なメッセーンジャーを作ろうとDelphiに着手しましたが >15のソースを実行しても出来ません・・・鬱・・・ あれ以外になにか宣言とかいるんですか?ちなみにエラー等はまったくで無かったです。 Del6Personalです。
854 :
デフォルトの名無しさん :02/04/01 22:39
>>852 おやじプログラマがよくやる。
Publicを覚えたらアホの一つ覚えみたいに使いまくるって奴ね
>>844 Delphiで一番気軽に扱えるDBは間違いなくParadox
でも、C/Sでクライアントの数が多いようなら
InterBase(FireBird)を使ってみるのもいいのでは
・・・IBXはくせがあるので最初はそれなりに苦労するけど
(dbXで接続するよりはずっと高速なのでやっぱりIBXがお薦め)
>>844 Delphiで一番気軽に扱えるDBは間違いなくTInifile
>>857 質問です
TIniFileでDBGridを使う方法を教えてくだちゃい
あんまり触ってないがADOも結構よさげ。 BDEよりかは素直?な感じがする。 BDEは何回使ってもTransactionが挙動不審なような(鬱 ただし遅いがな。(Access2000で試したところ) D6に移行してからは RDBMS : dbExpress(or BDE) お気軽アプリ : ADO or TIniFile(w てなかんじに切り分けてるかな。 あと、MyBase(MidasLib)使うと運用ライセンスかかるんじゃなかったけ? 値段忘れたが
もうDelphi7出るのかよ!
>>861 本当?初耳だよ。ソースは?
書き込みが02/04/01 23:59ってなってるんだけど・・・w
ぐ・・・漏れの会心のエイプリルフールネタが不発に終わってしまった・・・ また来年頑張ろう・・・。
864 :
Delモナー ◆fPymXWHY :02/04/02 00:20
寒い。
866 :
デフォルトの名無しさん :02/04/02 00:47
URLDownloadToFileで応答が無いと、 その間、操作不能になるのですが、 もっと便利なヤツ、または操作不能にならない方法は無いですか?
get
>>867 ClientSocketを使うのですね?
ありがとうございます。
使った事無いので調べてみます。
>>815 です。
なんかできました。
とにかくなんでもTstringlistに入れて比較したら何とかなりました・・・みなさんありがとう。
勉強になりましたです。
870 :
デフォルトの名無しさん :02/04/02 02:32
Windowsの起動時にアプリを起動させるにはスタートアップやレジストリに登録させるなりして 起動できますが、Windowsの終了時にソフトを起動させたい場合はどうしたら良いでしょうか?
>>870 Windowsの終了を監視するアプリを常駐させておくくらいしか思いつきません。
でも終了処理中って新しいプロセスを起動できなかったような。
872 :
デフォルトの名無しさん :02/04/02 02:39
まあ、Delphiは1年ごとにバージョンアップするから、 秋頃に7が出ても不思議ではない。.NET対応?
>>872 Delphi.NETってより、密かにC# Builderの開発に余念がないと思われ。
Delphi7.NET対応->C#Builder->半年程度でDelphi8.NET発表 って構図な予感
( ゚д゚)ポカーン おらDel6Perosonal・・・
( ゚д゚)ポカーン スペルミスしてるし↑
すみません、QuickReportをもっと活用したいと思うのですが Borlandから間接的にもソースを買えましたでしょうか? それともフリー/シェアで、良いコンポーネントがあれば ご紹介頂ければありがたいです。 ちなみに当方は、よくDBを組んでおります。
878 :
デフォルトの名無しさん :02/04/02 10:08
今日の朝Builder6届いたんだけどこれも認証あるのかな? 認証あった方が嬉しいんだけど。
880 :
デフォルトの名無しさん :02/04/02 13:18
>>879 割れ物使ってる会社がヒィヒィ言い出すから
まあボーランドの認証はあってないような物だけど俺が嘘ついて
「15日経過すると使えなくなりますよ」って脅す。
>>880 パーソナル使ってライセンス違反してる会社なら知ってるけど、
割物使ってるような会社が存在するのか?情けないね、倒産してみたら?
>>883 まあ会社ってさあ 社員雇ってると毎月必ず給料払わなければならないんだよ
やってみれば判るけど、これってスゴイプレッシャーだよ。
たいていの人間が起業したらトイレで流す水までウルサク言うようになるさ
人売会社でもやれば別だけどさ
>>884 だからってやっていい事と悪い事がある。 【タイーホ!
まるで政治家みたいだな。
>>853 いまさら遅いと思うけど同じ所で詰まったので・・・
あのページの下の方でサンプルをダウンロードできます。
で、ダウンロードしたやつを開いてみるともう少し微調整が必要なことが分かります。
888 :
デフォルトの名無しさん :02/04/02 16:46
Delphiで顧客データを扱うソフトを作らなくちゃいけないんですが、 どのようなDBがお勧めですか? 出来るだけ配布時に手間のかからない物が良いです。 BDEのインストールとかは避けたいですね。 実行ファイル単体で動く物にしたいと思います。 csvにしようかと思ってるのですが、中が丸見えだし・・・。 何かオススメありますか?
>>888 1000件程度なら普通にバイナリで保存しろ、適当な圧縮ライブラリ
拾ってきて使ったら、簡単な暗号化にもなるぞ。
んで、起動時に前件メモリに読み込んじゃえ。早いぞ!
890 :
デフォルトの名無しさん :02/04/02 17:23
前の派遣先でVB使ってたんだけど、そこの一人がDelphi6Personal使って一部GUI作って そのま納品してたよ・・・これってライセンス違反だよね?バレル可能性はあるの?
891 :
デフォルトの名無しさん :02/04/02 17:25
>>890 あとでプロフェッショナルで組み直せば何ら問題なし。
>890 その人がその仕事で直接・間接的に給料をもらってなければ 良いんじゃない? というか、これ「他人がやってる事だけど…」と言いながら 自分がやってることがばれるかどうか不安で書き込んでるじゃ…
>>849-851 MyBaseのレス、ありがとです。
確かにParadoxって手もありだが現行パッケージって売ってたっけ?
リンクして他の事もしたいのでMyBaseでやってみます。
でもレスが少ないとこみると、やっぱ使ってないんだろうね・・・
>>893 やくざさんへ
皆が言ってるパラドックスは Paradoxテーブルを使って勉強しろという意味だと思うぞ
Demosにあるだろ? あれを見てみたら?
おい、お前ら、マウスのホイールについて教えてください。 ホイール1単位回したときにスクロールする行数はMouse.WheelScrollLinesで取得できるけど、 1単位回したら一ページ分スクロールする設定であることを調べるにはどうすればいいんだ? レジストリ見るしかないのか?
>>895 俺たちは、アプリ側でiniファイルを作成して独自に設定するようにしています。
>>891 開発自体が業務だから、問題あるだろ!ゴルァ!
898 :
デフォルトの名無しさん :02/04/02 22:40
>>888 どの程度のデータを扱うのか知らんけど、
MySQLあたりはどうかな?手軽で早いよ。
天本英夫って生きてたんだ・・・
済みません・・・・↑誤爆です
901 :
デフォルトの名無しさん :02/04/02 23:30
そろそろ次スレ準備しておいて! 早めによろしく! >やさしいモナー
902 :
デフォルトの名無しさん :02/04/02 23:39
自作メモコントロールを作りたいのですが、 IMEの変換ウィンドウを指定した場所に持ってくるにはどうすれば 良いのでしょうか。
>>902 SetImeCompositionWindow
>>901 ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ´∀`)< 分かりました。
( ) \________________
| | |
(__)_)
次も立てさせてもらうよ。
すでに多少準備はしてあるんで。
906 :
( ´∀`)さん :02/04/03 00:14
DelphiのPersonal版を製品版で買うのはお金がもったいないですかね? やっぱり無料で手に入れる方がいいんですかね?
4800円だから買ってもいい気がするけど。言語ガイドついてくるし
わざわざ店に出向いたり、注文して届くのを待ったりするより ADSLでサクッと無料版落とした方が良いと思う。 言語ガイドはPDFだけど付いてるし。 言語ガイドを本にするためだけに4800円払うのはどうかと。
あっ、PDFでついてるんだ・・・知らな買った。
>>893 ParadoxはDelのPro以上なら普通に作成して使えるよ
(データベースデスクトップは製品版Paradoxのサブセット)
ローカルデータベースとしては十分に高性能
911 :
別に作るワケじゃないが :02/04/03 01:54
「解説・説明サイト」で使ってるデルファイの画像って無断なのかな? いちいち断って使ってる人っているのかな? つーか、気にするもんでもない? やっぱりやり方ってスクリーンショットがあると無いでは大違いだと思うんだな。
アプリケーションの実行時画面のスクリーンショットにも著作権あるの? ゲームとかならあるみたいだけど…
913 :
デフォルトの名無しさん :02/04/03 02:05
>>906 CDも無料で貰えるよ
Borlandに申し込んでみてん
初心者ならCD付き解説書を買うのが良いかも。
915 :
デフォルトの名無しさん :02/04/03 02:14
カーソル座標を取得したいんですが、以下のコードで どこが間違ってるのか教えてください。Del6Personalです。 procedure TForm1.Memo1Click(Sender: TObject); var i: Integer; p: TPoint; begin Memo1.Perform(EM_GETSEL, 0, LPARAM(@i)); Memo1.Perform(EM_POSFROMCHAR, WPARAM(@p), i); Caption := IntToStr(p.X) + ',' + IntToStr(p.Y); end;
916 :
デフォルトの名無しさん :02/04/03 02:26
ListViewで、OwnerDataを使ってるときにCheckBoxの表示は出来ないのでしょうか?
917 :
デフォルトの名無しさん :02/04/03 03:11
>>915 EM_POSFROMCHARは、
WParamに文字位置を入れて、LParamには0を入れます。
で、戻り値にXとY座標が16bitずつ分かれて返ってきます。
DWord p = Memo1->Perform(EM_POSFROMCHAR, i, 0);
Caption = IntToStr(LOWORD(p)) + ", " + IntToStr(HIWORD(p));
(Delphiで書くとたぶん間違えるのでC++で書いてます)
>>917 ありがとうございます。私もたった今わかったので、自己解決レスを
書き込もうと思ったら、
>>917 さんのレスが...。
Del6付属のWinHelpにも、BorlandサイトのTipsにも
>WParamには、TPoint型の変数へのアドレスを渡します。
と書いてあるので、すっかり騙されてました。
Borlandもお茶目なことしますね。(w
ボーランド、品質が落ちたな。
>>918 >Borlandもお茶目なことしますね。(w
MS 製のヘルプが間違っていた(過去形)ことが原因
責任は転嫁するもの。
質問です。 TStringsから適当な行を取り出すことは出来るようになったのですけど、 stringから適当な文字を取り出すにはどうやるのでしょうか?
>922 pos と copy を使います (マルチバイト文字用のもある) var s:string; var n:integer; s:='適当な文字'; n:=pos('な',s); result:=copy(s,n,High(Integer));
924 :
( ´∀`)さん :02/04/03 08:31
>>913 DelphiのCD無料で貰えるんですか?
>>910 MyBaseを差してるのだから、BDE無しに興味があるんじゃないのかな?
あいにく僕は、D5proしか持っていないのでそれ以上のコメントが出来ないが・・・
>>923 Posなんか使わず全部AnsiPosにしる!
…今ソース公開されてるけど1Byte文字しか考慮されてない
コード直してる最中なんだよぅ(;´Д`)
927 :
デフォルトの名無しさん :02/04/03 10:07
>>924 もらえるよ
スターターキットって言うの
機能質問した
>>888 です。
1000件以上データが有る場合はやっぱりデータベースが良いのでしょうか?
2000件くらいになりそうなんですが・・・。
配布に手こずらずにもっとも手軽に扱える物って無いでしょうかねぇ・・・。
>>928 どんなふうにしたいかによると思うけど
1000件でもデータベース機能を使えば TDbGridが使えるし
SQLが使えるから検索・抽出はとても楽だ
自前でやると、そういうのを作らなければいけない。
まあ、作るのはたいした事ないけど
自分の勉強を兼ねてという事ならSQLくらい使えるようにならないとさ
930 :
デフォルトの名無しさん :02/04/03 11:10
えと、自分のアプリでしかつかわないデータを、 楽に管理したり表示したり編集したりするために DBコンポーネントを使いたいのですが、 そういった場合でも利用者側のPCに BDEをインストールしなければならないのでしょうか。
>>930 D5pro 迄ならそうだね ent 又は D6proなら MyBaseがあるだろう
932 :
デフォルトの名無しさん :02/04/03 11:29
>>930 たぶん駄目。
BDEやめて欲しい・・・。
933 :
デフォルトの名無しさん :02/04/03 11:31
>>931 MyBaseは配布時によけいな物付けなくて良いの?
商用じゃ無いから問題ないと思うけど
実行ファイル以外によけいなものくっつけるのいやだし・・・。
D6Pro持ってないから具体的には知らんけど
http://www.borland.co.jp/kylix/db/benefits.html >アプリケーションを配布する際にも、面倒なコンフィギュレーションを必要としません。
>クライアントには、実行ファイルを配布するだけです。
>MyBase を使っても、アプリケーションのファイルサイズは 300K バイトしか増えません。
>MyBase は、他のデータベースエンジンファイルを必要としないため、アプリケーションを容易に配布できます。
935 :
デフォルトの名無しさん :02/04/03 11:46
TForm を独自拡張した TFormEx を使いたいとします。 IDE のツールバーにある「新規フォーム」で、この TFormEx を出すようにするにはどうすれば良いでしょうか。
>>935 常にという事ですか? リポジトリに登録して利用するんじゃなくて
よく判らんけど ”デフォルトの新規フォームを指定する” でヘルプをひいてみたら
938 :
デフォルトの名無しさん :02/04/03 11:56
>>934 Delphi6proなんだけどMybaseって言うのが見あたらない
別途インストールしなくちゃ駄目なのかな
939 :
デフォルトの名無しさん :02/04/03 12:05
DBGrid使うだけでも配布にBDE必要なんですかね?
>>938 某のサイトで Kylixの使用レポートを丹念に読むといいよ
>ClientDataSetをフォームに張り付けて、名前をDSetにしましょう。
>MyBaseとして機能させるにはFieldDefsをクリックしてそれぞれフィールドを追加し、
>右クリックで作成することでできます。
942 :
Delモナー ◆fPymXWHY :02/04/03 12:22
∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ´∀`)<. 新スレ立てました。
( ) .| ただし、このスレが980に行くまでは、
| | | | 新スレはsageておいて下さい。
(__)_) \_________________________
新スレはここ
モナーの *やさしい* Delphi質問スレ Ver.5
http://pc.2ch.net/test/read.cgi/tech/1017803412/ 書き込みに一部失敗しました。スマソ。
このスレの終わりが近くなったらもう一度知らせます。
>>933 前にギコスレに書いた気がするが
MyBase(TClientDataSet)を配布するときはMidas.dllが必要になるが
MidasLib.dcuとスタティックリンクすれば実行形式のみで配布できる。
>>942 GoodJob!!
> 3と4が逆になってしまったー!!!
>
>>3-4 は逆にして読んでください。
これくらい(゚ε゚)キニシナイ!!
こういうシリーズ物のスレ立てるツールってあれば便利なのにねぇ。
>1から>nまで、だーっと一気にnGetされることもなく書き込んでくれるヤツ。
946 :
デフォルトの名無しさん :02/04/03 13:00
なんかDB使うの面倒になってきた csv使っちゃおうかな でもデータ容量がもの凄いあるし・・・ アクセス使えないかな・・・
DelphiでDBはFireBird+IBXが最強、只だし
948 :
デフォルトの名無しさん :02/04/03 13:03
>>948 いける
アプリの配布はFireBirdのインストーラを別にすれば
exeだけでOk
950 :
デフォルトの名無しさん :02/04/03 13:11
>>949 出来れば別のインストーラーも無しで行きたいけど・・・
FireBirdって言うのでやってみるよ
951 :
ソケット ◆NIEdbLqs :02/04/03 13:13
いきなりですが DelphiでSAPIを使い方等があるサイトありませんか?
954 :
デフォルトの名無しさん :02/04/03 13:25
>>952 VBの時はADO使ってたんです
MDB(Access)を使って
そういえばDelphiでもAdo使えたんだ
955 :
デフォルトの名無しさん :02/04/03 13:26
DelphiのAdoは不要な物をインストールとかしなくて良いんですかねぇ。 VBの時はAccess入ってないユーザーが使えないために7MBくらいのインストーラ作った覚えが・・
>>950 FireBirdのインストーラもただのexeファイルだし
(CD-Rにでも焼いておいて最小クライアントで一度インストールすれば終わり)
InstallShieldを使う必要もないから配布はとっても楽だよ
>>955 漏れはいまADO(Access2000)で作ってるけど
BDEいれるよりはいいかなーてくらいで選択。
MSからダウソロードしる!とかいっても通用しそうだし(w
よくわからんけど、Win2kとかなら標準で入ってるのか?>ADO
FireBirdって2.6Mしかないのか・・・ すげー魅力的だな
961 :
デフォルトの名無しさん :02/04/03 13:49
で、結局どうしたらイイですか? ・配布時にexeファイル以外不必要とする。(データベースのデータファイルは別) ・件数が1000や2000件行っても大丈夫。 ・Delphi6proで扱える。 ・出来れば中を見られない この条件に当てはまった物です。 もうMybaseやらBDEやらAccessやらでぐちゃぐちゃです。
>>961 では宣託を与えよう
キミは MyBaseを使いたまえ
963 :
デフォルトの名無しさん :02/04/03 14:05
>>962 そういえばMyBaseってSQL機能持ってないですよね
965 :
デフォルトの名無しさん :02/04/03 14:12
966 :
デフォルトの名無しさん :02/04/03 14:14
一応ファイルを開くところまで行ったんですが・・・ データベースファイルってどうやって用意すれば良いんですか? 作り方です。 Adoの時はMDBをそのまま開いてたしアクセスで作成出来ましたけど・・・。
>>966 MyBaseがどうたらいう人ですか? なら 名前欄で判るようにお願いします
MyBaseの話なら
>>940 一般的には BDEなら 付属の DataBase DiskTop で作るのが簡単でしょう
後、SQLが使える人なら SQLのCreate文を用意しておけば色々と楽です。
>>923 では、文字列のN番目の文字の抽出方法を教えて下さい。
>>968 VBと同じようにやりたいなら AnsiStringsではなく 一旦WideStringにして使うといいよ
>>967 名前付けました
やっぱりcsvなどのカンマテキストで数千件のデータを扱うのは無謀でしょうか?
>>970 無謀ではないと思いますよ。
ただ他人から見ると、検索とか一覧とか作り込む程になんて無駄な労力をかけてるのだろうかと
一度 データベースコントロールを触ってみてから判断するといいでしょう
>>971 だってexe以外に余計なものくっつけて配布出来ないし・・
MyBaseなら大丈夫なんだっけ?
やってみるよ。
973 :
デフォルトの名無しさん :02/04/03 16:18
ちょっとしつもん。Del5で、TComboBoxなのですが、 StyleをDropDownやDropDownListのままで 各行の色を変えたい(DrawItemを呼びたい)のだが、どうすれば良いですか? 切り口だけでも教えてください。
974 :
デフォルトの名無しさん :02/04/03 16:45
オーナードローを使いましょう。 OnDrawItem とかそんな感じのイベントがあるから、 Rect などの引数を元にして Canvas に描けばよいです。
975 :
デフォルトの名無しさん :02/04/03 17:05
>743 OnDrawItem イベントは,Style プロパティが csOwnerDrawFixed か csOwnerDrawVariable の場合にのみ発生します。 なんですよ。なので、StyleがDropDownのままだと、 イベント自体が上がってこないのよ。 一応TWinControlからTCustomComboBoxの真似て作ってるんだが。 どうにも、思うようにならないのよ。
>975 の >743 は >974 の間違いですな。
>975⊃>974≠>743
978 :
デフォルトの名無しさん :02/04/03 17:48
ZLibを使おうとおもい、サンプルコードを書いたのですがナゼかエラーがおこります。どうしてでしょうか。 uses ZLib; { Edit1 〜 Edit5 と、Memo1、Button1 を配置する } { Edit1 に文字列を入力して Button1 をクリックすると、 Edit2 に圧縮前のバイナリ、Edit3 に圧縮後のバイナリ、Edit4 に展開後のバイナリ、 Edit5 に展開後の文字列が表示される。Memo1 にはサイズが表示される. } procedure TForm1.Button1Click(Sender: TObject); procedure ReportFmt(Fmt:string; Params:array of const); begin Memo1.Lines.Add( Format( Fmt, Params ) ); end; var P:PChar; PSize, I:Integer; POut:Pointer; Ms:TMemoryStream; begin { ストリームに文字列を読みこむ } Ms := TMemoryStream.Create; P := PChar( Edit1.Text ); Ms.Write( P, Length( P ) ); { 圧縮 } ZLib.CompressBuf( Ms.Memory, Ms.Size, POut, PSize ); { サイズ報告 } ReportFmt( '----------------',[] ); ReportFmt( '圧縮前 %d バイト', [Ms.Size] ); ReportFmt( '圧縮後 %d バイト', [PSize] );
{ 圧縮されたデータをストリームに書き込む } Ms.Position := 0; Ms.Write( POut, PSize ); { 圧縮前のバイナリを表示する } Edit2.Text := ''; for I := 1 to Length(Edit1.Text) do begin Edit2.Text := Edit2.Text + UpperCase(IntToHex(Ord(Edit1.Text[I]),2))+' '; end; { 圧縮後のバイナリを表示する } Ms.Position := 0; Edit3.Text := ''; while Ms.Position < Ms.Size do begin Ms.Read(P, 1); Edit3.Text := Edit3.Text + UpperCase(IntToHex(Ord(P[1]),2))+' '; end; { 展開する } Ms.Position := 0; ZLib.DecompressBuf( Ms.Memory, Ms.Size, 0, POut, PSize ); { 展開されたデータをストリームに書き込む} Ms.Position := 0; Ms.Write( POut, PSize );
{ 展開後のバイナリを表示する } Ms.Position := 0; Edit4.Text := ''; while Ms.Position < Ms.Size do begin Ms.Read(P, 1); Edit4.Text := Edit4.Text + UpperCase(IntToHex(Ord(P[1]),2))+' '; end; { 展開後の文字列を表示する } Ms.Position := 0; Ms.Read( P, MaxInt ); Edit5.Text := P; Ms.Free; end;
1000
埋め立て協力
984
985
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ | 埋め立て \  ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ∧_∧ ( ´Д`) /⌒ ⌒ヽ /_/| へ \ (ぃ9 ./ / \ \.∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ / ./ ヽ ( ´Д` )< しますた ( / ∪ , / \_______ \ .\\ (ぃ9 | ビシッ!! .\ .\\ / / ,、 > ) ) ./ ∧_二∃ / // ./  ̄ ̄ ヽ / / / ._/ /~ ̄ ̄/ / / / / )⌒ _ ノ / ./ ( ヽ ヽ | / ( ヽ、 \__つ).し \__つ
∧_∧ (( ( ´Д`) ウメー ) ) / \ ノ | | | \ (( (( | | /⌒|⌒|ヽ二二つ ) ) 丿 ヽ二二Ο./ \ (( ( ノノ (_| |_| |_ \ ∴∵ .(__)__) //》||ヾミ\
__ />、",:: …ヒマだし… ,.-!` <:: /, ,、,、/,/:: / ,>、''' /!:: `´ノ `~ /:: /,>' ノ:: / /::: ( <:::: |\\::: \ | ,!::\~!: _,! i、:: '-': '-‐'´\
/⌒彡::: /冫、 )::: ・・・埋めとくか・・・ __| ` /::: / 丶' ヽ::: / ヽ / /::: / /へ ヘ/ /::: / \ ヾミ /|::: (__/| \___ノ/::: / /:::
v (゚ω゚) <そろそろ出番だな /( )\ /'\
埋め
| | ∧ |_|Д゚) |文|⊂) | ̄|∧| 992ゲト
♥
Λ_Λハッ! / ̄ ̄ ̄ ̄ ̄ ̄ ̄ __( ;´Д`)__< 9・・・994っ! | 〃( つ つ | \_______ |\ ⌒⌒⌒⌒⌒⌒\ | \ \ \ |⌒⌒⌒⌒⌒⌒| \ |_____________|
あいやー
v <(゚ω゚) <うっ! ( )\ /'>
v (゚ω゚)> <はっ! /( ) <'\
v <(゚ω゚)> <うっ! ( ) /'>
v (゚ω゚)/ <はっ! /( ) <'\
1000 :
1000 :02/04/04 00:12
v w (゚ω゚)/ \(゚δ゚)<ジーンギスカーン! /( ) ( )ゝ <'\ / >
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。