1 名前:デフォルトの名無しさん mailto:sage [2005/11/23(水) 23:31:08 ] Delphi初心者が問題をコツコツと解きながらレベルアップするためのスレです。
75 名前:デフォルトの名無しさん [2005/12/11(日) 22:32:44 ] 嘘か真かわからんが、QualityCentralにQC#21940で、「Delphi2006 ハング」との事です。時々、ハングアップするとの事です。んー。今まで、Qualityを無視しつづけたツケだな。 -- 2005-12-07 05:54:52 (水) New 2005なんか 最初 吹っ飛んで消滅していたじゃん。 消滅からハングに 大差ないしおどろくことではないかと 先行バグ取り隊の情報引き続きよろしく -- 2005-12-07 09:14:09 (水) New >「消滅からハングに 大差ないしおどろくことではない」 どっちにしろ、真面目につかうものではなさそうですね。 「どっちにしろ、真面目につかうものではなさそうですね」 しらずに2005のときせっかく数時間かけて書いたコードが消滅して悲しい思いしたよ -- 2005-12-07 15:22:52 (水) New
76 名前:デフォルトの名無しさん [2005/12/15(木) 07:29:16 ] >>74 function CountAlpha(var str: AnsiString): Integer; var i: Integer; cnt: Integer; begin cnt:=0; i:=0; while (i <= Length(str)) do begin if ( (str[i] in LeadBytes)) then begin Inc(i,2); end else begin if (str[i] in ['a'..'z']) or (str[i] in ['A'..'Z']) then begin Inc(cnt); end; Inc(i); end; end; result:=cnt; end; //ここまで よろしくお願いします
77 名前:デフォルトの名無しさん mailto:sage [2005/12/15(木) 10:26:25 ] >>76 すばらしい! 94点 減点は CountAlpha(var str: AnsiString): → CountAlpha(const str: AnsiString): const にして、関数内で変更しない(コピーされない)ことを保証し、 IntToStr(CountAlpha(Memo1.Text)) などと、変数を確保しなくても使えるように することは重要です。var だと str := Memo1.Text; IntToStr(CountAlpha(str)) などとしなければ使えませんね。 減点ではないけど if (str[i] in ['a'..'z']) or (str[i] in ['A'..'Z']) then の部分は if (str[i] in ['A'..'Z','a'..'z']) then とすることもできます。 文字列のインデックスは1から始まります。ですから i:=0; ではなく、 i:=1; で初期化してください。次の課題は少し事前に検証してから出します。
78 名前:デフォルトの名無しさん mailto:sage [2005/12/15(木) 10:42:34 ] >>76 つぎの課題は、もうちょっと難易度が上がります。 前回同様、アルファベットの文字を見つけるのは同じですが、塊として数えてください。 例えば This is a pen. の場合は4を返すような関数をつくってください。アルファベット以外の文字(空白も含む)で 区切られたアルファベットだけで出来ている語句の数を数えます。 「...ことを保証し、IntToStr(CountAlpha(Memo1.Text)) などと、変数を確保しなくても使えるように」 の場合は、「IntToStr」「CountAlpha」「Memo」「Text」の4つです。
79 名前:デフォルトの名無しさん mailto:sage [2005/12/15(木) 11:52:06 ] ヒント 新幹線で東京から名古屋まで行くときのトンネルの数を数えるのと同等です。 トンネルの入り口を数えるといいですね。でも入り口を認識するためには 出口を認識する必要があります。出口を認識するためには、「いまトンネルの なかにいる」という<状態>を変数に保存しておかなければなりません。また、 トンネルの中にも駅があることを考慮しなければなりません。ですから、名古屋 は違いますが終点がトンネルの中の場合もありえます。
80 名前:デフォルトの名無しさん mailto:sage [2005/12/15(木) 12:22:11 ] すみません(こればっかり)、ヒントの最後の2行は、見つかった語句の長さを 記録するときのものです。今回は無視してください。入り口の数だけで十分です。
81 名前:デフォルトの名無しさん [2005/12/16(金) 13:56:59 ] ●問題2 エディットボックス(Edit1)に入力した数字までの合計値を、ボタン(Button1)を押したら、表示(Label1に表示)させよ。 なお変数は、エディットボックスの入力値(a)、合計値(Sum)、ループのカウンタ(i)とする。 procedure TForm1.Button1Click(Sender: TObject); var i,Sum:□□□□□□□; a:integer; begin a:=StrToInt(Edit1.text); Sum:=0; for i:= □ to □ do begin Sum:= □□□+□ end; Label1.Caption:=IntToStr(Sum); end; 教えて!↑
82 名前:デフォルトの名無しさん mailto:sage [2005/12/16(金) 15:44:01 ] Integer 0 a Sum i
83 名前:デフォルトの名無しさん mailto:sage [2005/12/18(日) 04:51:49 ] すんません、教えてください。 TPopupMenuに動的にメニューを追加する方法なんですが、サブメニューも追加したくて・・・ 例えば A -SubA -SubB B -SubA -SubB -SubC こんな感じでサブメニュー含めて動的に追加するにはどうしたらいいですかね?
84 名前:デフォルトの名無しさん mailto:sage [2005/12/18(日) 09:33:06 ] >>83 >>57
85 名前:デフォルトの名無しさん mailto:sage [2005/12/20(火) 06:50:34 ] >>78-80 function CountAlphaWord(const str: AnsiString): Integer; var i: Integer; cnt: Integer; isAlphaNow: Boolean; isAlphaPrev: Boolean; begin isAlphaPrev:=False; cnt:=0; i:=1; while (i <= Length(str)) do begin isAlphaNow:=False; if ( (str[i] in LeadBytes)) then begin Inc(i,2); end else begin if (str[i] in ['a'..'z', 'A'..'Z']) then begin isAlphaNow:=True; end; Inc(i); end;
86 名前:デフォルトの名無しさん mailto:sage [2005/12/20(火) 06:54:35 ] if (not isAlphaPrev) and isAlphaNow then begin Inc(cnt); end; isAlphaPrev:=isAlphaNow; end; result:=cnt; end; //ここまで よろしくお願いします
87 名前:デフォルトの名無しさん mailto:sage [2005/12/20(火) 14:36:57 ] >>85-86 100点。 キモは、 if (not isAlphaPrev) and isAlphaNow then ですね。これでトンネルの入り口を認識しているのだね。Boolean の変数を二つ つかって、論理が分かりやすくなっています。わたしの実装だと、IsTunnel という Boolean の変数をひとつだけ使っているので、今回の実装より簡単ですが、コードは 読みにくいです。他人の実装をみると、自分との違いが分かって勉強になります。 さて、次の課題は、多分予想できていると思いますが、トンネルの出口も認識して 数だけでなく、位置と長さも返すような関数を作ってください。 type TPosLength = record Position: integer; Length : integer; end; TPosLenArr = array of TPosLength; function SearchAlphaWord(const str: string; var pl: TPosLenArr): integer; >>79 の全文をヒントとしてください。
88 名前:デフォルトの名無しさん mailto:sage [2005/12/23(金) 05:34:45 ] >>87 function SearchAlphaWord(const str: string; var pl: TPosLenArr): integer; var i: Integer; cnt: Integer; isAlphaPrev: Boolean; isAlphaNow : Boolean; iPrev: Integer; begin isAlphaPrev:=False; cnt:=0; i:=1; while (i <= Length(str)) do begin isAlphaNow:=False; iPrev:=i; if ( (str[i] in LeadBytes)) then begin Inc(i,2); end else begin if (str[i] in ['a'..'z', 'A'..'Z']) then begin isAlphaNow:=True; end; Inc(i); end;
89 名前:デフォルトの名無しさん [2005/12/23(金) 05:35:25 ] if (not isAlphaPrev) and isAlphaNow then begin Inc(cnt); if cnt>Length(pl) then begin SetLength(pl, cnt+10); end; pl[cnt-1].Position:=iPrev; end else if isAlphaPrev and (not isAlphaNow) then begin pl[cnt-1].Length:=iPrev-pl[cnt-1].Position; end; isAlphaPrev:=isAlphaNow; end; SetLength(pl, cnt); result:=cnt; end; //ここまで よろしくお願いします
90 名前:デフォルトの名無しさん mailto:sage [2005/12/23(金) 11:51:19 ] >>88-89 90点。 ヒントの > トンネルの中にも駅があることを考慮しなければなりません。ですから、名古屋 > は違いますが終点がトンネルの中の場合もありえます。 を忘れています。アルファベットでテキストが終わる場合を考慮してください。 ... isAlphaPrev:=isAlphaNow; end; if isAlphaNow then pl[cnt-1].Length:=iPrev+1-pl[cnt-1].Position; // これを追加 SetLength(pl, cnt); result:=cnt; end; あと、一つも見つからない場合もありますので、while の前に isAlphaNow := false; iPrev := 1; で初期化しておくとコンパイラの警告が出ませんね。 文字列操作は列挙や置換、抽出、パースなどいろいろありますが、少々当方も飽きてきた ので次はリストクラスから出題します。すこし時間をください。
91 名前:デフォルトの名無しさん mailto:sage [2005/12/23(金) 12:10:18 ] >>88-89 リストクラスはもっとも簡単そうな文字列のリスト TStringList から始めます。 最初はソートの練習です。 procedure TForm1.Button1Click(Sender: TObject); var sl: TStringList; i: integer; begin Randomize; sl := TStringList.Create; try for i := 1 to 20 do sl.Add(IntToStr(Random(1000))); Memo1.Lines.Assign(sl); finally sl.Free; end; end; にすると、0-999 のランダムな数値に対応する文字列が sl に20個保持され、その内容が Memo1 に 表示されます。コードを継ぎ足して、数値の小さい方から(昇順)並べ直して見てください。 TStringList.CustomSort を使います。
92 名前:ささ ◆6KVcpBNXy. [2006/01/26(木) 15:45:51 ] みなさん。こんにちゎ。経済学部のささと申します。 パスカル(Delphi)の授業での課題がわかりません。。教えてください! 3科目、10人分のデータを入力して各人の合計点と科目毎の平均点を作れ! という課題が出ました。。。 先生に下記を改変するとやりやすいといわれました。repeatとwhileとforまでしか習っていません。 Score :array[0..1000] of integer; begin writeln('入力得点の平均と偏差値を計算します'); writeln('入力後、負の数を入力すると…終了します。'); kazu :=0; repeat write('点数は?'); readln(data); if data >= 0 then begin kazu := kazu + 1; score[kazu] := data end until data < 0; goukei := 0; for i := 1 to kazu do goukei := goukei + score[i]; heikin :=goukei / kazu; goukei :=0; for i := 1 to kazu do goukei := goukei + Sqr(score[i]); hensa := sqrt(goukei /kazu - sqr(heikin)); writeln('点数 偏差値'); for i := 1 to kazu do writeln(score[i]:4, 50 +10 * (score[i]-heikin)/ hensa:10:1); writeln(' 平 均 =',heikin:5:1); writeln('標準偏差=',hensa:5:1); readln; end.
93 名前:棄民党党首 ◆8slekwWKD6 [2006/01/26(木) 17:00:39 ] やひゃひゃひゃ。おまいら。 AssignFile(f, s); Reset(f); で s にアクセント記号と漢字交じりのファイル名をWideStringでぶちこんでみたら 開かんぞ。 TntのUnicode Componentsをいぢってみたが、AssignFileのUnicode版がみつからん。 でしかたないから WideRenameFileで名前を'safe.bin'とかに変更しちゃって。 フツ〜にAssignFileで開いて処理してからまた WideRenameFileで名前をUnicodeの名前へもどしますた。 わたしってなんて天才♪
94 名前:デフォルトの名無しさん mailto:sage [2006/02/10(金) 02:28:56 ] Delphiってなくなるの? Turbo Pascal時代からずっと使って来ただけに、 手に馴染んだ開発環境がなくなると困る。
95 名前:デフォルトの名無しさん mailto:sage [2006/02/10(金) 04:04:10 ] >>94 ボーランドが手放すだけでDelphiがなくなるわけじゃないから安心しる。
96 名前:デフォルトの名無しさん mailto:sage [2006/02/10(金) 08:15:16 ] 買い手が無ければなくなるんじゃね?
97 名前:デフォルトの名無しさん [2006/02/10(金) 14:45:48 ] で、MDIでWM_COPYDATAを子フォームで受け取るにはどーすんの?
98 名前:デフォルトの名無しさん mailto:sage [2006/02/10(金) 16:58:38 ] 受け取るのは簡単だろ
99 名前:デフォルトの名無しさん [2006/02/10(金) 17:29:53 ] >>98 え?マジすか?kwsk! とあるスレッドからMDI子フォームにSendMessageしたいんです。 そのスレッドでは、MDI子フォームのウィンドウハンドルを取得する事は 出来るのですが、SendMessageしてもMDI子フォームにメッセージが来ないです。 もう泣きそうです。 もちろん、MDI子フォームではメッセージを受け取れるようにしているのですけども・・・。
100 名前:デフォルトの名無しさん mailto:sage [2006/02/10(金) 17:49:34 ] どうやってハンドルをみつけたの?
101 名前:デフォルトの名無しさん [2006/02/10(金) 18:13:45 ] 改行が多いと怒られたので、かなりハショってます。 メッセージを送る側では procedure Thread.SendMsg(sClassName: String; nKind: Cardinal; pInfo: Pointer; nInfoSize: Integer); var begin Wnd := FindWindow(PChar(sClassName), nil); if (Wnd <> 0) then begin : SendMessage(Wnd, WM_COPYDATA, WPARAM(Wnd), LPARAM(@Cd)); end; とし、SendMsg('TForm', ....); と、使っています。で、 受け取る側(MDI子フォーム)では procedure WMCopyData( var sMsg: TWMCopyData ); message WM_COPYDATA; を、privateに宣言して procedure TForm.WMCopyData(var sMsg: TWMCopyData); : begin pMessage := nil; if (sMsg.CopyDataStruct.dwData = ID_TEST) then begin : : : end; としています。
102 名前:デフォルトの名無しさん mailto:sage [2006/02/10(金) 19:22:04 ] それでほんとに、目的 MDI 子ウィンドウが見つかってる? 一度 Spy++ か WinInsight で確かめたら?
103 名前:デフォルトの名無しさん [2006/02/10(金) 19:45:00 ] 取れてるようですが・・・ダメなんでしょうか? 通常どうやるのかわからないもので・・・。 とりあえず実行させて、FindWindowの戻り値を見たら0x604A6でした。 Spy++の検索ウィンドウで0x604A6を検索したら、目的のウィンドウが 検索されました。一応ウィンドウハンドルは取れているようでした。 うーん・・・困りました・・・。
104 名前:デフォルトの名無しさん mailto:sage [2006/02/14(火) 02:57:20 ] 部分範囲型って、実際バリバリ使ってる人います? 便利なようでいまいち、使いどころが…。 動作中チェックありにして、速度とか問題ないですか?
105 名前:デフォルトの名無しさん mailto:sage [2006/02/14(火) 15:13:33 ] そもそも Delphi を実際バリバリ使ってる人なんか、そんなにいないからね
106 名前:デフォルトの名無しさん mailto:sage [2006/02/14(火) 21:37:45 ] バリバリじゃない。さり気なく使うんだ。
107 名前:デフォルトの名無しさん mailto:sage [2006/02/15(水) 10:29:36 ] さりげなく、こっそりと、ひそかに・・・な。
108 名前:デフォルトの名無しさん mailto:sage [2006/02/15(水) 11:11:39 ] いや、ペタペタと使う。
109 名前:デフォルトの名無しさん mailto:sage [2006/02/21(火) 23:53:44 ] >>101 ヘルプに有るように、FindWindowは子ウィンドウは探してくれないよ。 同じクラス名を持つ別のウィンドウのハンドルを返していると思われ。
110 名前:デフォルトの名無しさん [2006/02/22(水) 23:07:35 ] 質問です。色付きのボタンを作ることはできますか? パネルを色つきにしてOnClickという事もできますが それだとクリックされたときにボタンのように 凹んだりしないのでわかりづらいし・・・ なにかいい方法はありますでしょうか? どなたか、よろしくお願いします。
111 名前:デフォルトの名無しさん mailto:sage [2006/02/22(水) 23:14:06 ] >>110 まさか本当に凹んでるとか思ってないよな?
112 名前:デフォルトの名無しさん mailto:sage [2006/02/23(木) 00:27:17 ] Paintメソッドをoverrideして自分で描画するとか。
113 名前:Delフサギコ ◆A6VzDeLphI mailto:sage [2006/02/23(木) 00:51:33 ] (´⌒;; ;⌒`) ∧,,∧ そういうのだいたい ;; `)./ミ,,゚Д゚彡 誰か作ってるよ。 //\ ̄ ̄旦~ (´(´⌒) // ※.\___\ \\※ ※ ※ ※ ※ヽ \`ー──────ヽ ──────── homepage1.nifty.com/cosmic/delphi/vcl.html#cutebtn homepage2.nifty.com/Mr_XRAY/Delphi/plButton/index.htm
114 名前:デフォルトの名無しさん [2006/03/02(木) 22:41:07 ] 152 : :2006/03/01(水) 06:16:00 HOST:ed251.opt2.point.ne.jp 削除対象アドレス: pc8.2ch.net/test/read.cgi/tech/1138370150/ pc8.2ch.net/test/read.cgi/tech/1132756268/ pc8.2ch.net/test/read.cgi/tech/1132013685/ 削除理由・詳細・その他: 6. 連続投稿・重複
115 名前:デフォルトの名無しさん mailto:sage [2006/03/03(金) 01:13:30 ] Dr.Dのマシン語寺子屋
116 名前:デフォルトの名無しさん [2006/03/31(金) 11:14:10 ] TBitmap→TJpegImage→Jpegファイル、とやってますが、 DDBからDIBにするとメモリ減りますか? コーディングも簡単でつか?
117 名前:デフォルトの名無しさん mailto:sage [2006/03/31(金) 12:06:28 ] やってることと、質問の内容が噛み合ってない
118 名前:116 [2006/03/31(金) 13:30:05 ] いやだから、 TBitmap(DDB)→TJpegImage→Jpegファイル から TBitmap(DIB)→TJpegImage→Jpegファイル に変更。 今は意識してないけど、TBitmapってデフォはDDBだおね?
119 名前:デフォルトの名無しさん mailto:sage [2006/03/31(金) 13:50:09 ] 大差ないよ。
120 名前:デフォルトの名無しさん mailto:age [2006/05/29(月) 00:58:17 ] feeddemonってRSSリーダーがあるんですが v1のときにhtaのような使い方をしている 部分(左のチャンネルリスト)をどう実装してるのか わからないんですが、誰か教えてください詳しい人
121 名前:デフォルトの名無しさん mailto:sage [2006/05/29(月) 13:16:35 ] > Delphi初心者が問題をコツコツと解きながらレベルアップするためのスレです。 すれ違い
122 名前:デフォルトの名無しさん [2006/06/09(金) 17:59:34 ] マウスカーソルをアルファベット文字、もしくは単語にしたいのですが、 簡単にできますか? アルファベット毎にカーソルファイルを作るのでなく、 コーディングでやりたいです。
123 名前:デフォルトの名無しさん mailto:sage [2006/06/09(金) 18:47:12 ] 簡単にはできないでしょ。すなくとも動的にアルファベットの画像をつくらなきゃならないし。
124 名前:デフォルトの名無しさん mailto:sage [2006/06/09(金) 19:15:11 ] >>122 forum.nifty.com/fdelphi/samples/00368.html TBitmapを作成して そこに文字を書いて、 それからCreateCursor
125 名前:122 mailto:sage [2006/06/12(月) 08:41:29 ] >>123 >>124 サンクス。 ちょっとひねればコーディングできそうですね。
126 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 09:14:12 ] どうぞよろしくお願いします Delphi7.0上で、3層の情報系の業務アプリケーションを構築しています データベースはOracle9iです UIでは、ADOレコードセットを入力データソースするMicrosoftのActiveXコンポーネント を使用しています BDE、DBExpressやBizSnapを利用すれば3層のデータアプリケーションは作成できる ことは分かりました データセットプロバイダ経由でデータを取得しようとすると、クライアント側はClientDataSet として受け取ることになるのですが、どこかでADOレコードセット形式に変換しなければなりません 試しにClientDataSetをまわしながらADOレコードセットにフィールド定義とデータ値をコピーする 方法を試してみましたが、処理時間とCPU負荷が半端ではなく、とても採用できませんでした 他には、BizSoapを利用した形式では、サーバー側でADOレコードセットとしてデータ取得後に Saveメソッドを利用してXML形式で一旦データ出力し、Soap経由でテキスト送信し、クライアント 側では受信内容をファイルとして出力しADOレコードセットのLoadメソッドをCallしてXMLファイル から復元する方法を試したみましたが、これも採用できるものではありませんでした 素直にクライアント側でADOレコードセットとして取得可能な方法としては、リモートデータセット (Microsoft RDS)を利用したDComアプリケーションとして構築する方法もあるので試してみました これは、非常に高速で20万件程度のデータもほぼ一瞬でクライアント処理でき驚いたものですが、 MicrosoftのサポートページではRDS自体が今後は非推奨の技術として明記されており、その点 が引っかかっております どうしてもクライアント側で扱うデータ量が数十万件程度あることでパフォーマンスが重要になって しまいます。 オーバーヘッドがなるべく最小の形でClientDataSetからADOレコードセット形式に変換する方法は ないものでしょうか もしくは、素直にADOレコードセットとしてクライアント側で一発でデータ取得できれば嬉しいです 長文になってしまい申し訳ありません どうぞよろしくお願いいたします
127 名前:126 mailto:sage [2006/09/03(日) 09:22:44 ] 126です 大変失礼しました [ くだすれdELPHI(超初心者用) ] のスレの方に移動します
128 名前:デフォルトの名無しさん mailto:sage [2006/09/11(月) 00:03:00 ] >>1 問題だしておくれ 初心者でも10分ぐらいで解けて、面白味のあるものがいい
129 名前:デフォルトの名無しさん mailto:sage [2006/09/11(月) 08:47:19 ] じゃ、俺から問題 ボタンを二つ用意し、片方を非表示とする。 表示されているボタンを押すと、非表示だったボタンを表示し、押されたボタンを非表示に。 これを交互に繰り返せるものを作れ。
130 名前:デフォルトの名無しさん mailto:sage [2006/09/11(月) 10:14:48 ] くだらね┐(´〜`;)┌
131 名前:デフォルトの名無しさん mailto:sage [2006/09/11(月) 11:34:13 ] >>130 ならおまえがだせ。 と、いいたいところだが、これはどうだ? コントロールのオーナーをTForm1からTForm2に変える。
132 名前:デフォルトの名無しさん mailto:sage [2006/09/11(月) 12:30:13 ] 他のスレでTPrinterの話題が出てたんで。 用紙の左上から右に5cm、下に5cmの位置に 「はろーわーるど」と印字せよ フォントは何でもいい
133 名前:デフォルトの名無しさん mailto:sage [2006/09/11(月) 15:51:09 ] 初心者の基準を考えよ
134 名前:デフォルトの名無しさん mailto:sage [2006/09/12(火) 16:57:18 ] iniファイル作って 初期データ読み込み書き込みはどうだ?
135 名前:デフォルトの名無しさん [2006/09/12(火) 17:10:37 ] 初心者の基準を考えよ
136 名前:デフォルトの名無しさん mailto:sage [2006/09/12(火) 20:17:27 ] procedure TForm2.Button1Click(Sender: TObject); begin Button1.Visible:=not Button1.Visible; Button2.Visible:=not Button2.Visible; end; procedure TForm2.FormCreate(Sender: TObject); begin Button2.OnEnter:=Button1Click; Button2.Visible:=False; end;
137 名前:デフォルトの名無しさん mailto:sage [2006/09/12(火) 20:18:58 ] あ、途中で書き込み押しちゃった >>136 は>>129 への回答です 短くなるように工夫しました 採点お願いします
138 名前:デフォルトの名無しさん [2006/09/12(火) 20:25:08 ] わざわざコードで Button2.OnEnter:=Button1Click; Button2.Visible:=False; をする必要が無い。 0点。
139 名前:デフォルトの名無しさん mailto:sage [2006/09/12(火) 20:30:07 ] そりゃプロパティでも出来るけどあえて明示してるんでしょうが。
140 名前:デフォルトの名無しさん mailto:sage [2006/09/12(火) 20:42:49 ] ほかにもフォームの位置とかサイズとか、明示しろよ。
141 名前:デフォルトの名無しさん mailto:sage [2006/09/12(火) 20:54:32 ] こりゃいかん。
142 名前:デフォルトの名無しさん mailto:sage [2006/09/12(火) 21:10:23 ] てゆうか先生!なんでOnEnterやねん!Clickや!! と突っ込むところではないの?
143 名前:デフォルトの名無しさん mailto:sage [2006/09/12(火) 21:12:52 ] ほんとだwwww
144 名前:デフォルトの名無しさん mailto:sage [2006/09/12(火) 22:23:37 ] TD2006ってコンポにフォーカスさせてF1押してもヘルプでないよね
145 名前:デフォルトの名無しさん mailto:sage [2006/09/12(火) 23:28:50 ] しらねぇよ。Del6per の方がましだし、そんなの使うヤツの気が知れん
146 名前:デフォルトの名無しさん mailto:sage [2006/09/13(水) 03:30:32 ] procedure TForm1.Button1Click(Sender: TObject); const FILE_URL = '203.131.199.131:8060/koreiina '; FILE_PATH = 'test.mp3'; var fs: TFileStream; begin fs := TFileStream.Create(FILE_PATH, fmCreate); try with IdHTTP1 do begin Get(FILE_URL, fs); end; finally fs.Free; end; end;
147 名前:デフォルトの名無しさん mailto:sage [2006/09/13(水) 08:14:13 ] >>145 可哀そうに
148 名前:デフォルトの名無しさん mailto:sage [2006/09/13(水) 11:33:34 ] TDって略すとTurbo Debuggerかと思ってしまう俺。 (さすがにTokyo Disnylandとは思わないが)
149 名前:デフォルトの名無しさん mailto:sage [2006/09/13(水) 19:35:33 ] >>144 可哀そうに
150 名前:デフォルトの名無しさん mailto:sage [2006/09/13(水) 21:21:06 ] >>134 iniファイル読み書きの習作をつくってみました 普通にファイルの読み書きするより簡単かもしれない ちょっと感動!! procedure TForm1.Button1Click(Sender: TObject); var iniFile: TInifile; begin iniFile:=TIniFile.Create('ook.ini'); try count:=iniFile.ReadInteger('CounterApp', 'Count', 0); Inc(count); iniFile.WriteInteger('CounterApp', 'Count', count); finally iniFile.Free; end; ShowMessage(IntToStr(count)); end;
151 名前:デフォルトの名無しさん mailto:sage [2006/09/13(水) 21:30:06 ] フルパスつかっとけ
152 名前:デフォルトの名無しさん [2006/09/13(水) 22:06:31 ] EXEファイルと同じフォルダが前提ならそのままがいいと思うが。
153 名前:デフォルトの名無しさん mailto:sage [2006/09/13(水) 22:39:21 ] >>152 お前はそのままでいいよw
154 名前:デフォルトの名無しさん mailto:sage [2006/09/13(水) 23:24:42 ] >>152 は、今後大変だな・・・
155 名前:デフォルトの名無しさん mailto:sage [2006/09/14(木) 00:35:54 ] >>150 お主、俺を超えたな!?
156 名前:デフォルトの名無しさん mailto:sage [2006/09/14(木) 04:04:15 ] カレントディレクトリが変わるたびに、あちこちにいっぱい ini をつくるけどね
157 名前:デフォルトの名無しさん mailto:sage [2006/09/14(木) 05:19:24 ] TIniFile って相対パス渡すとプロファイルフォルダに作られなかったっけ?
158 名前:デフォルトの名無しさん mailto:sage [2006/09/14(木) 07:56:03 ] なんにせよそういう不安定要素は削除しないとな
159 名前:デフォルトの名無しさん mailto:sage [2006/09/14(木) 10:09:08 ] >Delphiで無料でプログラミングしてみるお >ttp://pc8.2ch.net/test/read.cgi/tech/1139675970/239 >ソースと実行ファイル >vipperup.orz.hm/miniup/src/viup0403.zip これって、もう手に入らないの?
160 名前:デフォルトの名無しさん [2006/09/14(木) 16:02:35 ]
161 名前:デフォルトの名無しさん mailto:sage [2006/09/29(金) 18:21:31 ] 授業を受けに来たのに先生がいませんよ。有給ですか?
162 名前:デフォルトの名無しさん mailto:sage [2006/09/29(金) 18:37:24 ] >>132
163 名前:デフォルトの名無しさん mailto:sage [2006/10/06(金) 22:25:29 ] 別のアプリケーションにエンターキーを送りたいのですが、アプリケーション側でなにか 対策をしているらしく、keybd_event ではエンターキーだけが認識されません。 (そのアプリ上でエンターキーを直接押せば認識される) こういった場合、どのようにすればいいのでしょうか?
164 名前:163 mailto:sage [2006/10/06(金) 22:49:19 ] >>163 すみません、、、スレ間違えました。別スレに行ってきます。
165 名前:デフォルトの名無しさん [2006/10/16(月) 03:02:58 ] Delphiで Vbでいうところの Validate イベントを実現したい。 どうすればいい? Procedure TXXXXX.OnValidate(Sender : TObject;Cancel : Boolean); Cancel := True; とすれば、フォーカスが抜けないようにする。 どうやったらできるんだろう? TEdit を継承して、 WndProc を オーバーライドして CM_EXIT をフックしてみた。 TEdit ではうまくいったが TComboBox ではうまくいかなかった(DropDownList では おk で DropDown ではNg だった)。 誰か経験者か、うまいやり方知ってるひと教えてください。
166 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 09:10:19 ] やったことないけどOnEnterでValidateすべきかどうか(どこかで)設定しといて WM_KILLFOCUS受け取ったときに上記状態なら指定されたところにチェックしにいくとか
167 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 09:25:28 ] OnChangeかOnExitの時に、 Cancel=Falseなら、Combobox.setfocus
168 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 10:42:34 ] procedure TForm1.hogeExit(Sender: TObject); begin チェック処理 if エラー then begin Enabled := False; Application.ProcessMessages; Enabled := True; hoge.SetFocus; end; end;
169 名前:デフォルトの名無しさん [2006/10/16(月) 16:57:31 ] TPrinterで印刷の集約指定等の設定変更できますか?
170 名前:デフォルトの名無しさん [2006/10/16(月) 17:36:53 ] 印刷設定ダイアログ結果をWindowsに反映する方法教えて下さいでつ。
171 名前:デフォルトの名無しさん [2006/10/17(火) 01:33:57 ] >>166 ありがとうございます。 WM_KILLFOCUSでも同じでした。 >>167 ,168 ありがとうございます。 TComboBox の派生クラスに OnValidate イベントを実装したいのです。
172 名前:デフォルトの名無しさん [2006/10/19(木) 10:09:05 ] DoExitをオーバーライドするのはどうですか? procedure TMyCombo.DoExit; var Cancel: Boolean; begin if Assigned(FOnValidate) then begin Cancel := False; FOnValidate(Self, Cancel); if Cancel then begin SetFocus; Exit; end; end; inherited; end;
173 名前:デフォルトの名無しさん [2006/10/19(木) 10:47:13 ] Delphi7 SQLServer2000 使用です。 exceptにて、EDatabaseErrorが発生した場合に、 そのエラーNoを取得したいのですが、どのように書けばよいのでしょうか? 現時点では下のように書くところまでやりました。 except on E: EDatabaseError do begin Result := False; end; end;
174 名前:デフォルトの名無しさん mailto:sage [2006/10/19(木) 11:09:58 ] >>173 いろいろ考えられるね。 ・E.MessageにエラーNoが入ってるならそこから抽出する。 ・E.ErrorNoみたいのがあるならそれを使う。 ・SQLServer2000にGetLastDBError見たいな関数があるならそれを利用する。
175 名前:デフォルトの名無しさん mailto:sage [2006/10/19(木) 11:19:34 ] >>173 BDE使ってるならEDBEngineErrorでcatchすれば エラーの詳細が取れるけど。 どうやって接続してるの?