1 名前: ◆XcB18Bks.Y mailto:sage [2008/03/12(水) 21:09:39 ] Delphi(デルファイ)について、他のスレッドでは書き込めない超低レベル、 もしくは質問者自身何が何だか分からない質問を 勇気を持って書き込むスレッドです。 Delphi使いが優しくコメントを返しますが お礼はDelphiの布教と初心者の救済をお願いします。 <前スレ> くだすれDelphi(超初心者用)その45 pc11.2ch.net/test/read.cgi/tech/1198802907/ <過去スレ> DelWiki避難所(Delphi 関連の過去スレッド) delwiki.info/?Delphi%20%B4%D8%CF%A2%A4%CE%B2%E1%B5%EE%A5%B9%A5%EC%A5%C3%A5%C9
282 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 07:57:39 ] 失礼します。 iniファイルを実行ファイルのフォルダじゃなくて、 ホームディレクトリに置きたいのですが、 どうすればよいのでしょうか。今は下のコードです。 IniFile := TIniFile.Create(extractFilePath(paramstr(0))+'test.ini'); 実行ファイルは同じだけど、iniは各個人で持ちたい。
283 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 08:37:53 ] マイドキュメントのフォルダの事なら support.microsoft.com/kb/194702/ja つまり uses shlobj ; の. SHGetSpecialFolderPath CSIDL_PERSONAL レジストリ でもアクセス出来る support.microsoft.com/kb/310746/ja でも、実行ファイルのあるフォルダにユーザー命のフォルダを掘ってアクセスする方がいいと思うよ。 ユーザー名は GetUserName/ GetUserNameEx で取れる
284 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 09:00:10 ] >>282 function GetMyIniFolderName: string; var uName: string; nSize: DWORD; begin nSize := 4000; SetLength(uName, nSize + 4); if GetUserName( PChar(uName), nSize) then begin SetLength(uName,nSize-1); end else uName := 'non'; Result := ChangeFileExt(paramstr(0) ,'' )+ '@'+uName+'.ini'; end; 実行ファイルのフォルダで "実行ファイル名@ユーザー名.ini" という感じで作る IniFile := TIniFile.Create( GetMyIniFolderName() );
285 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 09:38:50 ] GetEnvironmentVariableで環境変数取る手もあるな。 APPDATA=C:\Documents and Settings\UserName\Application Data USERPROFILE=C:\Documents and Settings\UserName >>283 のマイドキュメント/AppName/AppName.iniあたりに作るのが最も無難。 >>283 >でも、実行ファイルのあるフォルダにユーザー命のフォルダを掘ってアクセスする方がいいと思うよ。 小物フリーウェアではお手軽便利なやり方で長年使われてたけど、あまりよいやり方じゃないよ。 これが横行したのがPowerUser常用が強要されてXPのセキュリティがグダグダになった一因だし。 一長一短にしても今更推奨はできない。
286 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 09:45:08 ] とりあえず実行ファイルのフォルダに作ってみて作れなかったらマイドキュメントでいいと思うけどな
287 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 09:48:20 ] 2つのStringListを同期させるにはどうすればいいんでしょう たとえばStringListをソートした時にStringListBをAと同じように並べ替えたいのです
288 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 09:57:02 ] Textを全部コピーしたら。代入じゃなく。
289 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 09:58:28 ] 中身は違うものなんだよね? Objects の方にインデックスかポインタを無理やり入れておいたらどう?
290 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 10:08:22 ] >>288 ,289 ありがとうございます >288 2つのStringListは全く違うものなので使えなさそうです >>289 Objectsというプロパティに触ったことがないのでよく分かりません もう少し詳しくお願いできますか?
291 名前:287 mailto:sage [2008/04/10(木) 10:43:59 ] >>289 の通りにやってみたらできました! ありがとうございました
292 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 11:10:17 ] synapse の imap クライアントを使って、gmail (imap有効済) に imap で接続しようとしていますが 接続に失敗(エラー: 10091)してしまいます 設定など足りないところがありますでしょうか? uses imapsend; ------------------- with TIMAPSend.Create do try TargetHost := 'imap.gmail.com'; TargetPort := '993'; UserName := '***@gmail.com'; Password := '***'; Timeout := 5000; FullSSL := True; if Login then begin Caption := 'OK'; Logout; end else begin Caption := 'NG'; end; finally Free; end; -------------------
293 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 11:16:21 ] ComboBoxでドロップダウンした時だけ違う文字列を表示できる?
294 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 11:19:04 ] OnDropDownで combobox.items.commatext := 'a,b,c'; って話か?
295 名前:293 mailto:sage [2008/04/10(木) 11:35:11 ] >>294 ドロップダウン閉じた時にどうやって元に戻せばいい?
296 名前:292 mailto:sage [2008/04/10(木) 14:48:11 ] 自己解決しました synapse の imap クライアントは、ソースを追ってみると SSLが実装されてないような... Indy の TIdIMAP4 の IOHandler に TIdSSLIOHandlerSocketOpenSSL を入れて、 UseTLS := utUseImplicitTLS 、下記のコードで接続OKでした ------------- with IdIMAP41 do begin Host := 'imap.gmail.com'; Port := 993; ConnectTimeout := 3000; Username := '***@gmail.com'; Password := '***'; if Connect then begin Caption := 'OK'; Disconnect; end else begin Caption := 'NG'; end; end; -------------
297 名前:デフォルトの名無しさん [2008/04/10(木) 16:48:17 ] DateTimeToStrについて教えて下さい。 DateTimeToStrは、ロケールを意識して文字列にしてくれますが、 グリニッジ標準の文字を取得するにはどうすればよいのでしょう? さらに、夏時間とか絡んでくると、わけわからなくなりますが、 夏時間とかいうのもVCLのどこかに規定されているのでしょうか?
298 名前:ななしへたぐらま ◆XcB18Bks.Y mailto:sage [2008/04/10(木) 18:40:58 ] >>282 普通のアプリと同じように「ローカルアプリケーションフォルダ」に入れるのがよいのではないでしょうか。 usesにShlObjを追加して… { 現在のユーザーアカウントの「ローカルアプリケーションフォルダ」のパスを返す.} function GetLocalAppDataPath: string; var buf: array [0..MAX_PATH] of char; begin SHGetSpecialFolderPath(0, buf, CSIDL_LOCAL_APPDATA, False); Result := buf; end; { 現在のユーザーアカウント名を返す.} function GetCurrentUserName: string; var buf: array [0..MAX_PATH] of char; size: dword; begin size := MAX_PATH; GetUserName(buf, size); Result := buf; end; { 実行例 } procedure TForm1.ShowAppDataPathActionExecute(Sender: TObject); var Path: string; begin if LabeledEdit_CompanyName.Text = '' then raise Exception.Create('社名はちゃんと入れろよ!'); if LabeledEdit_AppName.Text = '' then raise Exception.Create('アプリ名もちゃんと入れろよ!'); Path := GetLocalAppDataPath + '\' + LabeledEdit_CompanyName.Text + '\' + LabeledEdit_AppName.Text; ShowMessageFmt('このパソコンの場合,ユーザー%sの設定ファイルは'#13#13'%s'#13#13'の下に保存すべきじゃ', [GetCurrentUserName, Path]); end;
299 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 18:49:07 ] ・ショートカットキーで起動 ・ショートカットを登録 このような単純な機能を持つデスクトップランチャーを、Delphiノータッチの人間が作ろうとしたらどれ位時間がかかりますか? 作成に掛かる時間…というよりも、ランチャー作成自体の難易度がどのようなものか教えていただけると幸いです C、Java、アセンブラは初歩を嗜んだ程度です
300 名前:297 mailto:sage [2008/04/10(木) 18:49:15 ] ヘルプ検索してみましたが、 Delphiってグリニッジ時間の文字列を作りだすメソッド無いんですね。
301 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 23:09:45 ] >>299 Delphiはじめて二番目に作ったのがランチャだった 確か一日一〜二時間やって一ヶ月くらいで使えるものにはなったと思う その後使い込んでいくウチにバグ取りや機能追加で現在に至る 人に配れるレベルになったのは半年目くらいか(配っとらんが) おれはCもなんも知らない状態で入門書とBBSフォーラムの情報だけだった いまはグーグル先生もいるし質問先もたくさんあるから あとはモチベーション次第なんぢゃね?
302 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 23:12:03 ] >>293 オーナードロー
303 名前:301 mailto:sage [2008/04/10(木) 23:15:33 ] >>299 C#の初心者すれでもマルチポストしたのか Delphiやってみたいってわけではなかったんだ ●rz
304 名前:282 mailto:sage [2008/04/10(木) 23:28:47 ] 遅レスすみません。 >298のコードを使わせていただきました。 いくつかアイデアをもらって心に感じるものがありました。 ありがとう。
305 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 01:13:54 ] >300 日付時刻の扱いについて。TDateTime型はローカル、DST、UTC等の配慮は含まれていない。 よってこれらの配慮を要する場合はTSystemTime構造体を使用してGetLocalTimeまたは GetSystemTime(いずれもWin32API)で取得し、これをSystemTimeToDateTimeで TDateTimeに変換して使用する必要がある。またDSTについてはWindowsの実装がナニなので (基本的に今現在のDSTの適用状況しか信用できず、たとえば数年前の特定の日付における DSTの適用状況はわからない)、自前で実装する必要がある。
306 名前:300 mailto:sage [2008/04/11(金) 09:10:00 ] thx!>>305 現在の時間だけで良いので、OKです。 つまり、グリニッジ時間を知りたければ、TDateTimeは使えなくて、Win32に頼るってことですね。
307 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 00:05:32 ] Delphiを勉強するにあたってお勧めの本を教えてください C, C++, Javaで開発をしたことがあります
308 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 00:41:29 ] >>309 もちつけ
309 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 00:54:13 ] ぺったん。ぺったん。
310 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 01:07:19 ] つるぺったん。
311 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 02:11:57 ] >>301 >>303 あ、いや、C#スレでDelphiをオススメされたんでこっち来ました ありがとうございます。半年ならちょっとやってみたいです この言語で作ってみたいと思ってます 近場の書店巡ってもCだのJavaだのHTMLだのの教本しか置いて無かったです Amazonを見てみたら評価の高い教本はあるものの、中古で異常な価格のモノばかりでした 何か初心者オススメの本は無いですか? Webで資料もみますが、とりあえず1冊は教本を持っておきたいと考えています
312 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 02:17:08 ] 今から始めるなら迷うまでもなくC#だろ・・・
313 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 02:37:53 ] >>311 マニュアルの文法書。
314 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 08:07:21 ] >>311 IDEから文法までのを一通り説明してあるやつで Turbo Delphiか2005用のを買っといたら。 Delphi 2005 プログラミングテクニック Vol.1入門編が無難な感じ。 シリーズ化されてて興味のある分野のものを買いたせるし。
315 名前:デフォルトの名無しさん [2008/04/12(土) 11:08:06 ] Turbo Delphi無料版でアプリを作りたいのですが、 ソースを難読化するツールってありますか?
316 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 11:32:27 ] しんぱいしなくても>>315 のソースはきっと読みづらい。
317 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 13:13:12 ] .NETならともかくWin32でビルドしたら 逆アセンブルしか手がないからそんなに心配することもない。
318 名前:315 mailto:sage [2008/04/12(土) 14:21:40 ] >>316 コメントでバレそうです。 >>317 DEDEなるデコンパイルソフトがあるらしいのですが、大丈夫でしょうか?
319 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 14:29:26 ] コメント・・
320 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 14:32:01 ] >>315 まずはどういう動機でどういうレベルの誰から何を守りたいのかをはっきりさせよう。
321 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 14:59:30 ] フォームに乗せなきゃソース見れないだろ
322 名前:315 mailto:sage [2008/04/12(土) 15:26:27 ] >>320 例えば姓名判断や競馬の予想のような、 条件を入力すると、ある専門知識に基づいた計算結果が返ってくるソフトを考えています。 バレたくないのは、その結果を算出する際のアルゴリズムやデータです。 すぐに解析されてしまうということは、 せっかく苦労してアルゴリズムやデータを作成しても、 簡単にコピー(改良版)が作られる可能性があるわけですから、躊躇しています。
323 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 15:45:32 ] dedeで生成したソースを読めるような奴はそうそういないと思うが、もしいたら諦めるしかない なんか特殊な方法で圧縮するとかそんな感じにしなきゃ無理な気がする まぁその前に>>315 が作るツールにそこまでしてソースを見るほどの価値があるかどうかの方が重要だが
324 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 16:00:01 ] 一応antiDeDeとかもあるけどね FindWindowでDeDeにWM_CLOSE投げるだけだけど
325 名前:315 mailto:sage [2008/04/12(土) 16:30:52 ] >>323 >dedeで生成したソースを読めるような奴はそうそういないと思うが、もしいたら諦めるしかない 実はdedeの詳細を分かっていなかったのですが、それなら安心です。 シェアウェア作家や商用アプリを作ってる方も、 特に気にしていないということですかね。 >>324 ありがとうございます。参考になります。
326 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 17:19:04 ] www.moonlight.gr.jp/~el/delphi/bedit/step2.html の真ん中のを参考にして バイナリを読み込んでみたんですけど、かなり時間が掛かってしまいます どうすれば読み込み時間を短縮できるでしょうか?
327 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 17:26:40 ] 遅いのは1byteずつ読んでいるから。 ある程度の大きさのバッファを用意して、 ReadではなくBlockReadでバッファ長のバイト数を読み込むようにする。 「BlockRead」をヘルプで引くかで、ゴーグレッドれば、サンプルが出てくる。
328 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:10:46 ] 生成した8個のTShapeのVisibleをFalseにしたりTrueにしたりするところで とても時間が掛かっている(1秒くらい)のですが、原因がさっぱり分かりません。 このような問題が出た方いますか。
329 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:20:45 ] 再現するコード晒せ
330 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:47:02 ] TShapeなんて使ったことないけど 他のコントロールの再描画が発生して重いイベントハンドラが呼ばれているのかも。 プロジェクトオプションのコンパイラのデバッグ版DCUにチェックして再構築して 再描画中に固まるタイミングで一時停止してみたら。
331 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 19:21:44 ] >>329 普通に新規で最低限のコードだと再現しないんです。 >>330 ありがとうございます。一時停止はタイミングが難しくてなかなか 思うようにいかないし何回もやってるうちにWindowsが固まるし… 再描画の他のコントロールのイベントは見てなかったのでチェックしてみます。
332 名前:デフォルトの名無しさん [2008/04/12(土) 20:17:28 ] DICOMをDelphiで勉強しようと思ってopen sourceであるezDICOMを見ているので すが、childwin.pasで const gMouseDown : boolean = false; とあり、その以降で gMouseDown := true; となっていて、エラーがでて代入できない左辺値ですと表示されます。 constだからそういうエラーになるのですか?もしそうなら あまり当てにしてはならないコードと判断すべきなのでしょうか?
333 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:31:26 ] 328ですが、やっぱり分からないです。描画関連のイベントでデバッグ用の TMemoに出力するようにしたのですが、Visible := True; の前には表示 されません。困ったです。デバッグの良いアイデアか疑うべき点など ありますでしょうか。
334 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:51:35 ] >332 constへの代入はコンパイルオプションにより可能なこともある。
335 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:53:18 ] いやだからソースどっかにあげろよ
336 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:53:51 ] >333 TShapeやTLabelのようなグラフィックコントロールの描画はコンテナの描画から呼び出される。 というわけでコンテナのPaintを起点に追うと何かわかるかも。
337 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 21:00:06 ] Delphiはいい加減標準でプロファイラつけろよな
338 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 21:13:25 ] >>333 プロジェクトのバックアップとってデバッグ用のコード仕込みまくって いじりまくってブレーク張りまくって根性でステップ実行しまくる。
339 名前:デフォルトの名無しさん [2008/04/12(土) 21:29:28 ] 332ですが >334 コンパイルオプションですね。探してみます。 >335 私への返事と解釈して↓のstandaloneのところですが ttp://www.sph.sc.edu/comd/rorden/ezdicom.html
340 名前: ◆XcB18Bks.Y mailto:sage [2008/04/12(土) 22:16:42 ] >>332 「型付き定数への代入」というやつです。 初期のDelphiコンパイラではデフォルトで有効になっていたのですが 途中からデフォルトで無効になりました。 プロジェクト設定の「コンパイラ」設定で有効にするのが手っ取り早い対処法ですが 型付き定数限定とはいえ定数の値を任意に変えられてしまうのはバグの元ですから避けるべきです。 (デフォルトが禁止になったのもバグ回避と思われます) そのソースファイルの先頭に「型付き定数への代入」を有効にするコンパイラ指令 {$J+} を埋め込むのが良いでしょう。
341 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 23:11:55 ] >>327 ものすごく遅くなってしまいましたがやってみます ありがとうございました
342 名前:デフォルトの名無しさん [2008/04/13(日) 00:05:13 ] >>315 誰もおまい見たいなレベルの実行ファイルを解析したりしないよw
343 名前:デフォルトの名無しさん [2008/04/13(日) 07:26:17 ] > 340 ありがとうございました。おかげさまで無事、コンパイルでき動くようになりました。 これで解析がはかどります。本当にありがとうございました。
344 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 11:21:33 ] >>342 「ある専門知識に基づいた計算結果」を求めてダウンロードするってことは、 少なくともその内容に関心があるってことでしょ コーディングの巧拙は関係なし まあ専門知識を持たないおまいには分からないだろうけどw
345 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 11:46:30 ] >>315 CGIにしたらどう? サーバ側で計算すればいい。
346 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 13:15:45 ] >345 サーバーをハッキングされる可能性があるのでは?
347 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 13:23:00 ] まだ引っ張るの?
348 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 15:14:53 ] SJIS最速の正規表現ライブラリってどれ?
349 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 15:23:29 ] 鬼車をobjのLinkで使う。。。とかかな? WinAPI使ってないから改造しないと曖昧検索(同形異区の文字や 全角大小文字の一致とか、)の挙動がWSHとかと違うと思ったけど
350 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 01:41:08 ] >>346 泥棒にPC盗まれる可能性も考えれば、 アルゴリズムは暗記して、そのつど出向いて計算してあげたらよさそう。
351 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 11:10:07 ] 定数を const HAIRETU: Array[0..10] of String = ('a','b','c','d','e','f','g','h','i','j','k'); HAIRETU: Array[100..110] of String = ('z','y','x','w','v','u','t','s','r','q','p'); のように離れて宣言することは出来るのでしょうか?
352 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 11:50:35 ] 別unitに分けるなら出来るよ。 アクセスするときは ユニット名.HAIRETU[4] のようにアクセスする。
353 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 12:22:47 ] 無理
354 名前:351 mailto:sage [2008/04/14(月) 18:52:37 ] 遅くなりましたがありがとうございました 変数でやる時には配列に一気に追加する方法はあるのでしょうか?
355 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 20:11:58 ] Delphiに疎な配列がないのできれいに書くのは難しい。 const HAIRETU: array[0..110] of PChar = ('a','b','c','d','e','f','g','h','i','j','k', nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 'z','y','x','w','v','u','t','s','r','q','p'); if HAIRETU[4] <> nil then ShowMessage(HAIRETU[4]); const HAIRETU: array [0..2] of record n: Integer; v: String; end = ( (n:0; v:'a'), (n:1; v:'b'), (n:100; v:'z') ); for i := 0 to 2 do if HAIRETU[i].n = 1 then ShowMessage(HAIRETU[i].v); HAIRETU := TStringList.Create; HAIRETU.Values['0'] = 'a'; HAIRETU.Values['1'] = 'b'; HAIRETU.Values['100'] = 'z'; ShowMessage(Hairetu.Values['0'])
356 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 09:27:19 ] 関数を作ってみた procedure StrToArray(var Hairetu: array of string; Start: Integer; Args: array of string); var I: Integer; begin I := Length(Args) -1; while (I >= 0) do begin Hairetu[I + Start] := Args[I]; Dec(I); end; end; // ----------------- // StrToArray(HAIRETU, 0, ['a','b','c','d','e','f','g','h','i','j','k']); StrToArray(HAIRETU, 100, ['z','y','x','w','v','u','t','s','r','q','p']);
357 名前:デフォルトの名無しさん [2008/04/15(火) 14:18:16 ] IMEのON、Offの仕方。 IMEの現在の状態を監視するには、なんと入力すればいいか教えてください。 ネット検索したんですが、使い方がよくわかりませんでした。
358 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 14:28:00 ] ImmなんちゃらってAPIだったっけかな
359 名前:デフォルトの名無しさん [2008/04/15(火) 14:46:32 ] >>358 ありがとうございます。 それの具体的な使い方がわからなくて・・・。
360 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 14:53:10 ] 私なんて、現在IMEがONかどうかを調べることすら出来なかったよ!。
361 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 15:31:20 ] Delphiに直接関係はないな。 ttp://m--takahashi.com/bbs/pastlog/A0600/A0534.html
362 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 18:37:32 ] Delphi5で商用利用できるフリーのXMLのクラスライブラリってないかな?
363 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 19:10:32 ] Delphi Personal version6 を使ってるんですが 自分で作ったソフトを公開する時に気をつけることってありますか コンパイラオプションを変えたりとか、そういう事するもんなんでしょうか?
364 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 22:10:16 ] Xp スタイルに対応したか? Vista 対策はOK? くらいかな。
365 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 23:23:39 ] >357 ImeModeプロパティじゃだめなん?
366 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 23:45:49 ] 皆さんエディタとか何使ってますか。 beginとendを強調表示とかしてくれるエディタとかありませんかね。
367 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 23:48:47 ] サクラエディタとか。
368 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 23:49:24 ] EmEditor は、Delphi の予約語を強調表示できるよ。
369 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 23:50:09 ] IDEか秀丸だな。
370 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 00:04:37 ] すみません、質問です。 TWebBrowser で表示しているWebページの高さを OleObject.document.body.scrollheight から取得しているのですが、 どうも正確な値がとれていない時があるようです。 うまくいく場合のあるのですが、 Google 検索結果ページでの、scrollheight の値が 明らかにこっちが想定している値と違うのです。 何か心当たりがある方いらっしゃいましたら、 教えていただけたら助かります! #スクロールバー分は考慮してます。
371 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 09:07:56 ] >>370 ブラウザ内部のサイズより、HTML描画された内容が小さい場合とか?
372 名前:デフォルトの名無しさん [2008/04/16(水) 09:21:58 ] メインメニュー・コンポーネントについて質問です。 大見出し ├小見出し1 ├小見出し2 ├小見出し3 ・・・ という構成のメニューがあったとして、 小見出しを「配列」で一括管理することはできるのでしょうか? 各小見出しのオブジェクトインスペクタのname項目では、N1、N2、N3... などとなっているので、配列名にすることができません。 (このままだと、「全てのチェックボックスを外す」などの記述が大変です) よろしくお願いします。
373 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 09:24:08 ] TStringList.SaveToFileで文字コードをUTF-8で保存したいのですが どうすればいいでしょうか?htmlファイルを生成しています。 WinXP+Delphi7Pro
374 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 10:13:17 ] delphiで通販サイトみたいなの作ってみようと思うんだけど 何か最低限これはみとけみたいなサイトあります?
375 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 10:18:16 ] >>372 大見出し(MenuItem1)から小見出し操作するなら for i := 0 to MenuItem1.count - 1 do begin MenuItem1.Items[i].checked := false; end; メインメニュー(MainMenu1)から大見出し(例としてメインメニューの一番目)を指定して 小見出しを操作したいなら for i := 0 to MainMenu1.Items[0].count - 1 do begin MainMenu1.Items[0].Items[i].checked := false; end; でいけると思う。
376 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 10:18:24 ] Delphiでウェブアプリなんだー。 ちょ、マイナーだね。 ウェブで無償配布ツールものとかドライバ設定系デスクトップアプリでは、某アイコンを良く見るけどね。
377 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 10:25:02 ] >>373 UTF8Encode
378 名前:372 mailto:sage [2008/04/16(水) 10:34:44 ] >>375 ありがとうございます!とても助かりました。
379 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 10:40:52 ] >>373 って for i := 0 to Memo1.Lines.Count-1 do Writeln(f, WideString(Memo1.Lines[i])); ってやるだけじゃだめなん?WideStringとUTF8って別もの? そこらへんいまだに全く把握してないんだけど どこかにアホグラマ向けの解説サイトとかないのかな。
380 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 10:52:30 ] 別物。
381 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 11:21:33 ] >>376 htmlやcss、DB何かも飽きるほど使った事あるからいけるかなぁとか 思ったりしてるんだけどセキュリティ関連がよくわかんないのよねぇ SQLインジェクションやクロスサイト云々とかそういうのはわかるけど 何か他にもいろいろありそうで怖い Webアプリって今はjavaなんかがメジャーなのかな?
382 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 15:43:07 ] DephiFのIDEモードってどうやるんだっけ。 他のウィンドウが見えるSDIになっててやりづれぇ