くだすれDelphi(超初心者用)その37
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2006/12/08(金) 16:03:27他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を
勇気を持って書き込むスレッドです。
Delphi使いが優しくコメントを返しますが
お礼はDelphiの布教と初心者の救済をお願いします。
<前スレ>
くだすれDelphi(超初心者用)その36
http://pc8.2ch.net/test/read.cgi/tech/1159485364/
<過去スレ>
http://delwiki.info/?Delphi+%B4%D8%CF%A2%A4%CE%B2%E1%B5%EE%A5%B9%A5%EC%A5%C3%A5%C9 (上のDelWiki避難所内)
または>>2-10あたりにある過去スレURL
<関連スレ>
※Delphiに関係してる雑談および関係してない雑談については以下でどうぞ
バカボンのDelphi不買・販促・その他談話室その29
http://pc8.2ch.net/test/read.cgi/tech/1153227982/
<その他>
BorlandHomePage
http://www.borland.com/jp/
DelWiki避難所
http://delwiki.info/
BDN(BorlandDeveloperNetwork)
http://bdn.borland.com/jp/delphi
過去スレは>>2-10あたりのどこかに
0002デフォルトの名無しさん
2006/12/08(金) 16:05:57<過去スレ>
01:http://pc5.2ch.net/tech/kako/1051/10518/1051882835.html
02:http://pc5.2ch.net/tech/kako/1053/10537/1053757982.html
03:http://pc5.2ch.net/tech/kako/1055/10559/1055986736.html
04:http://pc5.2ch.net/tech/kako/1058/10588/1058834815.html
05:http://pc5.2ch.net/tech/kako/1061/10610/1061090908.html
06:http://pc5.2ch.net/tech/kako/1063/10632/1063202727.html
07:http://pc5.2ch.net/tech/kako/1065/10651/1065195699.html
08:http://pc5.2ch.net/tech/kako/1068/10682/1068201045.html
09:http://pc5.2ch.net/test/read.cgi/tech/1071294733/
10:http://pc5.2ch.net/test/read.cgi/tech/1074523803/
11:http://pc5.2ch.net/test/read.cgi/tech/1076609666/
12:http://pc5.2ch.net/test/read.cgi/tech/1076610073/
13:http://pc5.2ch.net/test/read.cgi/tech/1081003641/
14:http://pc5.2ch.net/test/read.cgi/tech/1085239007/
----(続く)----
0003デフォルトの名無しさん
2006/12/08(金) 16:06:2715:http://pc5.2ch.net/test/read.cgi/tech/1087823906/
16:http://pc5.2ch.net/test/read.cgi/tech/1089779142/
17:http://pc5.2ch.net/test/read.cgi/tech/1091671391/
18:http://pc5.2ch.net/test/read.cgi/tech/1093996761/
19:http://pc5.2ch.net/test/read.cgi/tech/1097454588/
20:http://pc5.2ch.net/test/read.cgi/tech/1101530485/
21:http://pc5.2ch.net/test/read.cgi/tech/1104511938/
22:http://pc5.2ch.net/test/read.cgi/tech/1107332482/
23:http://pc8.2ch.net/test/read.cgi/tech/1110470895/
24:http://pc8.2ch.net/test/read.cgi/tech/1115581376/
25:http://pc8.2ch.net/test/read.cgi/tech/1119008091/
26:http://pc8.2ch.net/test/read.cgi/tech/1121249711/
27:http://pc8.2ch.net/test/read.cgi/tech/1126590039/
28:http://pc8.2ch.net/test/read.cgi/tech/1131168199/
----(続く)----
0004デフォルトの名無しさん
2006/12/08(金) 16:06:5929:http://pc8.2ch.net/test/read.cgi/tech/1135866929/
30:http://pc8.2ch.net/test/read.cgi/tech/1138370150/
31:http://pc8.2ch.net/test/read.cgi/tech/1142594051/
32:http://pc8.2ch.net/test/read.cgi/tech/1145267913/
33:http://pc8.2ch.net/test/read.cgi/tech/1148378877/
34:http://pc8.2ch.net/test/read.cgi/tech/1151143010/
35:http://pc8.2ch.net/test/read.cgi/tech/1155263138/
36:http://pc8.2ch.net/test/read.cgi/tech/1159485364/
37:http://pc8.2ch.net/test/read.cgi/tech/1162458229/
<関連?スレ>
Delphi初心者のための寺子屋
http://pc8.2ch.net/test/read.cgi/tech/1132756268/
【Delphi】 Indyコンポーネント 【C++Builder】
http://pc8.2ch.net/test/read.cgi/tech/1093654251/
【Delphi】 ゲームつくるぞ(゚Д゚)ゴルァ 2【Delphi】 (※ゲーム制作技術板)
http://pc8.2ch.net/test/read.cgi/gamedev/1097836469/
※ほかにもスレッドあります。
0005デフォルトの名無しさん
2006/12/08(金) 16:08:06<前スレ>
くだすれDelphi(超初心者用)その37
http://pc8.2ch.net/test/read.cgi/tech/1162458229/
0006デフォルトの名無しさん
2006/12/08(金) 16:17:34どんまい。
0007デフォルトの名無しさん
2006/12/08(金) 17:30:190008デフォルトの名無しさん
2006/12/08(金) 17:33:270009デフォルトの名無しさん
2006/12/08(金) 18:49:40レポートの設定の用紙サイズに出てこないのですが。
0010デフォルトの名無しさん
2006/12/08(金) 20:19:47ランダムに値を一個選んで、そのたびにその値を配列から
削除していく方法があるけど駄目か?
0011デフォルトの名無しさん
2006/12/08(金) 20:25:34IDEっていうのは、統合開発環境のこと。ソフトを作るソフトのことです。
Delphiで言えば、Delphi自身ですね。
で、ターボの開発環境は、前スレにも出ていましたが、Delphi6に比べ、*重い*、*バグバグ*なわけです。
ただ、ターボの方が、新機能が追加されていたりします。
IDEから出力したソフト、つまり、あなたが、開発したソフト自身は、IDEとは、別です。
普通に動きます。キビキビ動きます。ターボでもDelphi6でもどちらも問題はありません。
0012デフォルトの名無しさん
2006/12/08(金) 20:46:18Win2000 とVista みたいなものだな。
0013ななしへたぐらま ◆XcB18Bks.Y
2006/12/08(金) 22:01:53>>11
統合開発環境といわれてもピンと来ない方も多そうですね.
その昔,Windowsが普及する前,MS-DOSというOSが使われていた時代は
・ソースコードを編集するソフト(テキストエディタ)と
・ソースコードを実行ファイルに変換するソフト(コンパイラ,リンカ)と
・実行ファイルをデバッグするソフト(デバッガ)は
それぞれ別のソフトであり,別々に実行する必要がありました.
これらをひとつのソフトで全部行えるようにしたのが統合開発環境です.
BASIC言語ではかなり昔から統合開発環境になっていましたが機能は今に比べると貧弱でした.
現在のような統合開発環境を実現したのがボーランドのターボパスカル,Delphiの先祖です.
0014デフォルトの名無しさん
2006/12/08(金) 23:16:230015デフォルトの名無しさん
2006/12/08(金) 23:19:190016デフォルトの名無しさん
2006/12/08(金) 23:52:09Vistaは、重いだけでなくバグバグなんすかw
きっついな
0017デフォルトの名無しさん
2006/12/09(土) 00:45:14> rmklever.com というサイトでいくつかの追加テーマや、
> TBX 用追加コンポーネントが公開されています。Toolbar2000 や
> TBX の実力を確認したい人は、ページ左下にある EXE demo がおすすめ。
http://www.rmklever.com/delphitbx
の左下のEXE demoですが、ダウンロードできますか?
リンク切れしてるのかな・・・
0018デフォルトの名無しさん
2006/12/09(土) 00:51:14それじゃ遅い。配列から削除するのは後方の項目をコピーしなきゃならんので、
シャッフルで内容交換するより、遅い。10万項目あったら100倍以上
時間がかかるだろうよ。
0019デフォルトの名無しさん
2006/12/09(土) 01:00:53> ダウンロードできますか?
できませんね。
メールで聞いてみたらどうでしょう。
0020デフォルトの名無しさん
2006/12/09(土) 01:11:31スレ立て乙です。
>>11
> 普通に動きます。キビキビ動きます
D6はメモリマネージャが〜とか、要らないツッコミ入れる香具師が出る悪寒…。
0021デフォルトの名無しさん
2006/12/09(土) 01:30:52くあしく
0022デフォルトの名無しさん
2006/12/09(土) 01:50:11Form1 f1 = new Form1();
f1.Show();
誰か教えてください><
0023デフォルトの名無しさん
2006/12/09(土) 01:52:43Form1.Show;
てことじゃなくて?
0024デフォルトの名無しさん
2006/12/09(土) 01:55:02早速ありがとうございました。
そういうことでした。
タスクバーに表示されないのか・・・
0025デフォルトの名無しさん
2006/12/09(土) 01:55:22TurboはFastMMやFastCodeなんかの在野の成果物をライブラリに取り込んでいる。
D6でもライブラリを落とせば普通に使用できるけど。
0026デフォルトの名無しさん
2006/12/09(土) 02:01:06SetWindowLong で WS_EX_APPWINDOW 追加する
0027デフォルトの名無しさん
2006/12/09(土) 02:14:36問い合わせてみました。
BDS2006で、TBXインストール成功した方いませんか?
いまいちわかんない・・・。
002822
2006/12/09(土) 02:47:32SetWindowLong(Application.Handle,GWL_EXSTYLE,WS_EX_APPWINDOW);
Form1 := TForm1.Create(Self);
Form1.Show();
表示されないよ(つд`
ぐぐったら表示されないようにする方法はでてくるんだけど・・・
0029デフォルトの名無しさん
2006/12/09(土) 03:04:42タスクバーに表示したいってこと?
MS-Excelで複数のファイルを開いたときみたいに
だったらCreateParamsメソッドをオーバーライドしてそこでWS_EX_APPWINDOW;
procedure TForm1.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW;
end;
ちなみにShowメソッドでフォーム表示する場合は
フォームのonCloseイベントで解放処理を入れないとメモリリークする
下の2行を忘れずに
Action := caFree;
Form1 := nil;
0030デフォルトの名無しさん
2006/12/09(土) 03:13:210031デフォルトの名無しさん
2006/12/09(土) 03:49:32先にGetWindowLongを使って既に設定されているスタイルを取得するんだ
そうしないと他のスタイルが消えてしまうぜ
ちなみに渡すのはForm1.Handleだぜ
Applicationてのは見えないウインドウでありForm1のオーナーなんだ
0033デフォルトの名無しさん
2006/12/09(土) 08:22:56[Ctrl]+[Shift]+↑↓で宣言とコードを移動できること。
0034デフォルトの名無しさん
2006/12/09(土) 09:26:11ttp://beeography.wordpress.com/2006/09/12/just-wanna-let-you-know/
ここに書いてある方法でTurbo Exprorerでも合法にコンポ入れれるよ
117 名前:デフォルトの名無しさん[sage] 投稿日:2006/11/04(土) 18:02:21
あとこれ。
dclusr経由のコンポーネントインストールが、ライセンス違反かどうかの話。
ttp://hpcgi1.nifty.com/MADIA/DelphiBBS/wwwlng.cgi?print+200609/06090014.txt
0035デフォルトの名無しさん
2006/12/09(土) 12:55:43D6Proは出来るけど、Personalは出来ないのか
0036デフォルトの名無しさん
2006/12/09(土) 16:47:000037デフォルトの名無しさん
2006/12/09(土) 17:07:00追ってなかったんだが、それ、結局は白ということに落ちついてたんだ。へぇ。
0038デフォルトの名無しさん
2006/12/09(土) 17:25:38下っかわ、涙目で粘着してるやつ笑えるねw
0039デフォルトの名無しさん
2006/12/09(土) 17:58:29アップデートで抜け道消滅だけどね。
0040デフォルトの名無しさん
2006/12/09(土) 20:39:14つまり:
if hoge then
hoge;
じゃなくて:
if hoge then
hoge;
0041デフォルトの名無しさん
2006/12/09(土) 20:39:48ifのときだけインデントを2文字じゃなくて3文字にするのは俺だけじゃないはず
つまり:
if hoge then
hoge;
じゃなくて:
if hoge then
hoge;
0042デフォルトの名無しさん
2006/12/09(土) 20:41:570043デフォルトの名無しさん
2006/12/09(土) 21:06:29ヒントをください。
type
xxx = record
a: array[1..3] of Integer;
b: array[1..3] of Integer;
c: array[1..3] of Integer;
end;
var
yyy:xxx;
zzz:TextFile;
m: array[1..3] of Integer;
n: array[1..3] of Integer;
o: array[1..3] of Integer;
a[1...3]はm[1..3]と同値をとらせる
同様に、bはn、cはoと対応させる
保存時に対応する変数をレコード変数にいれて保存し
次回起動時にテキストから呼び出した値を適切な変数に代入
というのを、プログラムが閉じるときかなにかに自動で保存して呼び出したいのです。
レコードをつかわずに簡単な方法とかこうすれば軽くなるとかいうのもあれば教えてほしいです。
釣りかと思う人もいるかもしれませんけど、本当に困ってます。
0044デフォルトの名無しさん
2006/12/09(土) 21:26:49savetofileとloadtofileを使えば簡単に
ファイルに読み書きできるぞ
0045デフォルトの名無しさん
2006/12/09(土) 21:42:18ぐぐってみましたが例文が見つかりません。
良ければ使い方を例文でおしえてくれませんか?
0046デフォルトの名無しさん
2006/12/09(土) 21:45:180047デフォルトの名無しさん
2006/12/09(土) 21:58:16今はどこを見ればいいのでしょうか?
0048デフォルトの名無しさん
2006/12/09(土) 22:05:55どの部分がわからないのか。
・起動時と終了時に処理させる方法。
・変数の中身をファイルに保存する方法。
・Integer を文字列にする方法。
0049デフォルトの名無しさん
2006/12/09(土) 22:13:01まず、保存したい変数がintgerなのでInttoStrにするまではわかるんですけど
それを狙った行に保存する方法がわからないのと
起動時に処理はメインフォームのonCreateで手続きすればいいのはわかりますが
終了時に関してはわかりません。
たびたびすみません
0050デフォルトの名無しさん
2006/12/09(土) 22:37:02Wiki を直しておきました。
0051デフォルトの名無しさん
2006/12/09(土) 22:45:41起動時にiniファイルがないまま起動したらエラーがでました。
エラーを出さずにiniファイルを作成し、仮にiniファイルがあるばあいは上書きしない方法がありましたらおしえてください。
0052デフォルトの名無しさん
2006/12/10(日) 00:20:45『オブジェクト参照がオブジェクトインスタンスに設定されていません。』と出て
右クリックメニューが使えないのですが、これはバグですか?
0053デフォルトの名無しさん
2006/12/10(日) 00:30:310054デフォルトの名無しさん
2006/12/10(日) 00:33:360055デフォルトの名無しさん
2006/12/10(日) 00:55:400056デフォルトの名無しさん
2006/12/10(日) 02:42:06どうすればいいのでしょう。
0057デフォルトの名無しさん
2006/12/10(日) 02:50:380058デフォルトの名無しさん
2006/12/10(日) 02:55:120059デフォルトの名無しさん
2006/12/10(日) 02:57:12できました。
ありがとうございます。
0060デフォルトの名無しさん
2006/12/10(日) 03:01:32既にあるコンポーネントは消して同じコンポーネントを作り直せ
0061デフォルトの名無しさん
2006/12/10(日) 03:06:550062デフォルトの名無しさん
2006/12/10(日) 03:08:450063デフォルトの名無しさん
2006/12/10(日) 04:49:460064デフォルトの名無しさん
2006/12/10(日) 06:13:28TControl、TWinControl、OnDblClickに限ったことではないのですが
TTabSheetでダブルクリックイベントを使いたいと思って
ヘルプで上位コンポーネントをたどって行ったところ
TControlではOnDblClickがあるのに、それより下位のコンポーネントでは
OnDblClickが無かったので不思議に思いました。
0065デフォルトの名無しさん
2006/12/10(日) 07:21:37プロテクトメンバだからオーバーライドして可視性を変更しない限り外から見えないだけ。
ヘルプに書いてないのは、上位クラスから変化がなければ何も書かないのが習わしだから。
FreeがTObjectのところにしか載ってないのと同じ。
ただし自分で既存のクラスを継承してOnDblClickをpublicやpublishにするなら、
プロパティの可視性以外に、ControlStyleを適切に設定するなど、
その処理をサポートするためのコードを自分で追加しないといけない。
0066デフォルトの名無しさん
2006/12/10(日) 11:30:14リンク先をよく読めば分かるけどアップデートしてもコンポ追加できるよ
0067デフォルトの名無しさん
2006/12/10(日) 11:47:58でも今度は不正行為になるんじゃないの。
0068デフォルトの名無しさん
2006/12/10(日) 12:19:24も答えてください、お願いします。
0069デフォルトの名無しさん
2006/12/10(日) 13:16:21FileExists で判定するとか。
0070デフォルトの名無しさん
2006/12/10(日) 13:19:05ありがとうございます。
上位にあるものは無条件で下位でも使える、オブジェクトインスペクタでも可視になる、と思ってました。
0071デフォルトの名無しさん
2006/12/10(日) 13:49:18やっつけた間違いあったらだれか補完よろ
var
TempList: TStrings; Filename : string;
a: array of integer; i: integer; Max: Integer;
Filename := GetCurrentDir + '\test.txt';
//GetCurrentDir=実行中のプログラムのフォルダを表わす
//ファイルからの読み込み
TempList := TStringList.Create;
try
TempList.LoadFromFile(Filename);
if TempList.Count <> 0 then
begin
SetLength(a,TempList.Count);
for i:= 0 to TempList.Count - 1 do
begin
a[i] := StrToInt(TempList.Strings[i]);
end;
end;
finally
TempList.Free;
end;
0072デフォルトの名無しさん
2006/12/10(日) 13:54:01TempList := TStringList.Create;
try
for i:= 0 to Max -1 do //Maxは全変数の数を代入
begin
TempList.Add(IntToStr(a[i])); //挿入の場合はInsert(行番号(先頭は0),値)
end;
TempList.SaveToFile(FileName); //任意のファイル名にしたいならSaveDialogを使う
finally
TempList.Free;
end;
わからない関数などが出てきたら
反転させてF1押すとその関数のメソッドやプロパティ
場合によっては使いかたの凡例もみることができますよ
onCreatに対応するのは
onDestroy
ただこのイベントは通常メモリの開放などの後処理を記述するところ
ここにデータ保存処理を記述するのはお勧めしない
フォームの破棄時に呼び出されるので
ここでデータ保存処理に何らかのエラーが出ても
データは破棄されるのでやり直しが効かないよ
0073デフォルトの名無しさん
2006/12/10(日) 13:58:07どうすればいいですか。
0074デフォルトの名無しさん
2006/12/10(日) 14:05:330075デフォルトの名無しさん
2006/12/10(日) 14:22:02中止する場合はAbort;
0076デフォルトの名無しさん
2006/12/10(日) 15:35:11なんどやっても(sleepなどをしても)EacsessViolationのエラーが出てしまいます。
こういう事はもともとできないのでしょうか??
0077デフォルトの名無しさん
2006/12/10(日) 15:57:24ありがとうございます。
おかげでデータを保存するアプリが作れました。
0078デフォルトの名無しさん
2006/12/10(日) 17:51:09TListってやつ使ってるのか?
0079デフォルトの名無しさん
2006/12/10(日) 18:01:000080デフォルトの名無しさん
2006/12/10(日) 18:15:00動的配列とTObjectListどちらがいいですか。
0081デフォルトの名無しさん
2006/12/10(日) 18:24:110082デフォルトの名無しさん
2006/12/10(日) 18:35:210083デフォルトの名無しさん
2006/12/10(日) 18:41:59まあそりゃそうだ
0084デフォルトの名無しさん
2006/12/10(日) 18:53:37>80の文意を考えればやりたいのはクラス"インスタンス"のリストの実現手法を
知りたいのではないか?ということでTObjectListで。
0085デフォルトの名無しさん
2006/12/10(日) 20:28:53今の時間を取得する方法とパソコン自体の今の音量の変数をかえる方法を教えてください。
何時になったら音量を0にするとかそういうプログラムにする予定です。
0086デフォルトの名無しさん
2006/12/10(日) 20:42:55> 今の時間を取得する方法
now
> パソコン自体の今の音量
mixerSetControlDetails
0087デフォルトの名無しさん
2006/12/10(日) 22:34:21下の変数の使い方がよくわかりません。
見ればいいサイトとかありますか?
なければ例文で教えてください。
0088デフォルトの名無しさん
2006/12/10(日) 22:35:34ttp://www.google.co.jp/search?q=mixerSetControlDetails
0089デフォルトの名無しさん
2006/12/10(日) 23:44:48保存されている値なら、リソースに格納されている。
詳しく知りたいなら、Classes.pasを解読する。
保存されていない値は通常constructorで初期化されている。
>60と近いけど、値取得用のコンポーネントを動的に作れば良いと思う。
>>76
モジュール読み込み中に別スレッドから書き換えたいの?
0090デフォルトの名無しさん
2006/12/11(月) 00:32:360091デフォルトの名無しさん
2006/12/11(月) 00:36:14http://www.swissdelphicenter.ch/torry/showcode.php?id=1204
0092デフォルトの名無しさん
2006/12/11(月) 00:37:06空のテキストファイルってのは、単なる0バイトのファイルと一緒。
0093デフォルトの名無しさん
2006/12/11(月) 00:39:02すみません、今回作りたかったのがテキストファイルなだけで、サイズが0のファイルの作り方がわからないんです。
0094デフォルトの名無しさん
2006/12/11(月) 00:50:03uses
classes;
とかしておいて
var
sl : TStringList;
begin
sl := TStringList.create;
sl.savetofile(保存したいパス);
sl.free;
end;
0095デフォルトの名無しさん
2006/12/11(月) 01:00:530096デフォルトの名無しさん
2006/12/11(月) 01:10:240097デフォルトの名無しさん
2006/12/11(月) 01:36:55var
i: Integer;
begin
i := 5;
ここの、 i := 5 という場面で、
1. 新しくSizeOf(Integer)分のメモリの領域を得て、そこに 5 を配置する
2. i のアドレスに、先程の領域をコピーする
3. 1.で、 5 が置かれていたメモリを解放する
もしくは
1. どこか使ってない、4バイトのレジスタに 5 を置く
2. i のアドレスに、先程のレジスタをコピーする
こんな感じですか?
DoSomething(i);
こう手続きが呼ばれたら、どのような処理をして、関数を実行するのでしょうか。
呼び出し規約とかで違いがありそうですが。
0098デフォルトの名無しさん
2006/12/11(月) 01:44:25君が書いている処理をする関数なら書いてあるとおりの処理をするだろう
0099デフォルトの名無しさん
2006/12/11(月) 02:12:03日本語でおk
まじで意味が分からん
そこまでの知識があるなら、ブレークポイントを置いてCPU窓開いてアセンブラコード見てみろよ
0101デフォルトの名無しさん
2006/12/11(月) 04:14:27> var
> i: Integer;
> begin
> i := 5
最適化とその後ろのコードによる.
レジスタに乗りっぱなしかも知れないし、そもそも削除されるかもしれないし、
どっかの即値になって消えるかもしれないし、どっかでレジスタから退避されるかもしれないし
そんなの分からんがな.
> DoSomething(i);
デフォルトは fastcall だから fastcall の呼び出し規約調べれよ.
0102デフォルトの名無しさん
2006/12/11(月) 08:35:360103デフォルトの名無しさん
2006/12/11(月) 10:21:37メインメニューの項目を動的に変更すると、Theme Manager
適用前と同じ状態になります(選択項目が凹むクラシックスタイル?)。
いかにTheme Managerでもこれはどうしようもないのでしょうか。
0105デフォルトの名無しさん
2006/12/11(月) 12:33:30英語のみならず日本語も読めないの?
0106デフォルトの名無しさん
2006/12/11(月) 13:33:18>Frame1 := TFrame1.Create(this);
>Frame2 := TFrame1.Create(this);
って2回やると、コンポーネント名称が衝突してエラーになるおね?
この場合、Frame1.Name = ''; とクリアしてやれば良いんですか?
0107デフォルトの名無しさん
2006/12/11(月) 14:41:07あたりまえだろwww
delphiなんか使うような奴だぞ?www
0108デフォルトの名無しさん
2006/12/11(月) 16:08:41そもそもその状況ではエラーにはならない。
Frame1はTFrame1型のインスタンス、
Frame2もTFrame1型のインスタンスとして扱われ、Frame1とは別のインスタンスとなっている。
いつも使っているフォームだって、implementationの上あたりでグローバル変数として宣言されてるのがわかると思う。
var
Form1: TForm1;
こんな風に。
ちなみにこの変数Form1に値を代入しているのはプロジェクトソース中の
Application.CreateForm(TForm1, Form1); の部分。
(Delphi5ではプロジェクト(P)>ソース表示(V)で確認できるけど他のバージョンはわからん。.dprを直接見てちょ)
※あとthisじゃなくてSelfな。
0109デフォルトの名無しさん
2006/12/11(月) 16:21:29こんなのもあるよ。
var
F: File;
begin
AssignFile(F,'asdf.txt');
Rewrite(F);
CloseFile(F);
0110デフォルトの名無しさん
2006/12/11(月) 16:25:40実行してみれば分かるけどエラーになるよ
0111デフォルトの名無しさん
2006/12/11(月) 16:26:55俺はエラーにならんかったが…。まあDelphi5だしな。
0112デフォルトの名無しさん
2006/12/11(月) 16:45:08Self
├Frame1
└Frame1
所有構造がこうなるからSelfの中でFrame1がドッペルゲンガーと遭遇してあぼんする。
改名して別人に成りすませばおk。
0113デフォルトの名無しさん
2006/12/11(月) 16:49:340114デフォルトの名無しさん
2006/12/11(月) 16:58:010115デフォルトの名無しさん
2006/12/11(月) 17:06:45それってNameプロパティを直接書き換えるしか、回避方法無かったでしたっけ?
何か強引な気がして。
それと、Nameをプロパティを空文字なんかにしたら問題起きますか?
親の管理対象外になってメモリリークとか。
0116デフォルトの名無しさん
2006/12/11(月) 20:20:40その文字列の横幅が合計何ピクセルあるのかを知りたいのですが、
調べる方法はありますか?
(例えば文字列が'abc'なら、aの左端からcの右端までで何ピクセルあるのかが知りたいです)
よろしくお願いします。
0117デフォルトの名無しさん
2006/12/11(月) 20:34:26Canvas.TextWidth('abc')
0119デフォルトの名無しさん
2006/12/11(月) 22:27:15初期設定(定数)で、大量の配列データを記述する必要があります。
DATA[0]:= 'abc';
DATA[1]:= 'def';
DATA[2]:= 'ghi';
…
といった感じです。
この行数が多いとソースの可読性が悪くなるので、
この配列DATAを別のユニット(Unit2)に独立させ、
メイン(Unit1)から参照できるようにしたいのですが、やり方が分かりません。
Unit1(メイン)のuse節にUnit2を加えるとして、
Unit2にはどのように記述すればよいでしょうか。
よろしくお願いします。
0120デフォルトの名無しさん
2006/12/11(月) 22:33:18interface
var
gData:array of string;
implementation
initialization
setlength(gData,3)
gDATA[0]:= 'abc';
gDATA[1]:= 'def';
gDATA[2]:= 'ghi';
end.
0122デフォルトの名無しさん
2006/12/11(月) 22:40:13>>120の方法でも良いけど
データが大量にあるならいちいち書くのもめんどいし
データの総量が増えても対応できるように
データ本体をファイルに保管して
それを読み込んで配列に代入する関数or手続きを考えた方がよいかも…
0123ななしへたぐらま ◆XcB18Bks.Y
2006/12/11(月) 22:45:51> Filename := GetCurrentDir + '\test.txt';
実行ファイルのあるディレクトリとカレントディレクトリは同じとは限りません.
またカレントディレクトリがルートディレクトリの場合にGetCurrentDirは C:\ などと \ 付きで返してくるのでうまくいきません.
Filename := ExtractFilePath(Application.ExeName) + 'test.txt';
実行ファイルのフルパスを返すApplication.ExeNameと
フルパスからディレクトリを末尾の\付きで返すExtractFilePath関数を組み合わせることで
実行ファイルのディレクトリを取得しています.
なおコンソールアプリではApplication.ExeNameの代わりにParamStr(0)を使います.
(ウィンドウアプリでも使えます)
0124デフォルトの名無しさん
2006/12/11(月) 23:28:21知らない。
モジュールを読み込んで初期化が始まる前に、コードを書き換えたいとか、
そんなの?
なんだか大変そうですねぇ〜。
0126デフォルトの名無しさん
2006/12/12(火) 00:23:270127デフォルトの名無しさん
2006/12/12(火) 00:38:570128デフォルトの名無しさん
2006/12/12(火) 01:01:03TurboDelphiのインストールに必須な
「Microsoft XML Core Services (MSXML) v4.0 SP2」をインストールしようとすると、
エラーコード2755が返って来てインストールに失敗してしまいます。
解決法がないか誰か教えてもらえないでしょうか?
当方の環境はWindowsXP(SP2)です。
宜しくお願いします。
0129デフォルトの名無しさん
2006/12/12(火) 03:30:43動作確認済みソースのVK_UPをVK_1に書き換えただけでコンパイルできないのは何故でしょうか??
0130デフォルトの名無しさん
2006/12/12(火) 05:00:30Windows.pas で、VK_0〜VK_9、VK_A〜VK_Z が
定義されていないからではないかと思われ。
(D6の場合。他バージョンについては不明)
VK_1 のところを Ord('1') にすれば動くかも。
0131129
2006/12/12(火) 05:26:28ありがとうございます。
見事に動きました。
標準で定義されないって
需要少ないんですかね。
本当に助かりました。
感謝いたします
0132デフォルトの名無しさん
2006/12/12(火) 06:29:03プログラム経験は、なし。すこし、以前、Delphiいじって1,2回ほど適当なプログラム作ったくらい。
まだまだ、みんなの語ってる話題が未知の宇宙のように思えます。
はぁ・・・道は、遠いな。
このHPが勉強になるとかあれば紹介お願いします。
0133デフォルトの名無しさん
2006/12/12(火) 06:46:360134デフォルトの名無しさん
2006/12/12(火) 06:49:15Delphiのソコソコの知識がついたら、次はWin32を勉強しよう。
そしてVCLのソースを解析。
0135デフォルトの名無しさん
2006/12/12(火) 07:05:14ラジャ
いまは、コンソールであれこれしてたほうが、文法覚えるのはいいってことで、
http://oto.chu.jp/kujira/text/delphi/zero/index.htm
なるとこをうろうろしてます。
とりあえず、これが済んだら、そこらへんに進んで見ようと思います。
0136デフォルトの名無しさん
2006/12/12(火) 08:59:080137デフォルトの名無しさん
2006/12/12(火) 09:24:400138デフォルトの名無しさん
2006/12/12(火) 10:19:40あぁ、3時間か。てっきり3年かと思った。3時間でいきなり、
VCLのソース解析はむちゃだ。なんか、やっぱ、自分の作りたいソフト見っけて、
ソレ作りながら覚える方が俺的にはお勧め。そうしないと俺はモチベーションがもたん。
0139デフォルトの名無しさん
2006/12/12(火) 10:21:57�dクス
そっかソースフォルダのはあくまでもソースで
システムには参加してなかったのね。勉強になりました
0140デフォルトの名無しさん
2006/12/12(火) 10:35:39フォルダにあるファイルを自動的に指定した場所に振り分けるってやつ
自分で作った奴だから好きなようにカスタマイズ出来るし今でも使ってる
0141デフォルトの名無しさん
2006/12/12(火) 10:39:37右も左もわからぬ初心者の頃はこんなん作って遊んでたw
http://www.geocities.co.jp/HeartLand-Namiki/1179/dialog/1/overwrite.gif
http://www.geocities.co.jp/HeartLand-Namiki/1179/dialog/1/search.gif
http://www.geocities.co.jp/HeartLand-Namiki/1179/dialog/1/name.gif
ちなみにこのサイトはココ
http://www.geocities.co.jp/HeartLand-Namiki/1179/
0142デフォルトの名無しさん
2006/12/12(火) 11:26:20まじかるぽかーん
>>132
Seventh Delphi
http://kakinotane.s7.xrea.com/index.html
flow of water: Delphi
http://wblue.web.infoseek.co.jp/delphi.htm
0143デフォルトの名無しさん
2006/12/12(火) 12:32:03Bの場所ではできたのですが、タブの耳?(Aの部分)で
ポップアップメニューを出すにはどうすればよいでしょうか。
┏━┓
┃ ┃← A
┏┛ ┗━━━━━┓
┃ ┃
┃ ┃
┃ ┃← B
┃ ┃
┃ ┃
┗━━━━━━━━┛
0144デフォルトの名無しさん
2006/12/12(火) 12:55:100145デフォルトの名無しさん
2006/12/12(火) 13:53:00できました。
ありがとうございます。
0146デフォルトの名無しさん
2006/12/12(火) 20:23:12たぶんコンポーネントとかは関係のないと思われるパスカルな単純な処理を関数にするには、
privateかpublicにprocedureじゃなくてfunctionで宣言すればいいのでしょうか?
0147デフォルトの名無しさん
2006/12/12(火) 20:27:42functionは戻り値がある
private
procedure hoge;
function hage : boolean;
0148デフォルトの名無しさん
2006/12/12(火) 20:34:08助かりましたありがとうございます。
0149デフォルトの名無しさん
2006/12/12(火) 20:45:14できます?
0150デフォルトの名無しさん
2006/12/12(火) 21:29:02あとBPL,DPK,DCU,DCPファイルもググったけどよく分からない…
誰かおおざっぱでいいので教えてもらえます?
0151デフォルトの名無しさん
2006/12/12(火) 22:11:16pas (ソース)-> コンパイル -> dcu(中間ファイル)
dpk (プロジェクト) -> コンパイル -> dcp(中間ファイル) -> bpl(実行形式。DLL相当)
> コンポーネントのインストール
設計時用のパッケージ -> コンパイルしてbpl 作成 -> IDE にインストールして使えるようにする。
0152デフォルトの名無しさん
2006/12/12(火) 22:11:24OwnerDrawにして自力で描写すればできる。
0153デフォルトの名無しさん
2006/12/12(火) 22:14:30つ OnDrawItem イベント
0154デフォルトの名無しさん
2006/12/12(火) 22:22:08> コンポーネントの登録
タイプライブラリの作成のこと?
ソースからActiveXなどを使えるように、宣言ユニットを作成。
0155デフォルトの名無しさん
2006/12/12(火) 22:22:59サンクスです。続けて質問で申し訳ないですが
ということはdcu,dcpは中間物であって、いらないっちゃいらないってことすね?
bplは実行形式(ダイナミックリンク)なのにIDEにインストールするの?
0156デフォルトの名無しさん
2006/12/12(火) 22:23:55いえ、ヘルプのコンポーネント作成の項に
「コンポーネントの登録」ってのが出てきてたので。
0157デフォルトの名無しさん
2006/12/12(火) 22:32:26> いらないっちゃいらないってことすね?
まあ基本的には。
ただしパッケージに他のパッケージを含める場合はdcp を使う必要があったような。
> bplは実行形式(ダイナミックリンク)なのにIDEにインストールするの?
起動時に全部読み込まれる。
IDEにプロパティを操作するエディタなどが作成される。
設計時パッケージは、コンポーネントをコードでCreate してプロパティを設定なら不要。
0158デフォルトの名無しさん
2006/12/12(火) 22:38:16必要ないけど、暗黙的リンクなら必要になるとか。ちょびっとややこしい。
0159デフォルトの名無しさん
2006/12/12(火) 22:42:470160デフォルトの名無しさん
2006/12/13(水) 01:00:25tdump.exeは外部の関数・クラスだけだから、マップファイルがいいかも。
0161デフォルトの名無しさん
2006/12/13(水) 06:29:47Seventh Delphiのほうは、いまやってるとこと内容が同じようでした。
Flow Of Water Delphiは、GUIアプリとかのやつもあるので、BMしました。
ありがとー。
0162132
2006/12/13(水) 06:42:59↑
ここの15番目まで完了したよ。
これ終わったら、Flow Of Water Delphiのやつやってみようと思う。
functionとかProcedureで使う、引数と変数の違いが分かりづらかったけど、
まあ、変数は、字のまんま、みんなが考えてる変数の通りで、
引数は、プログラムの本文で、プログラマーが指定して決める数って理解してていい?
たとえば、
function Sansuu(a:integer;b:integer):Integer;
begin
Result:=a+b;
Writeln(Result);
end;
begin
Sansuu(1,6);
Readln;
end.
見たいに、あとで関数を利用するときに、本文で、決められる数が引数ってことで。
最初、引数と変数ってドウ違うのか戸惑ってしまった・・・
0163デフォルトの名無しさん
2006/12/13(水) 08:17:310164デフォルトの名無しさん
2006/12/13(水) 10:17:39ListViewの項目を他のアプリへD&Dするのってどうやるんですか?
0165デフォルトの名無しさん
2006/12/13(水) 10:24:270166デフォルトの名無しさん
2006/12/13(水) 10:25:29procedure TForm1.Button1Click(Sender: TObject);
var
t: TDateTime;
v: Variant;
s: String;
begin
t := Now;
v := t;
s := DateTimeToStr(t);
ShowMessage(String(v)+sLineBreak+s);
end;
---------------------------
Project1
---------------------------
2006/12/13 10:21:12
2006/12/13 10:21:11
---------------------------
OK
---------------------------
0167デフォルトの名無しさん
2006/12/13(水) 10:33:330168デフォルトの名無しさん
2006/12/13(水) 10:57:14スコープを知るともう少し簡単に理解できるかも
それと引数には4種類あるから知っておくと良いよ(最初のうちは理解しなくてもOK)
値引数
変数引数
定数引数
デフォルト引数
0169デフォルトの名無しさん
2006/12/13(水) 11:12:56TextWidth と TextOut をぐちゃっとコーディングして出来ました。サンキュス
0170デフォルトの名無しさん
2006/12/13(水) 12:14:00試してないけどバリアントで精度が変わるからかね?
TDateTimeは確か小数点だし。
0171デフォルトの名無しさん
2006/12/14(木) 01:20:16機能とかバグとか作りやすさとか。
慣れればQuickReportより良いんなら使ってみようと思うんだけど。
0172デフォルトの名無しさん
2006/12/14(木) 07:46:01http://bdn.borland.com/article/33580 ここに
1. Windowsのスタートメニューより[スタート|プログラム|Borland Delphi 6|使用許諾コードの取得]で、使用許諾コードの取得画面が表示されます。
とありますが、 |Borland Delphi 6| が見つかりません。
他にインストールする方法が有りますでしょうか?
0173デフォルトの名無しさん
2006/12/14(木) 09:46:25もれも初めて2,3日くらいの初心者だが、いちいち使用承諾とらないでも
普通に使えるから気にするな。キャンセルしたら、後で承諾をとるみたいなダイアログがでてOK
押したら、未承諾でも使える。
とりあえず、おなじくらいの時期にはじめたみたいだから、がんばろうぜ。
0174デフォルトの名無しさん
2006/12/14(木) 11:06:07インストール失敗してるんじゃないの?
0175デフォルトの名無しさん
2006/12/14(木) 13:07:08TImageListに設計時ではなく実行時にイメージを追加する場合、
イメージリストエディタの「そのまま」、「引き伸ばし」、「中央に置く」に相当する操作は
どこをいじればいいのでしょう。
0176デフォルトの名無しさん
2006/12/14(木) 13:25:56「キャンセルしますか」 と出て終了してしまいます。
セットアップランチャ→ Delphi 6 →次へ にするとキーがないので
インストールできません。
ProgramFiles内にdelphiフォルダは出来ていますが、これはセットアップランチャな気がします。
ネットで落とす前に書籍付属のCDでインストールしようとしたので、
残骸が邪魔をしてるのかも知れません。
アンインストールもできないのですが、手動で引っぺがして良い物でしょうか?
0177デフォルトの名無しさん
2006/12/14(木) 13:28:27レジストリも消すと良い。
HKEY_CURRENT_USER->Software->Borlandあたり。
0178デフォルトの名無しさん
2006/12/14(木) 13:29:360179デフォルトの名無しさん
2006/12/14(木) 13:29:46これは何?インストール用のキーを持ってないの?
0180デフォルトの名無しさん
2006/12/14(木) 13:31:04Copy関数?
0181デフォルトの名無しさん
2006/12/14(木) 13:36:48インスト用のキーと
登録用でもらえるキーは別物だぞ?
0182175
2006/12/14(木) 13:42:09ImageList1.Add(bmp, nil);
でできました。
0183デフォルトの名無しさん
2006/12/14(木) 13:48:00解答つけなくて、ごめん。
0184デフォルトの名無しさん
2006/12/14(木) 13:49:37日本語対応に不安が。
メーカーはDelphiがUnicode化するまで
完全対応は無理と宣言しているし。
0185デフォルトの名無しさん
2006/12/14(木) 17:57:37そうですか。
何か良いレポートツール無いかなぁ。
みんな何使ってるの?
0186デフォルトの名無しさん
2006/12/14(木) 18:37:34インスト用のキーはまとめサイトのやつで普通に使えるぞ。
ただ、使用承諾のキー(インストール後)をいれようとすると、サーバーにつながらないから
出来ない。
インストール用のキーは、普通に使えるから、どっかやり方間違ってるよ。
0187デフォルトの名無しさん
2006/12/14(木) 19:59:33LightReport。完全日本製
またはFastReport
0188デフォルトの名無しさん
2006/12/14(木) 21:31:54キーボードの長押しに対する一時的な制御って
どうすればいいのでしょ?
単純に
if key VK_* then 未処理ならスルー
としても
OS側がVK_*を未処理なのに全部引き受けちゃって
OSがフラグ見た時には処理済になってる感じで
結局コケちってるみたいで、それを何とかしたいのですが。
0189デフォルトの名無しさん
2006/12/14(木) 23:27:060190デフォルトの名無しさん
2006/12/15(金) 00:10:230191デフォルトの名無しさん
2006/12/15(金) 00:34:41かなり古い本だが愛用してるやつらを一部紹介します。
ど素人向け
http://www.amazon.co.jp/exec/obidos/ASIN/4774104272/
手軽なリファレンスとして手放せない
http://www.amazon.co.jp/exec/obidos/ASIN/477410891X/
お金持ちならドウゾ
http://www.amazon.co.jp/exec/obidos/ASIN/4756130917/
http://www.amazon.co.jp/exec/obidos/ASIN/4844349147/
最近の本は知らん
もっといいのが出てるかも
0192デフォルトの名無しさん
2006/12/15(金) 00:54:58説明下手ですみません。
リピートという単語をど忘れしてしまってうまく表現できませんでした。
一時的にリピートを停止、あるいはインターバルを長くとるなどして
ちゃんとひとつの処理が終わってから次のキー入力を受け付ける、
みたいなことがやりたかったのでした。
WM_KEYDOWNを調べてみます。ありがとうございます。
0193デフォルトの名無しさん
2006/12/15(金) 01:05:51ADODataSetのConnectionStringsプロパティのデータベースに接続するためのパスが絶対参照から相対参照にする方法はありますか?
ConnectionStringsプロパティのダイアログで相対参照にしようとしても、C:\Documents and Settings\ユーザー名\データベースのファイル
と言うように認識するらしくうまくいきません。
0194デフォルトの名無しさん
2006/12/15(金) 02:32:160195デフォルトの名無しさん
2006/12/15(金) 02:33:14nullなら別の値を表示させようとしたら華麗にスルーされました。
0196デフォルトの名無しさん
2006/12/15(金) 02:38:21マルチやめれ
0197デフォルトの名無しさん
2006/12/15(金) 03:35:070198デフォルトの名無しさん
2006/12/15(金) 04:05:49超初心者ならExplorerなんじゃね?フツー
0199デフォルトの名無しさん
2006/12/15(金) 04:26:150200188=192
2006/12/15(金) 09:03:14message.pas、windows.pas、delphiヘルプのTWMKeyを見ても
理解が及ばずどう書けばいいのか見当がつきませんでしたorz
そこで、検索して見つけたコード
procedure TForm1.WMKeyDown(var message: TWMKeyDown);
begin
if message.KeyData and $40000000 = 0 then inherited;
end;
をコンパイルすると
Illegal character in input file: ''
というErrorでコンパイルできず、行き詰ってしまいました。
たびたびすみませんが、お助けください
0201デフォルトの名無しさん
2006/12/15(金) 14:17:19うちではコンパイルとおるし。
0202デフォルトの名無しさん
2006/12/15(金) 14:23:00全角空白
ところでD5は全角空白を赤表示してくれるがD7はしてくれないので判らないんだよな。
どこで設定するんだろ。
0203デフォルトの名無しさん
2006/12/15(金) 14:29:19ttp://www.devexpress.com/のレポートツール使え。
ここなら不具合あって、報告すれば、1ヶ月には、修正されるぐらいサービスはすばらしいし、
ソースコード見ても、明らかにプロの仕事だとわかるくらい安心できる。
0204200
2006/12/15(金) 20:06:11まったく疑いもしなかった原因で勉強になりました。
ありがとうございます
0205デフォルトの名無しさん
2006/12/15(金) 21:49:08記事のタイトル|レス数|最終読み込み|最終書き込み
みたいなリストボックス?でそのレス数などをクリックすればそれが昇順にならんだりするコントロールみたいのはどうやってつくればいいんですか?
0206デフォルトの名無しさん
2006/12/15(金) 21:58:330207デフォルトの名無しさん
2006/12/15(金) 22:59:09D7ってエディタオプションの不正な文字で認識してくれないの?
つか常に半角スペースを入力にIME設定すればいいと思うのは俺だけか?
0208デフォルトの名無しさん
2006/12/15(金) 23:01:09TListView
0209デフォルトの名無しさん
2006/12/15(金) 23:09:36デフォルトだとしてくれない。
さっき色々調べてようやくエディタのオプションで不正な文字の色が
文字色黒、背景白なんつー設定になってるのを発見した。
背景赤にして全角空白もめでたく赤表示になった。
0210デフォルトの名無しさん
2006/12/15(金) 23:23:56ありがとうございます。
0211デフォルトの名無しさん
2006/12/15(金) 23:33:46判別するプロパティじゃないんですか???
ローカルデータセットで1000件ぐらいデータ作って、グリッド上にカレントレコード変更して、
BOFかEOFかチェックしてもなんかめちゃくちゃです。
誰かお願いします。Turboです。
0212デフォルトの名無しさん
2006/12/15(金) 23:39:010213デフォルトの名無しさん
2006/12/16(土) 05:36:27WindowModeで使っていて、ユーザがフォームをリサイズしたときなどに、サイズを変更したい場合、
もう一度 WindowMode(ClientWidth, ClientHeight, []); と呼ぶだけではダメですか?
自分の環境だと、テクスチャの量に比例した時間、固まってしまったり、
一部のテクスチャが壊れてしまったり、画面にゴミがでます。
0214デフォルトの名無しさん
2006/12/16(土) 05:48:16TListViewとか使って、ソートは一種類のみでエクセル、Accsess出力なし 表計算機能なしの
DBソフトっぽいもの作りたいんですが、DB専用のコンポーネント使わないと無理ですか?
なんか、pro版じゃないとDBのコンポーネントは扱えないとかWEBで見たので、どうだか
気になってます。DBデータファイルはバイナリーじゃなく普通にテキスト形式のファイルで
扱おうと思ってます。まあ、まだ、あんま頭の中でアイディア固めてないのであやふやでもうしわけない
です。
0215デフォルトの名無しさん
2006/12/16(土) 06:39:24TClientDataSetがグリッドの位置なんてしるかよ。
RecNoみるなり、グリッドの相対位置を教えてくれるプロパティを見ろ。
0216デフォルトの名無しさん
2006/12/16(土) 09:51:48知らん
ゲ製で聞いてみたらどうか
【Delphi】 ゲームつくるぞ(゚Д゚)ゴルァ 2【Delphi】
http://pc8.2ch.net/test/read.cgi/gamedev/1097836469/
0217デフォルトの名無しさん
2006/12/16(土) 12:10:43TListView使ってできるなら必要ないんじゃないの。
0218デフォルトの名無しさん
2006/12/16(土) 13:15:40あほか。おまぇ。グリッドの位置なんて一言も書いてねぇよ。
0219デフォルトの名無しさん
2006/12/16(土) 13:40:480220デフォルトの名無しさん
2006/12/16(土) 13:52:27IDE のエディタの全角空白の件、こんな設定あるんですね。ちと便利になりました。
0221デフォルトの名無しさん
2006/12/16(土) 18:14:50ListViewはコンポーネント
コンポーネントを使わずにコード上で同じような処理をしたい時に
TListViewクラスを使う
T名前は基本的にクラスの名前
0222デフォルトの名無しさん
2006/12/16(土) 18:53:24レスどうもありがとうございました!
けれども、コンポーネントを使うのとコード上でやるのとはどう違うのですか?
0223デフォルトの名無しさん
2006/12/16(土) 19:16:510224デフォルトの名無しさん
2006/12/16(土) 19:50:08Bof, Eof。
これが不満なら>>215の言うようにRecNoやキャストしてグリッドの位置をみるしかない。
自分の無能を棚にあげて、あんた失礼な人だね。
0225デフォルトの名無しさん
2006/12/16(土) 21:31:22ありがとうございました。
ListViewは分かったのですが、選択したときに1列いっぺんに選択させるにはどうすればいいのですかね?
あと列のどこでも選択すればその列が選択される状態にするにはどうすればいいんですか?
0226>>225
2006/12/16(土) 21:48:370227デフォルトの名無しさん
2006/12/17(日) 00:20:040228デフォルトの名無しさん
2006/12/17(日) 00:23:570229デフォルトの名無しさん
2006/12/17(日) 00:34:24即レスあがとうございます
あと、manifestでLunaスタイルに変更されないPageなんたらをビジュアルスタイルでちゃんと表示するためには
ttp://www.vector.co.jp/soft/win95/prog/se219006.html
これを使用しないと無理なんですかね?
0230デフォルトの名無しさん
2006/12/17(日) 04:58:54最近のdelphiでは元から入ってるVCLでもxpmanifest使えばxpスタイルで表示されるよ
0231デフォルトの名無しさん
2006/12/17(日) 07:07:160232デフォルトの名無しさん
2006/12/17(日) 08:49:26231
D6のPersonalです
0233デフォルトの名無しさん
2006/12/17(日) 12:24:17Turbo Delphi使えば?
0234デフォルトの名無しさん
2006/12/17(日) 13:50:43エクスプローラー版はコンポーネントが追加できないとか不安定ときいたので…
0235デフォルトの名無しさん
2006/12/17(日) 13:57:06ス ク ス _ | | │ //. ス ク ス _ | | │ //
/ ス ─ | | ッ // / ス ─ | | ッ //
/ _____ // / //
. / l⌒l l⌒l \ )) ____
. / / ̄| ,=| |=、| ̄ヾ / ____ヽ
/ ̄/ ̄. ー'●ー'  ̄l ̄ | | /, −、, -、l ))
| ̄l ̄ ̄ __ |.  ̄l ̄.| _| -| ,=|=、 ||
|. ̄| ̄ ̄ `Y⌒l__ ̄ノ ̄ (6. ー っ-´、}
ヽ ヽ 人_( ヾ ヽ `Y⌒l_ノ
>〓〓〓〓〓〓-イ /ヽ 人_( ヽ
/ / Θ ヽ| /  ̄ ̄ ̄ ヽ-イ
0236デフォルトの名無しさん
2006/12/17(日) 14:24:49http://www.delphi-gems.com/ThemeManager.php
0238デフォルトの名無しさん
2006/12/17(日) 15:05:300239デフォルトの名無しさん
2006/12/17(日) 15:07:14非表示にしてフォームB を ShowModal する必要があります。
これを実現するために、フォームA の OnShow イベントでフォームA の
Visible を False にしてフォームB へ ShowModal したいのですが、
フォームA.Visible := False; のところでエラーとなります。
どのように非表示にすれば良いか分かりますでしょうか。(できれば
フォームA は見えない方が見栄えが良いのですが)Delphi7proです。
0240デフォルトの名無しさん
2006/12/17(日) 15:11:11フォームAもShowModalする理由がわからん
見えないほうがいいならいきなりフォームBを表示すればいいのい
0241デフォルトの名無しさん
2006/12/17(日) 15:20:17おっしゃる通りです。ちとはしょって書いてしまいましたが、
メインフォームから フォームA に行く場合と B に行く場合がありまして、
B に行った場合、フォームを閉じたら A を表示させたいのです。
0242デフォルトの名無しさん
2006/12/17(日) 15:24:51あとエラーの内容くらい書け。
0243デフォルトの名無しさん
2006/12/17(日) 15:30:48begin
FormB.ShowModal;
FormA.ShowModal;
end;
0244デフォルトの名無しさん
2006/12/17(日) 15:45:51onShowでやるならメッセージを使う方法があるみたい
ttp://www.din.or.jp/~egawa-n/delphi/tips/form_showed.html
0245デフォルトの名無しさん
2006/12/17(日) 15:58:01エラーは「OnShow/OnHide イベントの処理中は表示状態の変更はできません.」
です。書きもれていましてすみません。また、「行く」とはShowModalで
制御を渡すという意味で使いました。一般的ではない言葉でしょうか。
>>244
ありがとうございます。この方法で正常に制御が渡せました。ただ少し
フォームが見えてしまいますので、
>>243
さんのやり方も検討したいと思います。
0246デフォルトの名無しさん
2006/12/17(日) 16:22:050247デフォルトの名無しさん
2006/12/17(日) 21:04:340248デフォルトの名無しさん
2006/12/17(日) 21:28:21FormAからFormBを呼び出して自身を消す手もあるね
質問するならもうちょっと具体的に状況説明したほうがいいと思うよ
0249デフォルトの名無しさん
2006/12/17(日) 21:31:32見に行ったのですが、英語で使い方がいまいちよくわからんでした・・・^^;
0250デフォルトの名無しさん
2006/12/17(日) 21:31:45http://delwiki.info/?Delphi+%A5%B7%A5%EA%A1%BC%A5%BA%2F%BC%AB%CA%AC%A4%CB%B9%E7%A4%C3%A4%BF+Delphi+%A4%F2%C1%AA%A4%DC%A4%A6
0251デフォルトの名無しさん
2006/12/17(日) 21:50:20これを利用して、クラス名を名前空間のように使うこともありますか?
0252デフォルトの名無しさん
2006/12/17(日) 22:02:420253デフォルトの名無しさん
2006/12/17(日) 23:58:54ホームディレクトリと思われる所にreg736.txtを置くのですが、
シリアルナンバーを求められます。
認証ファイルを置くべき位置をご存じの方がいらっしゃいましたら教えていただけませんでしょうか。宜しくお願いします。
0254デフォルトの名無しさん
2006/12/17(日) 23:59:49Delphi ではユニット名そのものが名前空間になるし、クラスと関係ない
関数も定義できるから。
0255デフォルトの名無しさん
2006/12/18(月) 00:04:57使用許諾マネージャでreg736.txt読み込んでみれば?
0256sage
2006/12/18(月) 01:31:33ありがとうございました。動きました。
参考にならないかもしれませんが、Vistaのスタート>すべてのプログラム>Borland Developer Studio2006>ツール>使用許諾マネージャで読み込めました。
最初reg736.txtはTurboExplorer発表時に発行したものを使っていたのですが、
再度取り直したものをドキュメントと同じ階層に置きました。
摺りガラスのようなエアロ効果新鮮っす。
0257デフォルトの名無しさん
2006/12/18(月) 18:48:32unit2 をusesに追加した後ボタンのクリックイベントに
Form2.showという風にしても表示されません。
後何をすればいいんでしょうか?
0258デフォルトの名無しさん
2006/12/18(月) 19:04:060259デフォルトの名無しさん
2006/12/18(月) 19:43:01ヴァージョンかけ
>>251
unit HogeUnit;
interface
const
Hoge = 1234;
とした場合、
HogeUnit.Hoge
と参照できるからなー、ほとんどいらん。
0260257
2006/12/18(月) 20:02:500261デフォルトの名無しさん
2006/12/18(月) 20:03:43実行はしてますよ。
0262デフォルトの名無しさん
2006/12/18(月) 20:38:300263257
2006/12/18(月) 20:40:01失礼しました。なにが悪かったんだろう?
0264デフォルトの名無しさん
2006/12/18(月) 21:22:43で、プログラムで間違えて
for i := 0 to 99 do
StringGrid1.Cells[i,0] := IntToStr(i);
としてしまいました。99をColCount-1にすべきだったのですが
上記のロジックでもうまく?動作しているようです。これはこれで
大丈夫なものなのでしょうか。
0265デフォルトの名無しさん
2006/12/18(月) 21:47:44Delphi7くらいまでだと、ユニットって入力補完効いたっけ?
というわけで、俺は確実に入力補完が効くクラス.クラスメソッドが好き。
0266200
2006/12/18(月) 22:40:48WM_KEYDOWN
http://yokohama.cool.ne.jp/chokuto/urawaza/message/WM_KEYDOWN.html
の30ビット目を参照してオートリピートを判断してるんですよね?
$40000000を2進数にすると31桁(1000000000000000000000000000000)です。
また、別のサンプルで、24ビット目の拡張キーを参照し判断する場合、
$1000000(2進数だと25桁の1000000000000000000000000)とありました。
何故、30ビットで31桁、24ビットで25桁なのか腑に落ちません。
そういうもんだ、と暗記してしまえば済むことなのですが、
どなたかご存知の方いらっしゃいましたら教えていただけないでしょうか?
よろしくお願いいたします。
0267デフォルトの名無しさん
2006/12/18(月) 22:56:460268デフォルトの名無しさん
2006/12/18(月) 22:58:14あのな。先頭ビットを0としてんじゃん。よって、
>>の30ビット目を参照してオートリピートを判断してるんですよね?
は31ビットめもしくは、先頭をビット0としたときのビット30ってこと。
0269268
2006/12/18(月) 23:01:59最下位ビットっていうほうがよかったかもな。
最上位ビット(MSB)とか最下位ビット(LSB)とか。
http://www.x-media.co.jp/jiten/index.cfm?ID=3052
0270デフォルトの名無しさん
2006/12/18(月) 23:27:59Dialog.show;
で表示させたダイアログはどのように終了させるのですか?
Dialog.Close;
Dialog.Hide;
Dialog.Release;
の3つくらい調べてて出てきたのですが、CloseとHideとReleaseの違いがわかりません。
0271デフォルトの名無しさん
2006/12/18(月) 23:36:34ソースちょっと見たけど良く解からないから、トレースしてみて。
でも、ColCount-1とやるべきだろうね。
0272200
2006/12/18(月) 23:42:44配列の10個目を見る時にarray[9]ってするみたいな感覚なのか。
スッキリしました!ありがとうございます。
0273デフォルトの名無しさん
2006/12/19(火) 00:14:42ttp://pc8.2ch.net/test/read.cgi/tech/1162262669/l50
では、最下位ビット0ってなってるから、ビット30は「31番目のビット」ってことで。
後、Delphiでは何も配列の最初の要素の添え字は0になるとは限らんし、
a: array [ 1..10 ] of DataTypeで宣言されていたら、
10個目はまさしく、a[10]だが、
a: array [ 0..9 ] of DataTypeと宣言されてたら、
a[9]になるわけで、ただの言葉というか表現の違いだけだろーーーーーーーーーー。
0274デフォルトの名無しさん
2006/12/19(火) 03:09:55あれってどうやって実現してるんでしょうか?
0275デフォルトの名無しさん
2006/12/19(火) 03:16:540276デフォルトの名無しさん
2006/12/19(火) 03:17:25キミは序数と番号付けを混同している。
0277デフォルトの名無しさん
2006/12/19(火) 03:17:370278デフォルトの名無しさん
2006/12/19(火) 08:11:12Close→閉じる
Hide→隠す
Release→解放
0279デフォルトの名無しさん
2006/12/19(火) 12:36:09procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
for i:=1 to 10 do
begin
Memo1.Lines[i]:=IntToStr(i);
end;
これを実行したら、Memo1の一行目にしか表示されないんだけど、
Memo1の行全体に
1
2
3
4
5
とか表示させるにはどうしたらいいでしょうか?
0280デフォルトの名無しさん
2006/12/19(火) 12:49:54TStringsのプロパティとメソッドをヘルプで調べてご覧
0281デフォルトの名無しさん
2006/12/19(火) 13:02:23var
i: Integer;
begin
for i := 1 to 5 do
Memo1.Liens.Add(IntToStr(i));
end;
0282デフォルトの名無しさん
2006/12/19(火) 13:02:44逆にするならMemo1.Lines.Insert(0,IntToStr(i));
0283デフォルトの名無しさん
2006/12/19(火) 13:03:180284デフォルトの名無しさん
2006/12/19(火) 13:05:370285デフォルトの名無しさん
2006/12/19(火) 15:11:08継承元が違うってのは分かるんだけど、具体的なシュチュエーションが思い浮かばん…
0286デフォルトの名無しさん
2006/12/19(火) 15:45:59フォームの最前面に表示したい場合などに使える
(ラベルが特定条件で隠れるUIが良いかどうかは置いといて)
あとは・・・枠を表示出来たり、D&Dで移動する事が出来たり、
実用的じゃないなw
0287デフォルトの名無しさん
2006/12/19(火) 17:23:28HideとCloseの違いについてはわかりました。
CloseとReleaseの違いについてなんですが、特に関数やらを定義していなければReleaseではなくCloseでいいのですか?
それとも、Releaseで閉じたほうがいいんですか?
0288デフォルトの名無しさん
2006/12/19(火) 17:57:55ウィンドウハンドルを持っているコントロールの下にラベルを置いて文字列を表示しようとすると
ラベルの文字列が隠れてどうしようもない場合に使ってみる。
0289デフォルトの名無しさん
2006/12/19(火) 18:30:530290デフォルトの名無しさん
2006/12/19(火) 18:35:410291デフォルトの名無しさん
2006/12/19(火) 21:52:15Closeメソッドはフォームを破棄するときにいろいろ配慮してくれるので、
普通はCloseでいい。
0292ななしへたぐらま ◆XcB18Bks.Y
2006/12/19(火) 23:24:53Hide…常に隠す
Close…
・メインフォーム…プログラムを終了する
・サブフォーム…隠す(ただしOnCloseイベントで変更可能)
・MDIの子フォーム…最小化する(同上)
Release…解放(破壊)
Releaseメソッドは実行時に生成したフォームを解放するときにFreeの代わりに使います.
dlg := TMyDialog.Create(nil);
try
dlg.ShowModal;
finally
dlg.Free;
end;
>>274
・usesにShellApiユニットを追加
・URLを書いたラベルなどをフォームに貼る
・そのラベルのイベントハンドラに以下のようなコードを貼る.
ShellExecute(Handle, 'OPEN', 'http://pc8.2ch.net/tech/', '', '', SW_SHOW);
0293デフォルトの名無しさん
2006/12/19(火) 23:37:33> Releaseメソッドは実行時に生成したフォームを解放するときにFreeの代わりに使います.
微妙に使い分けが要る。
Mastering Delphiなんかを見るとFreeでいいとかなってる。
実際に問題になるのは、メインウインドウのOnDestroyの中で他のウインドウを消すとき、
Releaseだと例外を発生することがあった。
その場合、Releaseの後にApplication.Processmessages()をかませると例外がでなかったので、
どうやらタイミングの問題があるらしい。
まあとにかくFreeが無難だと思う。
0294デフォルトの名無しさん
2006/12/19(火) 23:42:540295デフォルトの名無しさん
2006/12/20(水) 08:07:49Release 自殺
0296デフォルトの名無しさん
2006/12/20(水) 08:17:390297デフォルトの名無しさん
2006/12/20(水) 08:19:50Release 悶絶死
0298デフォルトの名無しさん
2006/12/20(水) 08:58:240299デフォルトの名無しさん
2006/12/20(水) 09:40:41どのようにすればよいのでしょうか?
0300デフォルトの名無しさん
2006/12/20(水) 09:41:44自殺のReleaseで、メインフォームからサブフォームを消すときはFreeを使うってことですかね?
んで、サブフォームをCloseすることはHideすることと同じってことですか?
0301デフォルトの名無しさん
2006/12/20(水) 10:16:110302デフォルトの名無しさん
2006/12/20(水) 10:58:13マニュアルによると、長い文字列(AnsiString),ワイド文字列(WideString)型の変数は動的に割り当て
られたメモリブロックへのポインタで、文字列が空(長さ0)の時は、メモリブロックは割り当てられず、nil
になるとあるので、以下のコードを試したました。
var
S: string;
begin
S := '';
if PAnsiChar(S) = nil then ShowMessage('nil');
Sの型がAnsiStringの時は確かにnilになるのですが、WideStringの時は、nilになりません。
これはマニュアルがバグってるのでしょうか?コンパイラがばくってるのでしょうか??
環境はTurboです。
0303デフォルトの名無しさん
2006/12/20(水) 11:13:16訂正です。AnsiString、WideString共にnilになりませんでした。
というより、Assignedや<>nilでチェックすればいいようですね。
頭がこんがらがってきた。以前、ここであがったassignedの記事を読みましたが、
理解不能です。
ためしに、
var
P: Pointer;
begin
P := nil;
if P = nil then ShowMessage('nil')
だとチェックできますね。
0304デフォルトの名無しさん
2006/12/20(水) 13:27:15HTTPリクエストを同じフォルダのアプリケーションに飛ばして、
ファイル書き込みをやらせようとしています。
TCGIApplicationあたりを使ってそれらしいものを作ってみたのですが、
実際ブラウザでHTMLを開いてsubmitしてみたら、
なぜかアプリケーションのダウンロードになってしまいました。
作り方が悪いのでしょうか?それともDelphiでは不可能なんでしょうか?
環境はTurbo Delphi Explorerです。
0305デフォルトの名無しさん
2006/12/20(水) 13:34:32PAnsiCharじゃなくてPointerでキャストすればOK
0306デフォルトの名無しさん
2006/12/20(水) 13:51:12FolderList: TStrings; は定義、Create済み
var
Count: Integer;
DriveName: PChar;
SearchRec: TSearchRec;
begin
Count:= 0;
GetMem(DriveName, 4);
StrCopy(DriveName, PChar(Drive + ':\'));
if (FindFirst(DriveName+'*', faDirectory, SearchRec) = 0) then begin
repeat
Inc(Count);
FolderList.Add(DriveName + SearchRec.Name + '\');
until (FindNext(SearchRec) <> 0);
end;
FreeMem(DriveName);
end;
こんなプログラムでフォルダ検索をしようとしているのですが、フォルダは検索できたものの、
フォルダでないもの '*.txt' や '*.csv' などがいくつか引っかかってしまいます。
どうしたらこのような問題を回避できるのでしょうか?
フォルダにも '.' が使われた名前があるケースも考えられるので、単純に '.' 入りのものを弾くなどはしたくありません。
どなたかご指導のほど、よろしくお願い致します。
0307デフォルトの名無しさん
2006/12/20(水) 13:54:37var
Count: Integer;
DriveName: PChar;
SearchRec: TSearchRec;
begin
Count:= 0;
GetMem(DriveName, 4);
StrCopy(DriveName, PChar(Drive + ':\'));
if (FindFirst(DriveName+'*', faDirectory, SearchRec) = 0) then begin
repeat
Inc(Count);
FolderList.Add(DriveName + SearchRec.Name + '\');
until (FindNext(SearchRec) <> 0);
end;
FreeMem(DriveName);
end;
0308デフォルトの名無しさん
2006/12/20(水) 14:00:01ループ中にこれで判別できると思う。カレントディレクトリの「.」とか「..」は自前ではじくしかないかな
0309デフォルトの名無しさん
2006/12/20(水) 14:06:58if (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then
これで.と..を弾いて
if SearchRec.Attr = faDirectory then
これでディレクトリだけ引っ張ってこれるよ
0310デフォルトの名無しさん
2006/12/20(水) 14:08:50素早いレス、ありがとうございました。
仰る通りの方法で回避することができました。
それにしても FindFirst の faフラグの実装は謎ですね。
検索後に更に判定が必要とは・・・
とても勉強になりました。ありがとうございます。
0311デフォルトの名無しさん
2006/12/20(水) 14:15:32faDirectory有:無属性とフォルダが列挙
faDirectory無:無属性を列挙
無属性のファイルはフラグとは関係なしに列挙される。
それに加えてフラグで指定した物も列挙される。
0312デフォルトの名無しさん
2006/12/20(水) 14:52:18なるほどそういう仕組みだったのですね。
ありがとうございました。
0313デフォルトの名無しさん
2006/12/20(水) 18:53:01IntraWebで作ったアプリはインターネットに公開して
動作させることができるのでしょうか?
Delphi7のEnterprise版を使用しています。
0314デフォルトの名無しさん
2006/12/20(水) 18:59:15出来ますが、何か?
0315デフォルトの名無しさん
2006/12/20(水) 21:25:26TEditorなるものが必要らしいソフトがあって、TEditorをインスコしようとしたんだけど、
コンポーネントのインストールの段階で、
[致命的エラー] HEDITREG.PAS(19): ファイル 'DsgnIntf.dcu' が見つかりません
って弾かれちゃう(´・ω・`)
多分漏れがDelphiの基本を理解していないからなんだろうけど、何か解決策あったら教えて。
ちなみにXPでDelphi6 Personalを使ってるお。
0316デフォルトの名無しさん
2006/12/20(水) 22:03:270317デフォルトの名無しさん
2006/12/20(水) 22:43:54どのようにすればよいのでしょうか?
0318デフォルトの名無しさん
2006/12/20(水) 23:01:300319デフォルトの名無しさん
2006/12/20(水) 23:50:45GetDC(0)
0320デフォルトの名無しさん
2006/12/21(木) 07:56:19プロジェクトオプション
検索パス
0321デフォルトの名無しさん
2006/12/21(木) 09:50:430322デフォルトの名無しさん
2006/12/21(木) 10:51:186年ほど前に作りずっと安定して動いていたのですが最近キー違反が多発するようになりました。
主キーはautoinc型で2次インデックスに無重複の物が1つあります。
post前にデバッガで2次インデックスで使われているフィールドの値をチェックして
重複していないのにpostするとキー違反になるので何が何だか判りません。
テーブルを作り直してみたのですが直りませんでした。
エラーメッセージがキー違反ですとしか出ないのでエラーの詳細を調べる方法とか
キー違反で考えられる原因とか有りましたら教えてください。
0323デフォルトの名無しさん
2006/12/21(木) 10:54:12ちなみにレコード数はどれくらい?
0324デフォルトの名無しさん
2006/12/21(木) 11:17:031万レコードくらいです。
以前は10万レコードくらい有ったときもありました。
0325デフォルトの名無しさん
2006/12/21(木) 12:01:43except
on E: Exception do
ShowMessage(E.Message);
end
で例外メッセージを詳しく捕まえるとか
あと、インデックスが壊れてる場合にキー違反が出ることあるって聞いた
0326デフォルトの名無しさん
2006/12/21(木) 12:12:52Paradoxでテーブルの修復はためした?
ためすと重複してるレコードを抽出してくれるよ。
0327デフォルトの名無しさん
2006/12/21(木) 12:26:26ありがとうございます。試してみます。
>>326
TUTIL32を使った修復ツールを作っていて普段はそれで直るのですが今回はそれがメッセージもなく落ちてしまって
使えなかったのでテーブルを作り直しました。
でもその後に修復をかけて成功しても再発するのです。
0328デフォルトの名無しさん
2006/12/21(木) 13:13:26GetDCではうまくいきません。
何かよい方法は無いものでしょうか?
0329デフォルトの名無しさん
2006/12/21(木) 13:14:15×白
○色
どうぞよろしくお願いします。
0330デフォルトの名無しさん
2006/12/21(木) 16:38:40デジャブ?
DVDとかメディアプレイヤーは、オーバーレイを使ってるから、GetDCでは無理。
どうしてもやりたかったら、先にメディアプレイヤーで動画再生しておいて、
DVDを再生すると、後に再生する方は、オーバーレイを使えないのでできるはず。
スマートじゃないけどな。
0331デフォルトの名無しさん
2006/12/21(木) 19:58:40Delphi6 Personalには、Masks.dcuが付いていないようなのです。
何か代用できるものってありませんか?
0332デフォルトの名無しさん
2006/12/21(木) 20:34:35体験版からdcuを抜くとか出来ないの?
0333デフォルトの名無しさん
2006/12/21(木) 20:39:03PXUPGR なんてツールもあるよ。
http://www.rksolution.cz/delphi/delphi.htm
0334333
2006/12/21(木) 20:39:440336デフォルトの名無しさん
2006/12/21(木) 22:58:11TurboDelphiのMasks.pasを適当な別の場所にコピーして、
D6のライブラリパスにコピーした場所を追加してみたら?
ライセンス的に疑問が残るが。
0337デフォルトの名無しさん
2006/12/21(木) 23:03:12俺は今、鬼を見てるぅー。
0338デフォルトの名無しさん
2006/12/21(木) 23:22:02素直にTurbe Delphiに以降しる
0339デフォルトの名無しさん
2006/12/21(木) 23:37:17あるファイル(名前をData.dat、中身はテキスト形式で一行目に番号、2行目に名前、3行目に性別)
が数十人繰り返し書いてあるファイルを、一行づつLoadしていき、各行でレコード型の変数に
代入していく手続き?(または関数)って、どうすればできますか?
だれか、教えて><
procedure TForm1.TextOperation;
var
Doc: TStringList;
Ws: WideString;
begin
if not FileExists('C:\Program Files\Borland\Delphi6\Projects\製作ソフト\recoad.dat') then
ShowMessage('データファイルが見つかりません');
Doc := TStringList.Create;
Doc.LoadFromFile('C:\Program Files\Borland\Delphi6\Projects\製作ソフト\recoad.dat');
Ws := Doc.Text;
ShowMessage(Ws);
doc.Free;
end;
と書いて、ロードした中身確認したところ、recoad.datの全ての行を読み込んで一個の変数に格納してしまい
ました・・・・orz。ファイルの一行づつロードして、一行目をレコード型変数の[1,A]で二行目を[1,B]で
3行目を[1,C]で4行目を[2,A]で5行目を[2,B]・・・・・・・とやっていきたいんです。
0340デフォルトの名無しさん
2006/12/21(木) 23:43:080341デフォルトの名無しさん
2006/12/21(木) 23:52:46//StringListを生成する
//ファイルを読み込む
//1行目をHoge[1,1]に代入する
//2行目をHoge[1,2]に代入する
//x行目をHoge[ここは自分で考えよう]に代入する
0342デフォルトの名無しさん
2006/12/22(金) 00:02:07それは超初心者だけにしておけ。
コードを変えるたびにコメントを変える羽目になる。
失敗すると無関係なコメントが残って被害甚大。
0343デフォルトの名無しさん
2006/12/22(金) 00:04:17コメントにせずにやるべきことを書けばいいんだよ
そこを実装するときに消していくんだ
そうすればすべきことをしない限りコンパイルを通らん
0344デフォルトの名無しさん
2006/12/22(金) 00:04:360346デフォルトの名無しさん
2006/12/22(金) 00:10:24了解。
そういえばToDo なんてのもあるけど、使ってる?
0347デフォルトの名無しさん
2006/12/22(金) 01:35:59仕事でふつーに書くぞ?
0348デフォルトの名無しさん
2006/12/22(金) 01:42:04//StringListを生成する
List := TStringList.Create;
なんて、コード見れば、TStringListのインスタンスを生成してるのは、誰にでも
わかることで、コメント書くなら何のためにインスタンスを生成したかとか書くべきだ。
とどっかで読んだような気がする。
0349デフォルトの名無しさん
2006/12/22(金) 01:48:070350デフォルトの名無しさん
2006/12/22(金) 01:51:110351デフォルトの名無しさん
2006/12/22(金) 01:52:35誰もが読む文学とは違う
0352デフォルトの名無しさん
2006/12/22(金) 02:00:37とりあえず、今のアプリはヘッダー消すのも面倒だから、とりあえず、付けてる。
おかげで、俺のプログラムの3分の1くらいの行数は関数ヘッダーで占められてる。
消してぇ。
0353デフォルトの名無しさん
2006/12/22(金) 02:08:59ついでにdoxygenか類似ツールを導入すればドキュメント管理にもなる
0354デフォルトの名無しさん
2006/12/22(金) 03:40:280355303
2006/12/22(金) 06:27:36で、色々調べたら、PointerへのキャストとPCharへのキャストで、文字列が空の時
次のような違いがあるっぽいですね。
C言語で書くと
char^ p1 = null;
char[] p2 = { '\0' };
って、C言語の正確な構文忘れましたが、上記のようなイメージで、
Delphiの文字列は空の時に、Pointerだと上、PCharだと下の状態になるっぽいですね。
今ごろ知った。orz
0356デフォルトの名無しさん
2006/12/22(金) 07:22:27コメントとソースが食い違ってるとどっちが正しいのかわからなくなる。
「何のためにやってるか」をコメントするならOKだけど、
それを意味付けして命名するとそのコメントも消せるようになる。
関数ヘッダは、cvsとかで管理されてたら全く要らない。
JavaDocみたいに抽出する場合もあるかも知れんが、
内容と合ってないと気づいた分は消すだけでもしないとな。
特に多人数開発で、コピペで体裁だけ整えて間違ったまま放置とかされるとうざい。
関数コピペしてヘッダごとコピペされるとか、
コピー先にあわせて修正したのにヘッダがそのままとか良くあったよ。
0357デフォルトの名無しさん
2006/12/22(金) 09:57:03ま、確かに速いし、仕事してるっぽいんだけど
そういうコードを長年保守して使おうとか考えちゃうのが考え物。
0358デフォルトの名無しさん
2006/12/22(金) 10:03:43そらそうよ
PChar(PAnsiChar)やPWideCharはCの文字列と同じで
ヌル文字列を末尾に必ず付加するからな
0359デフォルトの名無しさん
2006/12/22(金) 10:16:28stringやWideStringを使いたいのですが、その時は、どうすればいいのでしょうか??
もちろん、呼ぶWin32APIは末尾のNULL文字の分のバッファも要求してきます。
で、Win32APIがNULL文字分のバッファだけが必要なとき、
SetLength(S, 0);
Win32API(PChar(S))
で、オッケーでしょうか?Sの長さは0だけど、PCharとして、キャストしたので、
1バイト分だけ確保されたと考えても差し支えないでしょうか??
0360デフォルトの名無しさん
2006/12/22(金) 11:19:23↓こんな感じで(あんまりお勧めしないけど)
procedure TForm1.Button3Click(Sender: TObject);
var
buff: String;
Len: Cardinal;
begin
Len := 256;
buff := StringOfChar(#0, 256);
GetUserName(PChar(buff), Len);
ShowMessage(buff);
end;
0361デフォルトの名無しさん
2006/12/22(金) 12:15:37そこに保存してあるtxtファイルを表示させたいんですがどうすればよいでしょうか?
0362デフォルトの名無しさん
2006/12/22(金) 12:54:280363339
2006/12/22(金) 15:10:25>>341
その他の人アドバイスありがとうです。
参考にします。
コメントをコードよりさきに書いといたらやりやすいってのはちょっと納得してしまいました。
>>361
おれの書いてるコードが少し参考になるよ。あれは、新しいウィンドウが出てきてそこにテキストファイル
の内容がフォーム上に出てくるけど。
0364デフォルトの名無しさん
2006/12/22(金) 20:25:56QDに動画再生機能はない。
0365デフォルトの名無しさん
2006/12/23(土) 05:24:47GetTextStrをオーバーライドするTOhMyGreateStringListでも作るかなぁ。
0366デフォルトの名無しさん
2006/12/23(土) 05:27:070367デフォルトの名無しさん
2006/12/23(土) 05:40:140368デフォルトの名無しさん
2006/12/23(土) 05:42:180369デフォルトの名無しさん
2006/12/23(土) 15:19:40すみません。こんな中途半端な質問で・・・。
0370デフォルトの名無しさん
2006/12/23(土) 15:27:46vista→torbo delpji for net
vista以外→torbo delphi
とturbo使ってない俺が逝ってみる
0371デフォルトの名無しさん
2006/12/23(土) 15:30:56では,今後を考えると,for net なのでしょうか。
0372デフォルトの名無しさん
2006/12/23(土) 15:37:007割方期待が占めてる
ホントの所は作る物次第
0373デフォルトの名無しさん
2006/12/23(土) 15:42:10turbo delphi for net をインストールします。
0374デフォルトの名無しさん
2006/12/23(土) 16:47:22これってGCなの?
0375デフォルトの名無しさん
2006/12/23(土) 16:53:11.NETアプリは言語によらず、CLR上で動作し、GC
0376デフォルトの名無しさん
2006/12/23(土) 18:52:42TTextStreamじゃなくて?
0377デフォルトの名無しさん
2006/12/23(土) 18:53:33.netすんならC#にしとけ
0378デフォルトの名無しさん
2006/12/23(土) 19:39:120379デフォルトの名無しさん
2006/12/23(土) 20:01:32うん、TStringStreamの方。
便利げなんだが、何故かあんまり使われているという話をきかない。
つか、TTextStreamってなんじゃらほい
0380デフォルトの名無しさん
2006/12/23(土) 21:01:35良いんですよね(いずれも無償Ver)
0381デフォルトの名無しさん
2006/12/23(土) 21:09:33標準以外のコンポーネントを使いたいならD6、標準だけでいいならTurbo Explorerで。
0382デフォルトの名無しさん
2006/12/23(土) 21:47:330383デフォルトの名無しさん
2006/12/23(土) 22:06:09ヘルプがしっかりしていて動作が軽快でバグが少ない D6 の方を勧めるよ。
0384デフォルトの名無しさん
2006/12/23(土) 22:19:180385デフォルトの名無しさん
2006/12/23(土) 22:25:14エンコードやデコード、暗号とかの変換系で
stringから変換するときに使った。
いったんTMemoryStreamに渡すよりも読みやすい。
0386デフォルトの名無しさん
2006/12/23(土) 22:37:18TTextStreamのこと?
なんかDelphi7のヘルプを見ても、TTextStreamって載ってないんだよね
0387デフォルトの名無しさん
2006/12/23(土) 23:15:43ADOコンポーネントを追加したいのです。
delphi5用のADOコンポーネントは入手可能でしょうか?。
0388デフォルトの名無しさん
2006/12/23(土) 23:40:21俺が馬鹿なので有力なのが見つかりませんでした・・・。
ありましたら、教えていただければと思います。。
0389デフォルトの名無しさん
2006/12/23(土) 23:53:07>vista以外→torbo delphi
えー? そうなの?
Vistaってネイティブ動かんの??
0390デフォルトの名無しさん
2006/12/24(日) 01:11:29違うプロセスを弄ったことが無いのでよくわからんけど、
ReadProcessMemory, WriteProcessMemory, CreateToolhelp32Snapshot
などのAPI関数名とDelphiをくっ付けてググればいろいろ出てくるんではないかと。
>>389
VCで作られている某ファイラもVista上ではまともに動かないそうで、
Vista上でWin32用アプリを動かすのはなかなか難しいようだ。
0391ミ,,゚Д゚ミノ ◆A6VzDeLphI
2006/12/24(日) 01:25:20http://delfusa.main.jp/delfusalibrary/20060527212010/StringUnit/StringUnitHeavy.pas
SaveStringToFile
0392デフォルトの名無しさん
2006/12/24(日) 08:10:30TlistViewでViewスタイルvsReportにしてて
________________________________________________________________________________________________
番号__|名前_____________________________|年齢|性別|備考_____________________|
________|____________________________________|______|______|____________________________|
________|____________________________________|______|______|____________________________|
________|____________________________________|______|______|____________________________|
________|____________________________________|______|______|____________________________|
________|____________________________________|______|______|____________________________|
________|____________________________________|______|______|____________________________|
________|____________________________________|______|______|____________________________|
________|____________________________________|______|______|____________________________|
________|____________________________________|______|______|____________________________|
________|____________________________________|______|______|____________________________|
________|____________________________________|______|______|____________________________|
________|____________________________________|______|______|____________________________|
って空のTListViewがあるわけですが。。。
前もってレコード変数に代入してるperson[0].bangou とかperson[0].nameとかperson[0].ageとかPerson[0].genderとか
person[0].other......以降 person[1].bangou.....とつづく
のデーターをこのListViewのセルに入れたいのです。
TListView + Delphiでググって調べてhttp://totonica.s41.xrea.com/blog/log/eid229.html#sequel
のようなサイトとか読んだのですが、よく分からなかったでした。
だれか、教えてください。
0393デフォルトの名無しさん
2006/12/24(日) 08:33:16NewItem: TListItem;
I: Integer;
begin
ListView.Items.BeginUpdate;
try
ListView.Items.Clear;
for I := 0 to RecordCount - 1 do
begin
NewItem := ListView.Items.Add;
NewItem.Caption := person[I].bangou;
NewItem.SubItems.Add(person[I].name);
NewItem.SubItems.Add(person[I].age);
NewItem.SubItems.Add(person[I].gender);
end;
finally
ListView.Items.EndUpdate;
end;
end;
0394デフォルトの名無しさん
2006/12/24(日) 08:33:46マジでつか!?
Vistaで正常に動かすにはVista対応Delphiのリリースまで待たなくてはならないんでつか?
0395デフォルトの名無しさん
2006/12/24(日) 09:51:25少なくとも、お行儀の良いプログラムならVista上でも動くには動くだろう。
まぁ、Delphi特有の大きさ0のアプリケーションウィンドウの問題とかあるが。
とりあえず、
http://dn.codegear.com/article/33747
を読んだら?
0396デフォルトの名無しさん
2006/12/24(日) 16:17:52TChartを使ってグラフを表示しているのですが、
起動直後にポップアップメニューのメニューアイテムクリックイベントで
Chart2.BottomAxis.Maximum:=strtointdef(inputbox('最大値入力','最大値を入力してください。','100'),100);
としても最大値に変化が無く一旦Chart2を右ドラッグするとこのメソッドが適応されるようです。
検索ワードでもいいのでどなたか教えていただけませんか?
環境はD5 Ent+UP2 + XP
0397396
2006/12/24(日) 16:21:020398デフォルトの名無しさん
2006/12/24(日) 18:52:00最大値を変えた後、とりあえず、TChartのUpdateか、Invlidateか、repaintメソッド呼んでだら、どうなる?
0399ミ,,゚Д゚ミノ ◆A6VzDeLphI
2006/12/24(日) 21:50:26それを読んだ上で
D_DevLog アプリケーションウィンドウに対する対処 (4)
http://ddev.blog46.fc2.com/blog-entry-70.html#more
を使うと、かなり楽々にVista対応できますね。
漏れは、AppWinFixを改造してTCustomSubFormも作って
便利に使っています。
AppWinFixをIDEにパッケージインストールしたとたん
Delphi自体が、Vista対応挙動にして藁太ですが。
0400デフォルトの名無しさん
2006/12/24(日) 21:51:17> Person[0].gender
政治的に正しいレコード型かww
>>393
RecordCountが「未定義の識別子」になる悪寒。
0401392
2006/12/25(月) 07:00:46Person[0].sexとしてほしかったのか・・・w
たしかにResordCountでエラーになるよ。
そこの部分は省いて、
NewItem.SubItems.Add(person[I].name);
NewItem.SubItems.Add(person[I].age);
NewItem.SubItems.Add(person[I].gender);
だけ、付け加えても、えらーにはならなかったけど、ListViewになにも表示されてなかった
空のまんま。どうやったらいいでしょう・・・
0402デフォルトの名無しさん
2006/12/25(月) 07:28:42I に値が代入されてないんじゃね。
0403デフォルトの名無しさん
2006/12/25(月) 09:54:14TStringStreamのほうです。
TTextStreamって、
ttp://www.castle-cadenza.demon.co.uk/decorate.htm
ここが出典なのかな?
0404デフォルトの名無しさん
2006/12/25(月) 09:58:46君の問題はリストビューに項目を追加することだろ??for文の使い方まで、教えなきゃいけないのか。
適切に置き換えろよ。
0405デフォルトの名無しさん
2006/12/25(月) 16:52:22出来ました。
ありがとうです。
0406デフォルトの名無しさん
2006/12/25(月) 23:53:00それやると、たとえばフォームの状態を復元する
既存コンポーネントとかと互換性がなくなるよね。
0407デフォルトの名無しさん
2006/12/26(火) 01:51:19BMP、WAV、TXTの3種類のファイル群を
EXEとは別にスキンファイルとしてひとつにまとめ
実行時はメモリ内部にスキンファイルを展開し
TBitmap、TImagelist、SndPlaySound、SND_ASYNCなどで処理する、
という流れを考えているのですが、実際これをやるには
どのあたりの知識が必要でしょうか、ヒントください。
雛形になる、というか参考になるソースってありますでしょうか?
よろしくお願いいたします。
0408デフォルトの名無しさん
2006/12/26(火) 02:07:14コンポーネント使うとか・・・
http://www.tmssoftware.com/
TMS Skin Factory
http://www.tmssoftware.com/tsf.htm
0409デフォルトの名無しさん
2006/12/26(火) 02:09:050410デフォルトの名無しさん
2006/12/26(火) 02:10:580411デフォルトの名無しさん
2006/12/26(火) 02:24:01その発想、選択肢はありませんでした。
ありがとうございます。勉強してきます。
0412デフォルトの名無しさん
2006/12/26(火) 02:52:590413デフォルトの名無しさん
2006/12/26(火) 05:17:48ソースで勉強して実装したいと思います。
0414デフォルトの名無しさん
2006/12/26(火) 09:07:49kwsk
0415デフォルトの名無しさん
2006/12/26(火) 10:50:51指定した入力が入るまでBEEP音を鳴動させようと
windowsAPIのBeepを使用しました。
リファレンスでは、第二引数の値を「-1」にすると
非同期で動作し再度コールされるまでBEEP音が鳴動するとかいてありました、
引数を「-1」にするとコンパイルエラーが発生します。
そこで、最新のリファレンスをみるとその部分の記述が消えていました。
上記のようなことを実現したいのですが、方法がありましたお教え頂けませんか。
0416デフォルトの名無しさん
2006/12/26(火) 11:12:430417デフォルトの名無しさん
2006/12/26(火) 11:22:57M := TMemoryStream ;
begin
M := TMemoryStream.Create ;
M.LoadFromFile('test.wav') ;
SndPlaySound(PChar(M), SND_ASYNC) ;
end;
コンパイルは通ったのですがtest.wavが鳴りません。単純に
SndPlaySound(PChar(test.wav), SND_ASYNC) ;
とすれば鳴りますが、一旦メモリにプールしたいんですよね。
TMemoryStreamの使い方が間違ってるのでしょうか?
0418デフォルトの名無しさん
2006/12/26(火) 11:26:54思いっきり間違っとる
オブジェクト指向の勉強をまずしたほうがいいな
クラスと配列は全然違う
TMemoryStreamの内容は、Memoryプロパティだ。
0419デフォルトの名無しさん
2006/12/26(火) 11:27:01SND_MEMORY
0420デフォルトの名無しさん
2006/12/26(火) 11:43:22SndPlaySound(PChar(M.Memory), SND_MEMORY or SND_ASYNC) ;
に書き直すことでtest.wavの再生に成功しました。
本当に助かりました。ありがとうございます。
0421デフォルトの名無しさん
2006/12/26(火) 11:53:34M.Free; しなくてもいいの?
0422デフォルトの名無しさん
2006/12/26(火) 15:08:30オプションはリリースするときもチェックついたままでよろしいのでしょうか??
ヘルプによると、dcuファイルはこれらの影響を受けるような事が書いてありますが、
生成されるEXEも影響を受けるんでしょうか?
0423デフォルトの名無しさん
2006/12/26(火) 15:37:51すみません。M.Free;は質問した時点で書き忘れていました。ご指摘ありがとうございます。
0424ななしへたぐらま ◆XcB18Bks.Y
2006/12/26(火) 20:56:43ちなみに最初のパラメータはキャストしなくてもOKです.
TMemoryStream.Memoryはpointer型(汎用のポインター型)で,これは
あらゆるポインター型の変数(とパラメータ)に代入できるからです.
>>422
それらのオプションでは影響を受けないと思われます.
(少なくとも手持ちのDelphi 5は)
ヘルプの説明にに『実行ファイル』という言葉があったと思います.
これは簡単に言うと .exe ファイルのことです.
(厳密には .exe でない実行ファイルも存在します)
0425デフォルトの名無しさん
2006/12/26(火) 21:30:48音は出るようになったんですが、
微妙なタイムラグが気になって仕方がないです。
ソースは
ttp://codezine.jp/a/article.aspx?aid=172
を参考にしました。
midiOutShortMsgを使っています。Sleepは使っていません。
Timerでintervalを1で使っています。
タイムラグ0は物理的に不可能と思うんですが、もっとレスポンスのいい方法はないでしょうか?
0426デフォルトの名無しさん
2006/12/26(火) 22:03:36ソフトウェアなら、どうしても発音が遅れます。
0427デフォルトの名無しさん
2006/12/26(火) 22:21:260428デフォルトの名無しさん
2006/12/26(火) 23:39:41コピペ機能を使えるようにするツールが昔あった記憶があるのですが
(メモと同じ機能化)ツール名やある場所しりませんでしょうか?
0429デフォルトの名無しさん
2006/12/26(火) 23:44:360430デフォルトの名無しさん
2006/12/26(火) 23:50:24古いノートで使ってるんで、
最新バージョンは入れてない
0431デフォルトの名無しさん
2006/12/26(火) 23:58:00デルファイ アルファ
Delphiのコードエディッタ上で右クリックするとコピー、貼付け等のPopupmenuを表示する。
ttp://www.delphianworld.com/ の Toolsにあるけど
0432デフォルトの名無しさん
2006/12/27(水) 00:13:48それです!
ありがとうがざいます。
0433デフォルトの名無しさん
2006/12/27(水) 01:47:33ありがとうございます。これで、いちいち、リリース用とかデバッグ用とか設定変える手間が省けます。
0434デフォルトの名無しさん
2006/12/27(水) 01:57:40Timerは、TTimerかな?これは、最高でも精度が、20、30msecくらいしかでないっつーのと、
ソフトウェアMIDI音源なら、さらに遅れる。
0435デフォルトの名無しさん
2006/12/27(水) 02:13:45コンポーネントを使うときに「DesignIntf.dcuが無い」
というエラーがでまして、
インストールフォルダに入っていた"DesignIntf.int"の
内容がPascalソースっぽかったので
*.pasにリネームしてライブラリパスに追加したのですが、
今度はDesignMenus.dcuが無いと言われてしまい、
はまってしまいました。
お助け願えないでしょうか、、
0436デフォルトの名無しさん
2006/12/27(水) 02:17:220437デフォルトの名無しさん
2006/12/27(水) 23:54:36type
TFoo = packed record
A: Integer;
B: array [0..0] of Byte;
end;
と宣言されているレコードのメンバBに必要なメモリ領域を割り当てるにはどうすれば、
いいでしょうか?
var S: array [0..127] of Byte;
とし、Foo.B = SやらFoo.B = Pointer(B)やらやっても型の互換性がないとエラーになります。
0438デフォルトの名無しさん
2006/12/28(木) 00:18:22TFoo32 = packed record
A: Integer;
B: array[0..31] of Byte;
end;
そうでなければ TFoo 全体を自分で適量確保する。
GetMem(SizeOf(Integer) + SizeOf(Byte) * x)
0439デフォルトの名無しさん
2006/12/28(木) 00:20:23Foo:TFoo;
begin
FillChar(Foo,SizeOf(Foo),0);
かな
0440デフォルトの名無しさん
2006/12/28(木) 00:25:16そのコードが何なんだ?
0441デフォルトの名無しさん
2006/12/28(木) 00:26:51Windows.pasでそんなの使ってるのか
0442デフォルトの名無しさん
2006/12/28(木) 01:40:46ぐぉ。めんどっちいですね。長さ固定は困るので、動的な方でトライしてみます。
0443デフォルトの名無しさん
2006/12/28(木) 02:03:010444デフォルトの名無しさん
2006/12/28(木) 12:08:070445デフォルトの名無しさん
2006/12/28(木) 17:34:51いきなり漢字は無理でしょうから
最初は0〜9までのひと桁の数字を判別できれば
と考えています。
実現には技術的にどういった知識が必要でしょう?
0446デフォルトの名無しさん
2006/12/28(木) 17:41:33ゾンデ法
ストロークアナリシス法
ニューラルネットワーク
ファジィ
カオス
0447デフォルトの名無しさん
2006/12/28(木) 17:43:15単純なニューラルネットワークを使ったパターン認識が一番取っ付きやすいと思う。
0448イタリア人(ItalianA)
2006/12/28(木) 19:07:24で、手元にナツメ社のDelphi3.1ハンドブックがあるのですが
これは役立たずになっているのでしょうか?
0449デフォルトの名無しさん
2006/12/28(木) 19:12:03おれもDelphi勉強中。まだ、Delphi歴1ヶ月。
3.1は古いんじゃない?
0450イタリア人(ItalianA)
2006/12/28(木) 19:24:43ありがとう。とりあえず試してみるよ
0451デフォルトの名無しさん
2006/12/28(木) 19:40:543.1時代の参考書も使えるかと
コンポーネントとかは違うけど
0452イタリア人(ItalianA)
2006/12/28(木) 19:53:21わかりました。勇気がわいてきました。
コンポーネントの違いはなんとなく空気読んでいきますわ
0453デフォルトの名無しさん
2006/12/28(木) 20:03:140454デフォルトの名無しさん
2006/12/29(金) 00:14:04使用後は必ず_Releaseメソッドを使うべきなんでしょうか?
0455デフォルトの名無しさん
2006/12/29(金) 00:21:54そうでないならコンパイラに任せておけばいい。
0456デフォルトの名無しさん
2006/12/29(金) 00:33:23ありがとうございます。
_AddRefメソッドは呼んでいないのでコンパイラに任せます。
0457デフォルトの名無しさん
2006/12/29(金) 05:13:340458デフォルトの名無しさん
2006/12/29(金) 05:35:40http://groups.google.co.jp/group/borland.public.delphi.non-technical/msg/b8df0dd3c345e297?hl=ja&
0459デフォルトの名無しさん
2006/12/29(金) 10:50:21Delphiで作ったアプリが>>395のような追加コードなしに問題なく表示できなきゃだめ?
どの機能に対応するかによって答えは変わってくるよ。
なんったて、Windows2000で使えるようになったUnicode文字でさえ、現状のDelphiは標準の
コントロールで表示できないし。そういう意味で言うと、2000すら対応していない。
0460デフォルトの名無しさん
2006/12/29(金) 15:05:26毎回親切に答えてくれてありがとうございます。
今回の質問なんですが・・・
ユーザーの入力データーから名簿のデーターを読み込み、IndexOfでユーザーが入力した名簿のデーター
がすでにあればOKなんですが、ユーザーが入力したデータが既存の名簿データにない場合、
ダイアログ(入力用の新規フレーム)を出して、ユーザーに名簿にないので、その他のデーターの入力
を促して、その間はプログラムの流れは止まってるみたいな処理にしたいのですが・・・
i := 0;
Dir:=GetCurrentDir;
Doc := TStringList.Create;
Doc.LoadFromFile(Dir+'\record.dat'); //既存のデーターを読み込み
Ws := Doc.Text; //データーの内容保存
repeat
Position := Doc.IndexOf(Person[h].Name);
if Position = -1 then //既存のデーターにユーザーの名前が存在しない場合
begin
//ここらへんにユーザーにダイアログを提示して
//入力を促す処理を書いて
//その入力が終わるまでプログラムの流れは一時停止
//しておいて欲しいです。Readlnみたいな・・・で、ユーザ
//で入力が終わったらそれを変数に代入して、プログラム
end; //再生・・
i := i+1;
Until
i > Ninzuu - 1;
end;
お願いします。
0461デフォルトの名無しさん
2006/12/29(金) 15:14:45,,r::::::::::::〈:::::::::) ィ::::::ヽ
〃::::::::::::;r‐''´:::::::::::::::::::::ヽ::ノ
,'::;'::::::::::::::/::::::::::::::::::::::::::::::::::::
l::::::::::::::::::l::::::::::●::::::::::::::●:::::ji
|::::::::::::::::::、::::::::::::::( _●_)::::::,j:l クマー!
}::::::::::::::::::::ゝ、::::::::::|∪|_ノ::;!
. {::::::::::::::::::::::::::::`='=::ヽノ:::::/
';::::::::::::ト、::::::::::::::i^i::::::::::::/
`ー--' ヽ:::::::::::l l;;;;::::ノ
【ラッキーレス】
このレスを見た人はコピペでもいいので
10分以内に3つのスレへ貼り付けてください。
そうすれば14日後好きな人から告白されるわ株は上がるわ
出世しまくるわ体の悪い所全部治るわでえらい事です
0462デフォルトの名無しさん
2006/12/29(金) 15:32:10入力が1行で良いのならInputBox使えばいいし、もっと入力項目
が多いんだったら、フォームを作ってShowModalで表示すれば
入力が終わるまでメインの方は止まる。
ただ、キャンセルされた場合の処理をどうするかを考える必要が
ある。
0463デフォルトの名無しさん
2006/12/29(金) 17:00:43ありがとうです。できました。
value := InputQuery(Person[h].Name+'の所在地',Person[h].name+'の所在地情報を入力してください。',NewPlace);
if not value then
begin
ShowMessage('入力がキャンセルされました。処理を中断します。');
exit;
end
else
Person[h].Place := NewPlace;
InputBox調べてたら、似たようなやつでInputQueryってのがあって、Boolean型でキャンセル押したらFalse返して
それ以外は、Trueを返して変数に入力内容をテキスト型にして返すって関数があってそれ使ったら
うまくいきました。
0464デフォルトの名無しさん
2006/12/30(土) 17:39:26ListBoxにアイテムを追加していき、常に最後(一番下)のアイテムを選択しておく
にはどうすればいいのでしょうか?
つまりスクロールバーを下げなくても最後のアイテムを見えるようにしておきたい
のです。
よろしくお願いします。
0465デフォルトの名無しさん
2006/12/30(土) 17:57:07指定したWebサイトを開くにはどうすればよいでしょうか?
(その後にブラウザの制御などは行わない場合)
0466デフォルトの名無しさん
2006/12/30(土) 18:43:49ListBox1.Items.Add('HOGE');
ListBox1.ItemIndex := ListBox1.Count-1;
>>465
ShellExecute(0, nil, 'http://www.2ch.net/', nil, nil, SW_NORMAL);
0467464
2006/12/31(日) 01:36:20できました!ありがとうございました。
ItemIndexプロパティはアイテムの位置を取得するだけでなく、コードから
アイテムを選択するのにも使えるのですね。
これからもよろしくお願いします。
0468デフォルトの名無しさん
2006/12/31(日) 15:52:10(andやor)のようですけど
そうなるとビット演算のばやいCみたく
if (Value and A_FLAG) then ... だとだめなの?
0469デフォルトの名無しさん
2006/12/31(日) 15:53:370470468
2006/12/31(日) 15:54:35if ((Value and A_FLAG) <> 0) then
こうならいいの?
0471デフォルトの名無しさん
2006/12/31(日) 15:55:250472デフォルトの名無しさん
2006/12/31(日) 15:55:51って調べたな。シフト演算を随分使ってないと忘れる。ヘルプにのってんじゃん?
0473468
2006/12/31(日) 15:55:540474468
2006/12/31(日) 15:59:14Cみたいに演算子分けなかった理由とかあるのかな?
0475デフォルトの名無しさん
2006/12/31(日) 15:59:25可能なのであれば実現方法を教えて下さい。宜しくお願いします。
0476デフォルトの名無しさん
2006/12/31(日) 16:01:580477デフォルトの名無しさん
2006/12/31(日) 17:03:100478デフォルトの名無しさん
2006/12/31(日) 17:08:570479デフォルトの名無しさん
2006/12/31(日) 17:10:59できましたーありがとうございましたー
0480デフォルトの名無しさん
2006/12/31(日) 17:56:21Cと比べて型に厳しいから、 対象が論理型の場合論理演算、整数型ならビット演算
というように判別可能だからじゃないかな。
0482デフォルトの名無しさん
2006/12/31(日) 18:55:040483デフォルトの名無しさん
2006/12/31(日) 19:22:04これがバージョンによって挙動が違うから困る
0484デフォルトの名無しさん
2006/12/31(日) 21:31:050485デフォルトの名無しさん
2007/01/01(月) 03:31:16http://www.torry.net/pages.php?id=307
0486デフォルトの名無しさん
2007/01/01(月) 10:32:38回答者も初心者ばっかみたいだから信用しない方が・・・・
0487デフォルトの名無しさん
2007/01/01(月) 15:20:52識者自負してんなら答えだせハゲ
0488デフォルトの名無しさん
2007/01/01(月) 23:37:02うるせぇよ、500円ハゲ。
0489デフォルトの名無しさん
2007/01/02(火) 02:04:26ググってiTunesCOMWindowsSDKをダウンロードしたけど、さっぱり使い方が判りません。
英語はソースのコメント程度ならなんとなく分かるんですけど、文章になるとてんでダメです。
よろしくお願いします。
0490489
2007/01/02(火) 02:07:00補足
使い方がわからないというのは、Delphiへのインストール(?)の仕方とか宣言のしかたからです。
Delphi6を使っています。
0491デフォルトの名無しさん
2007/01/02(火) 02:37:19.idlが入ってないみたいだから他のタイプライブラリとか参考に
手書きでPascalに直すしかしょうがないんじゃね?
0492デフォルトの名無しさん
2007/01/02(火) 11:34:00それを取得する方法ってありますか?
0493489
2007/01/02(火) 14:00:58iTunesをコントロールするのは、プロジェクト>タイプライブラリの取り込みでタイプライブラリーを取り込んで簡単にできました。
ググってもなかなか出てこなかった…。SDKとか関係なかった。
0494デフォルトの名無しさん
2007/01/02(火) 14:04:56utftosjis.pas
ttp://homepage3.nifty.com/m-and-i/tips/utftosjis.htm
↑これ使おうと思って↑に書いてある通りに↓をした!
C:\Program Files\Borland\Delphi6\Lib に utftosjis.pas という名前で保存した。
(utftosjis.pas保存時のエンコードはshift_jis、改行コードはCRLF)
だけど unit Utf8tosjis; の行で↓のエラーが出る!
[エラー] utftosjis.pas(16): Unit で指定された 'Utf8tosjis' がファイル名と一致しません
[致命的エラー] Unit1.pas(7): 'utftosjis.pas' ユニットはコンパイルできませんでした
なんで??? 先生! 教えてプリ〜〜〜ズ!
0495494
2007/01/02(火) 14:07:50uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, utftosjis;
:
:
procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Lines.Text := UTF82Sjis(Memo1.Lines.Text);
Memo1.Lines.SaveToFile('utf-8text.txt');
end;
0496デフォルトの名無しさん
2007/01/02(火) 14:12:05utftosjis.pas → Utf8tosjis.pas
unitの識別子とファイル名は同じでなければならない。
0497494
2007/01/02(火) 14:20:12ありがとうございます! やっぱしサイトのほうが間違ってたのか〜、
うp前に確認くらいしてくれって感じっすorz これからいじってみますわ。
0498494
2007/01/02(火) 14:42:32でも↓のエラーが出てしまいます。
[エラー] Unit1.pas(29): 未定義の識別子 : 'SJIS2UTF'
[致命的エラー] Project1.dpr(6): 'Unit1.pas' ユニットはコンパイルできませんでした
ちゃんとuses節に Utf8tosjis を追加してるのに何故 未定義 になるの? 先生教えて!m(><)m
______________________________
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Utf8tosjis;
:
:
procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Lines.Text := SJIS2UTF(Memo1.Lines.Text);
Memo1.Lines.SaveToFile('utf-8text.txt');
end;
0499494
2007/01/02(火) 14:50:19とすれば良いみたいです、お騒がせしました!
ダメ元で色々な書き方しててこれ見付けました!
ユニット名.関数名( ) なんて書き方は今まで見た事なかったから動いてビビッた(汗
0500デフォルトの名無しさん
2007/01/02(火) 15:44:02まぁアレだ・・・
あ き ら め ろ
0501デフォルトの名無しさん
2007/01/02(火) 15:56:23非アクティブ時に[Alt]+H とかのキー入力を受け取りたいんですけど、どうすればいいんでしょう?
0502デフォルトの名無しさん
2007/01/02(火) 15:59:40グローバルホットキーを登録する。
0503デフォルトの名無しさん
2007/01/02(火) 17:59:04SetWindowsHookExでいけるんじゃね?
詳しくはぐぐるか、Windows Programer's Reference参照。
ここを読めばわかる
www.kab-studio.biz/Programing/Codian/DLL_Hook_SClass/06.html
0504デフォルトの名無しさん
2007/01/02(火) 18:00:27>498
一度Delphiのマニュアル読んだほうがええぞ。
そんなくだらんことでいちいち質問してたら、しまいには誰も回答して
くれんぞ。
0505デフォルトの名無しさん
2007/01/02(火) 18:04:55取得って?
今表示されているヘルプの内容が知りたいとか?
バルーンヘルプの表示方法ではないよね?
0506デフォルトの名無しさん
2007/01/02(火) 20:00:30ごくまれに意図していない変な描画になる(メニュー文字が表示)のはなんでだろ?VCLのバグ?
0507デフォルトの名無しさん
2007/01/02(火) 20:04:26SS見せてくれ。
0508デフォルトの名無しさん
2007/01/02(火) 20:52:42DrawPanelイベントでCanvasに描画してる。ヘルプどおり。
その現象が発生するのがごくまれってのがよくわからない。
0509デフォルトの名無しさん
2007/01/02(火) 21:27:52(質問)
2005と2006(TurboDelphi)では文法に変更があったのでしょうか?
(理由)
カットシステム社のDelphi2005Vol1入門編を購入し、掲載されていた
簡易エディタをそっくりそのまま入力してみたのですが、エラーだらけでにっちも
さっちも行かなくなりました。
(試したこと)
ソースリストの誤入力、プロバティの誤設定がないか → 昨日から都合8回見直しましたが発見できませんでした。
カットシステム社のHPで記事訂正の告知がないか → なし
(環境)
アスロンXP2800+
Mem 1GB*1
HDD 250GB*3
GeForce6800
WindowsXP Pro SP2
TurboDelphi2006
0510訂正です
2007/01/02(火) 21:29:370511デフォルトの名無しさん
2007/01/02(火) 21:34:08エラーと該当ソースを張ろう
0512デフォルトの名無しさん
2007/01/02(火) 21:56:02もよかったらソース晒してくれい。
その話だけではさぱーりわからん。
0513デフォルトの名無しさん
2007/01/02(火) 21:59:500514デフォルトの名無しさん
2007/01/02(火) 22:05:56でたエラーとエラーが出ている行くらい出してくれないと誰も答えられないと思うぞ。
変更はあるにはあるがそれほどの修正は必要ない。
0515デフォルトの名無しさん
2007/01/02(火) 22:13:260516509
2007/01/02(火) 22:16:49まずはこれです。
(ソース)
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Borland.Vcl.Menus, System.ComponentModel, Borland.Vcl.StdCtrls,
Borland.Vcl.Clipbrd, Menus, StdCtrls;
(エラー)
[Pascal 致命的エラー] main.pas(7): F1026 ファイル 'Borland.Vcl.Menus.dcu' が見つかりません
0517509
2007/01/02(火) 22:31:32ttp://zetubou.mine.nu/timer/file/bomber33624_h24.txt
及び
ttp://zetubou.mine.nu/timer/file/bomber33621_h24.txt
それと、慌てていて恐縮ですが、516でupしました部分の訂正です
○ unit main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Borland.Vcl.Menus, System.ComponentModel, Borland.Vcl.StdCtrls,
Borland.Vcl.Clipbrd;
0518デフォルトの名無しさん
2007/01/02(火) 22:47:07これはVCL.NET?
0519デフォルトの名無しさん
2007/01/02(火) 22:57:07え、これって.ニートなん?
なんかusesの書き方が全然違うとおもたけど...
実は.ニートじゃなくてDelphi for Win32なので
Borland.Vcl.Menusという指定の仕方ができない...とか?
0520デフォルトの名無しさん
2007/01/02(火) 22:58:17> Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
> Dialogs, Borland.Vcl.Menus, System.ComponentModel, Borland.Vcl.StdCtrls,
> Borland.Vcl.Clipbrd;
Delphi WIN32 なら
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls, Clipbrd;
で、どうでしょ。
0521デフォルトの名無しさん
2007/01/02(火) 23:04:24> Borland.Vcl.Menusという指定の仕方ができない...とか?
この形式はWIN32でも使えると思いますけど
Borland.Vcl はVCL.NET のソースなので、WIN32 パーソナリティでは
パスが通っておらず、エラーが出るのだと思います。
0522509,516
2007/01/02(火) 23:09:23に対して私がインストールしたのはWin32でした。
根本的に間違っていたということですね。
ご指摘ありがとうございました。
Delphi6のオフィシャルコースウェアを参考に勉強してみます。
(補足)uses節ですが、当初は別の場所でエラーが出たため、テキストのソースリストと突合してみて、
手動で書き直した結果新たなエラーを呼んでしまった次第です。
お手間を取らせてしまって申し訳ありませんでした。
なんだか、FM-7用のプログラムをそのままX1に打ち込んで
「動かない?」と言っているような感じですね orz
0523デフォルトの名無しさん
2007/01/02(火) 23:56:08が ん が れ !
0524デフォルトの名無しさん
2007/01/03(水) 00:12:01>「動かない?」と言っているような感じですね orz
ワロタ
がんがれ
0525ミ,,゚Д゚ミノ ◆A6VzDeLphI
2007/01/03(水) 00:59:50VirtualKeyにはOrd('A')
と、値を渡してやればいいっす。
procedure SetHotKeyToOS(Handle: THandle; HotKeyNumber: Integer; VirtualKey: Word;
Shift, Ctrl, Alt, Win: Boolean);
var
Modifiers: Word;
begin
Modifiers := 0;
if Shift then Modifiers := Modifiers or MOD_SHIFT;
if Ctrl then Modifiers := Modifiers or MOD_CONTROL;
if Alt then Modifiers := Modifiers or MOD_ALT;
if Win then Modifiers := Modifiers or MOD_WIN;
RegisterHotKey(Handle, HotKeyNumber, Modifiers, VirtualKey);
end;
procedure TForm1.WMHotKey(var Msg: TWMHotKey);
begin
case Msg.HotKey of
HotKeyID:
PopupCtrlWindow;
end;
end;
0526デフォルトの名無しさん
2007/01/03(水) 01:39:530527デフォルトの名無しさん
2007/01/03(水) 09:03:09PanelのTextを変えたりするとそれが出る事がある。(D6パー)
0528デフォルトの名無しさん
2007/01/04(木) 10:44:510529デフォルトの名無しさん
2007/01/04(木) 15:21:070530デフォルトの名無しさん
2007/01/04(木) 16:24:03どうやるのが簡単ですか?
0531デフォルトの名無しさん
2007/01/04(木) 16:29:540532デフォルトの名無しさん
2007/01/04(木) 16:31:410533デフォルトの名無しさん
2007/01/04(木) 16:42:03いやらしいこと考えてないですか?
0534デフォルトの名無しさん
2007/01/04(木) 18:42:29Socketコンポ貼り付けてそれで通信じゃね?
1方はサーバーで受信待ち、もう片方から文字列を送信
製品のサンプルでそんなやつなかったっけ?
0535デフォルトの名無しさん
2007/01/04(木) 22:34:10なCreateProccessまたはWinExec
0536530
2007/01/04(木) 23:23:51サンプルソースがわかりやすかった。
ぐぐる前にマイパソの中身を確認しないとな…。
>>533
かわいいあの子のパソコンに卑猥なメッセージをポップアップとか、キーロガーとかは全然発想もつかないです><;。
家庭内LANにぶら下がったiTunes専用マシンを遠隔操作するアプリを作るだけです。
これで技術的問題はすべてクリア。あとは組むだけ。
0537デフォルトの名無しさん
2007/01/05(金) 00:22:140538デフォルトの名無しさん
2007/01/05(金) 07:01:470539デフォルトの名無しさん
2007/01/05(金) 09:41:120540デフォルトの名無しさん
2007/01/05(金) 10:24:56DelのListViewじゃ出来ないの?
0541デフォルトの名無しさん
2007/01/05(金) 11:17:36結果を取得したいのですが、どうすればいいでしょうか
0542デフォルトの名無しさん
2007/01/05(金) 11:27:02出来る
>>541
VB6で作成したDLLが分からないから答えようがない
0543デフォルトの名無しさん
2007/01/05(金) 11:28:090544デフォルトの名無しさん
2007/01/05(金) 11:32:520545デフォルトの名無しさん
2007/01/05(金) 14:21:100546デフォルトの名無しさん
2007/01/05(金) 14:32:360547デフォルトの名無しさん
2007/01/05(金) 15:37:48スロットマシンつくってるんですが
image1とimage2とimage3が同じ画像になったときに
labelに文字を表示したいのですができるでしょうか?
0548デフォルトの名無しさん
2007/01/05(金) 15:41:200549デフォルトの名無しさん
2007/01/05(金) 15:49:230550デフォルトの名無しさん
2007/01/05(金) 15:53:450551デフォルトの名無しさん
2007/01/05(金) 15:56:46すいません、状況説明が足りませんでした。
マウスのドラッグで位置を変えるのはどうすればいいのでしょうか。
0552デフォルトの名無しさん
2007/01/05(金) 15:58:59ほんとすいません、
if の中がわからないんです
timerでloadfromfile、nam、couとかつかってやってるんですが、
どうしたらいいでしょうか??
0553デフォルトの名無しさん
2007/01/05(金) 15:59:37後は3つ画像のファイルサイズを調べて同じなら一致したと見なす
などなど、何を持って同じとするかは仕様による
0554デフォルトの名無しさん
2007/01/05(金) 16:04:03onMouseMoveを使えば出来るんじゃない?
0555デフォルトの名無しさん
2007/01/05(金) 16:04:28画像番号が3つとも一致したら・・・みたいな感じじゃないの?
0556デフォルトの名無しさん
2007/01/05(金) 16:06:20> loadfromfile
を使うのだったら、ファイル名が一致とか。
0557デフォルトの名無しさん
2007/01/05(金) 16:18:08ありがとうございます!
でもちょっと自分にはむずかしいのでそこは調べてやってみます
>>556
ファイル名一致でいくには、どううちこんだらいいでしょうか?
ifでイコールとかいろいろうちこんでるんですがよくわからなくて・・・
質問ばっかりですみません
0558デフォルトの名無しさん
2007/01/05(金) 16:22:00nam とcou って何?
コードで示して。
0559ミ,,゚Д゚ミノ ◆A6VzDeLphI
2007/01/05(金) 16:28:03ラベルが動かせるかどうかは知らんが、
つまり、こういうことでしょ。
Delphiサンプルプログラム集[Mr.XRAY]
http://homepage2.nifty.com/Mr_XRAY/Delphi/plSamples/index.htm
http://homepage2.nifty.com/Mr_XRAY/Delphi/plSamples/T_ControlDrag1.htm
0560デフォルトの名無しさん
2007/01/05(金) 16:33:48レスありがとうございます。
if Shift=[ssLeft] then
begin
imgBack.Top:=Y;
imgBack.Left:=X;
end;
とコーディングしたんですが、予想外の動きをしてしまいます。
この、X,Yはなんの座標なんでしょう?
0561デフォルトの名無しさん
2007/01/05(金) 16:36:29nam:array[0..7]of string
=('1.jpg','2.jpg','3.jpg','4.jpg','5.jpg','6.jpg','7.jpg','8.jpg');
var
cou:integer;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
image1.Picture.LoadFromFile(nam[cou]);
cou:=cou+1;
if cou=8 then
cou:=0;
end;
これで短いインターバルでまわして、
timerを止めたときに絵が出るようにしています
もしかしたらすごく効率悪いやり方なのかもしれないです;
0562デフォルトの名無しさん
2007/01/05(金) 16:36:42それならそうと言ってくれ
TLabelはハンドル持ってないから却下(不可能じゃないけど非常に面倒くさい)
変わりにTStaticTextを使った方法で
Borland公式からのパクリだけど
procedure TForm1.StaticText1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
const
SC_DRAGMOVE=$F012;
begin
ReleaseCapture;
TWinControl(Sender).Perform(WM_SYSCOMMAND,SC_DRAGMOVE,0);
end;
0563デフォルトの名無しさん
2007/01/05(金) 17:05:52var
cou:integer;
s1, s2, s3: String;
//Timer2、Timer3も同様にLoadFromFileの直後にs2, s3にファイル名を代入
procedure TForm1.Timer1Timer(Sender: TObject);
begin
image1.Picture.LoadFromFile(nam[cou]);
s1 := nam[cou];
cou:=cou+1;
if cou=8 then
cou:=0;
end;
ストップボタンのクリックイベントで
if (s1 = s2) and (s2 = s3) then
Label1.caption := 'ヘーイ!!キタコレ!!!';
あんまいいやり方じゃないな
0564デフォルトの名無しさん
2007/01/05(金) 17:07:49cou1, cou2, cou3 にして
if (cou1 = cou2 = cou3) then
0565デフォルトの名無しさん
2007/01/05(金) 17:20:41if (cou1 = cou2 = cou3) then
なんてコンパイル通るんだっけ?
0566デフォルトの名無しさん
2007/01/05(金) 17:21:220567デフォルトの名無しさん
2007/01/05(金) 17:41:41CloseQueryでFalseにするとWindowsのシャットダウンが出来ません。
どう対応すればいいんでしょうか。
0568デフォルトの名無しさん
2007/01/05(金) 17:48:44爆死。ごめんなさい。
0569デフォルトの名無しさん
2007/01/05(金) 17:55:040570デフォルトの名無しさん
2007/01/05(金) 17:55:49CloseQueryでFalseを返すとフォームのクローズを拒否するのでだめ。
Trueを返せ。
つうかな、ヘルプぐらい嫁や!
0571デフォルトの名無しさん
2007/01/05(金) 17:57:09シャットダウンによるアプリケーション終了をどう検出するかって話なんですが
0572デフォルトの名無しさん
2007/01/05(金) 18:14:460573デフォルトの名無しさん
2007/01/05(金) 21:41:11だろ?
だから、Trueを返すようにすればシャットダウンとまらんようになるんじゃない?
と言いたかったのだが。
>567の書き方じゃ、>571のことだとわからんぞ!
0574デフォルトの名無しさん
2007/01/05(金) 23:59:20>>559>>562などなどレスありがとうございます。
今、iTunesをコントロールするアプリを作っているわけですが、
表示等のカスタマイズ性をなるべく持たせようとセコセコ設定画面を作っているんですが、
項目が多くなる(50項目ぐらい)のと、Dialogを4つぐらい貼り付ける予定なんですけど、
メモリの占有的にはどうなんでしょう?
設定は別アプリにした方がいいんでしょうか? 気にするほどじゃないんでしょうか?
0576Delフサギコ ◆A6VzDeLphI
2007/01/06(土) 00:05:02ミ,,゚Д゚彡
ミ つ且~~
ミ,,__ ヾ,
⊂二二二∪∪二二⊃
そういうときは、とりあえず楽な
やり方で作ってから
それでも
メモリ占有率が気になるなら
そこから改造。
と、いう手段に出るのがよろしきかな。
>>574
0577561
2007/01/06(土) 00:23:03できましたー!!
みなさんほんとありがとうございます!!
まじ助かりました。ありがとうございます!!
0578デフォルトの名無しさん
2007/01/06(土) 00:26:13ここにある
www.delphianworld.com/
WZ風パラメータ設定ダイアログなんかどおよ?
0579デフォルトの名無しさん
2007/01/06(土) 00:26:55あと、ダイアログにページコントロール貼り付けてタブ分ければ
ダイアログ4つもいらんのじゃない?
0580574
2007/01/06(土) 01:53:12X,YはTop,Leftとは違うというのは判りました。けど、まだよく分かってないです。作業的にはサンプルをそのままコピーしてって感じで動いています。
>>576
どっちが楽かが判断つかない状態に…。仕様書を作らずに組んでいるので、自分の中の人が仕様変更や仕様追加をばんばん行ってきてて…
>>578
設定が多すぎて、脳が追いつきません…。一件一件iniに読み書きしていきます。
>>579
言葉足らずでした。Daialog4つというのは、Open、OpenPicture、Font、Colorの4種類です。
0581デフォルトの名無しさん
2007/01/06(土) 02:18:51for文でカウンタ変数の値を2ずつ増やすにはどうすればいいのですか?
0582デフォルトの名無しさん
2007/01/06(土) 02:19:59ダイアログはWindowsのやつだからたいしてメモリくわねんじゃね?
WZ風だめなんか...
まあ、気長にがんがれ。
0583デフォルトの名無しさん
2007/01/06(土) 02:24:21だめ。
VBみたいにfor i = 1 to 10 step 2とかはできん。
変わりに
i := 1;
while i <= 10 do
begin
処理
i := i + 2;
end;
とするしかない。
0584581
2007/01/06(土) 02:41:52ありがとうございます。
CやVBでは簡単にできたのでDelphiでもできるかと思いました。
while文でやってみます。
0585デフォルトの名無しさん
2007/01/06(土) 04:09:10begin
if Odd(i) then continue;
〜;
end;
俺はこういう書き方してた・・・
最近のDelphiなら
for i in [0, 2, 4, 6, 8, 10] do
ってのもアリか。でもこれだと自由じゃないので
初心者の俺が考えてみたんだが、
function MakeArray(AFrom, ATo, AStep: Integer): TBoundArray;
var
i: Integer;
begin
i := AFrom;
while i <= ATo do
begin
SetLength(result, Length(result) + 1);
result[Length(result) - 1] := i;
Inc(i, AStep);
end;
end;
こんな感じの関数作って
for i in MakeArray(0, 10, 2) do // 0, 2, 4, 6, 8, 10 のループ
ってのはアリですか?それともバカでしょうか。
0586デフォルトの名無しさん
2007/01/06(土) 04:13:330587デフォルトの名無しさん
2007/01/06(土) 04:19:480588デフォルトの名無しさん
2007/01/06(土) 05:15:43すっきりしていると思うのだが...
まあ、書き方は個人の自由やからね。
>for i in [0, 2, 4, 6, 8, 10] do
新しいバージョンはこんな書き方できるのか。
foreachとかサポートして欲しいな。
Rubyとか見てると、( ・∀・)イイ!と思うし、羨ましい
0589デフォルトの名無しさん
2007/01/06(土) 05:20:330590デフォルトの名無しさん
2007/01/06(土) 05:25:25それは気がつきませんでした、目から鱗です
0591デフォルトの名無しさん
2007/01/06(土) 06:47:350592デフォルトの名無しさん
2007/01/06(土) 07:12:130593デフォルトの名無しさん
2007/01/06(土) 09:26:470594デフォルトの名無しさん
2007/01/06(土) 09:50:25バグは多いわ、バージョンアップしても大して変わらないわ
とうとう売却されるわ、名前変わるわで散々。
個人的には言語はRubyで、DelphiのIDEが最強じゃないかと
思うけど、どお?
0595デフォルトの名無しさん
2007/01/06(土) 10:48:29まぁ、VCLとIDEのデザイナなどはお互い関係あるけど。後、厳密に言うと、最強だった(過去形が適切かもね。)
Unicodeコントロールが標準で存在しないことに、コントロール以外にも、ファイル名とかAnsiで渡さなきゃいけんし、
俺的には、それでもうアウト。DelphiVistaでUnicode完全対応したらまた最強の座をあげていいとは思うが、
時代は.NET3.0なんてことになってたら、もう手遅れ。
0596デフォルトの名無しさん
2007/01/06(土) 11:11:02あれってDel7よりええの?
0597574
2007/01/06(土) 11:29:02でも、他の言語を覚えるゆとりが脳にない…。
Delphiに高性能のTMemoと正規表現の対応と単純なCSVコンポーネントが標準だったらニッチに大活躍したなぁと思います。
フリーのコンポーネントで実現できますけど(それがDelphiのいいところではあるけど)
以前、印刷系の会社にいた時に、テキストをタグつけて整形→DTPソフトで取り込み自動組版 とかのアプリを組みました。
印刷業界はそういった自動組版の需要がそれなりにあると思います。
ただ、どこもプログラマーを専属で雇う余裕はなくて、ちょっと詳しい人が単純なのを組んでいる感じです。
通販カタログとかのデータをDB化して、レイアウトをリアルタイム更新とか本格的なことをやってる人もいますが。
知り合いはRubyとDelphi使ってるって言ってました。
0598デフォルトの名無しさん
2007/01/06(土) 11:56:190599デフォルトの名無しさん
2007/01/06(土) 12:28:300600デフォルトの名無しさん
2007/01/06(土) 16:24:30>将来なくても。
ただ、あと何年で陳腐化するかなぁという不安はある。
0601Delフサギコ ◆A6VzDeLphI
2007/01/06(土) 16:48:27∧,,∧ /いまでも
_ ミ,,゚Д゚彡 _< ニッチでは
.=| |==U=U==| |= \ 大活躍だと思いますが
| | .ミ ミ | |  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| |ノ∪''∪. | |
| | | |
Unicode化は、確かに急いで欲しいですね。
Vista対応のAppWinFixは標準の実装をさっさとやってもらいたい。
とりあえず、
ネイティブアプリ開発において最強環境を
こってり、使いこなしてみましょうぜ。
0602デフォルトの名無しさん
2007/01/06(土) 22:04:320603デフォルトの名無しさん
2007/01/06(土) 22:09:58TBitmapに何かの演算をしたりしてるんだと思うんだけど、これをDelphiで実現するライブラリや計算方法を紹介してるサイトって、知りません?
0604デフォルトの名無しさん
2007/01/06(土) 22:18:350605デフォルトの名無しさん
2007/01/06(土) 22:41:13細かい挙動を気にしなければ、使えるらしい。
0606デフォルトの名無しさん
2007/01/07(日) 00:01:29細かい挙動っての、気になりますね(^^;
Unicodeに対応じゃないみたいだけど、文字化けとかは、とりあえずないんですか?
0607Delフサギコ ◆A6VzDeLphI
2007/01/07(日) 00:13:01∧,,∧ ・・・
ミ,,゚Д゚彡
⊂ つ
〜ミ * )
し'´`J
正月で太った
気が汁
>>603さん
めもニャンだむ:Delphi 関連への目次
http://blog.livedoor.jp/junki560/archives/30287059.html
Ak's Laboratory <Delphi Construction>
http://www2s.biglobe.ne.jp/~aks-lab/delphi_lecture.htm
Delphiのページ
http://homepage1.nifty.com/MADIA/delphi/index.html
0608デフォルトの名無しさん
2007/01/07(日) 01:06:31ウンコが漏れそうなほどステキな情報ありがとうございます!
エンボス、反転、グレースケール化、ホワイトアウトとかは一応やってたんですが、二つの画像をホイール状にかき混ぜたりウェーブをかけたり、ブラー系が弱かったのでいろいろ試してみます。
しかし、scanlineで取らないと、Pixelに1個1個アクセスしたのではちょっと遅くて実用性が?ですね…
0609デフォルトの名無しさん
2007/01/07(日) 01:45:06ShowWindowやってもフォームが表示されるだけで、アイコンが残ったままなんですけど
0610デフォルトの名無しさん
2007/01/07(日) 02:16:55http://pc10.2ch.net/test/read.cgi/tech/1166172047/653-
0611デフォルトの名無しさん
2007/01/07(日) 02:30:43想定内だけど
0612デフォルトの名無しさん
2007/01/07(日) 02:53:28いらっしゃい。こっちに来いと振った以上は多少お付き合いします。あっちで罵倒の
応酬してもしょうがないっしょ?
一般的なタスクトレイアイコンものをDelphiで作る場合で考えると、ご所望の動作は
内部的にはApplication.Restoreメソッドの呼び出しになるものと思います。これを
外部から引き起こすにはWM_SYSCOMMANDメッセージのwParamにSC_RESTOREを
格納したものをApplicationウィンドウに送ればいいのではないかと思われます。
Applicationウィンドウとは例のDelphi特有の隠しメインウィンドウです。
ただしこれは一般論で、そのアプリケーションの作り方によっては違うアプローチが
必要かもしれません。
0613デフォルトの名無しさん
2007/01/07(日) 03:33:43ありがとうございます
あそこで質問するまでにあらゆる手段を使って試したので
>>612
> >609
> いらっしゃい。こっちに来いと振った以上は多少お付き合いします。あっちで罵倒の
> 応酬してもしょうがないっしょ?
> 一般的なタスクトレイアイコンものをDelphiで作る場合で考えると、ご所望の動作は
> 内部的にはApplication.Restoreメソッドの呼び出しになるものと思います。これを
> 外部から引き起こすにはWM_SYSCOMMANDメッセージのwParamにSC_RESTOREを
> 格納したものをApplicationウィンドウに送ればいいのではないかと思われます。
それもすでに実行済みです。
> Applicationウィンドウとは例のDelphi特有の隠しメインウィンドウです。
TApplicaitionというのがそうですか?
delphiで調べると、アイコン化ができないとかそういう類のtipsが多くあって
TAppからMINIMIZEすればいいとかなんとか多く見られるけど
0614デフォルトの名無しさん
2007/01/07(日) 08:54:39> 細かい挙動っての
http://dn.codegear.com/article/33747
http://dn.codegear.com/article/33753
> Unicodeに対応じゃないみたいだけど、
サードパーティを使えば
http://www.tntware.com/delphicontrols/unicode/
> 文字化けとかは、とりあえずないんですか?
http://itpro.nikkeibp.co.jp/article/COLUMN/20061221/257533/
ちなみにDelphi7 のインストールはこのあたり
http://www.drbob42.com/examines/examin84.htm
0615デフォルトの名無しさん
2007/01/07(日) 10:37:51あれってどうやってるんでしょう?隠しプロパティでさくっと設定・・・な筈ないですよね。
0616デフォルトの名無しさん
2007/01/07(日) 11:03:11一応それっぽいことできた
TForm1 = class(TForm)
UpDown1: TUpDown;
Edit1: TEdit;
procedure UpDown1Click(Sender: TObject; Button: TUDBtnType);
procedure UpDown1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
private
FDown : Boolean;
FInc : Integer;
public
end;
(中略)
procedure TForm1.UpDown1Click(Sender: TObject; Button: TUDBtnType);
begin
if (FDown = False) then
begin
FDown := True;
FInc := TUpDown(sender).Position;
end;
if abs(TUpDown(sender).Position - FInc) > 2000 then
begin
TUpDown(sender).Increment := 1000;
end
else
begin
if abs(TUpDown(sender).Position - FInc) > 200 then
begin
TUpDown(sender).Increment := 100;
end
続く
0617デフォルトの名無しさん
2007/01/07(日) 11:05:50else
begin
if abs(TUpDown(sender).Position - FInc) > 20 then
begin
TUpDown(sender).Increment := 10;
end
end
end;
end;
procedure TForm1.UpDown1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if (FDown = True) then
begin
FDown := False;
TUpDown(sender).Increment := 1;
end;
end;
まあ、Clickイベントで初クリック時の値を覚えておき、値がある閾値を超えたら、
増減値を増やす
で、マウスボタンUpイベントで、初クリックのフラグを消して、増減値を元に戻す
加速が3段階なのであまりなめらかではないが、段階増やすかなんらかの式で
計算するようにすれば、なめらかに加速していくと思う
0618デフォルトの名無しさん
2007/01/07(日) 11:56:08+側も-側もちゃんと動きました、勉強になります。
押しっぱなしでずっとクリックイベントが発生しているのは知りませんでした。
ので実はタイマー使ってやろうとしていたのは内緒です。
0619デフォルトの名無しさん
2007/01/07(日) 12:47:46たとえば
data:='50006C0065006100'
この文字列を先頭からdata[0]:=5 data[1]:=0のように格納したいのですが。。。
知恵を貸してください。
0620デフォルトの名無しさん
2007/01/07(日) 13:52:570621Delフサギコ ◆A6VzDeLphI
2007/01/07(日) 14:13:16ミ,,゚Д゚ミζ
ミ つ旦
〜と,,,~),,~)
CPU使用率を求めたいのですが
どうすればいいんでしょうか?
タスクマネージャーにでてるアレです。
よろしくおねがいします。
CPU占有率を調べる
http://hpcgi1.nifty.com/MADIA/DelphiBBS/wwwlng.cgi?print+200606/06060020.txt
こんなリンクはみつけたのですが
内容が、さっぱりです。
0622デフォルトの名無しさん
2007/01/07(日) 14:15:43Move手続きじゃだめ?
0623デフォルトの名無しさん
2007/01/07(日) 14:50:35ttp://homepage1.nifty.com/MADIA/delphi/delphi_bbs/200404_04040040.html
これはどう?
0624デフォルトの名無しさん
2007/01/07(日) 15:26:02http://www.swissdelphicenter.ch/en/showcode.php?id=969
0625デフォルトの名無しさん
2007/01/07(日) 15:34:01何をやりたいのか不明。
もっと詳しく書いてください。
String型の16進数の数値 -> '7C56102A'という値でString型の変数に入ってる?
それとも String型の変数に入ってる'ABCDEF'という値を16進数にしたもの?
数値の文字列をByte配列に -> 7C56102Aという数字を文字列'7C56102A'にして
更にByte[0] := '7', Byte[1] := 'C'...という風にしたい?
0626デフォルトの名無しさん
2007/01/07(日) 17:23:06ToolBar本体のShopCaptionではボタン全部が切り替わってしまいます。
バージョンはDel6です
0627デフォルトの名無しさん
2007/01/07(日) 20:13:57無理。
自分でコンポーネント作ってカスタマイズしないとだめ。
ShowCaption変更時はウインドゥ作り直しているみたいだから
いろいろいじらんとだめかもね。
後はTorry'sのページにある海外の方のコンポを片っ端から
試してみるとか。
力になれなくてすまぽ。
0628デフォルトの名無しさん
2007/01/07(日) 20:17:210629デフォルトの名無しさん
2007/01/07(日) 20:27:170630デフォルトの名無しさん
2007/01/07(日) 20:28:40ってできる?
0631デフォルトの名無しさん
2007/01/07(日) 20:43:590632デフォルトの名無しさん
2007/01/07(日) 22:31:55プログラムを起動プログラムと本体に分けて、起動プログラムで更新をチェックして
更新されてたら本体をコピーして上書きってやるのが簡単ですかね。
本体だけで自分自身を書き換えるってのは無理ですか?
0633Delフサギコ ◆A6VzDeLphI
2007/01/07(日) 22:37:07ミ。_。彡 ペコッ
〜ミ,,,U U,,ミ 且~~
>>623さん、>>624さん。
ありがとう。
0634デフォルトの名無しさん
2007/01/07(日) 22:55:48乗せるとき、イメージリストはそれぞれのツールバーに別に作るものなのでしょうか?
それとも全部一緒でいいのでしょうか?お願いします。
0635デフォルトの名無しさん
2007/01/07(日) 23:02:040636デフォルトの名無しさん
2007/01/07(日) 23:33:19使い捨てなら635 の言うとおり。
0637デフォルトの名無しさん
2007/01/07(日) 23:36:50プログラム実行してる時はファイルを占有しているから上書きとか移動とかは
無理だったと思う。
なので、更新プログラムと本体を分けて、更新プログラムでチェック+更新する
のがいい。
MMOも全部そんな作りだし。
>634
マジでどちらでも。
イメージ自体を入れ替えのであれば、自分が管理しやすい方法にすればいい。
イメージを使用者がカスタマイズできるようにするのであれば、イメージリストが
散らばっているのはよくないかもね。
0639デフォルトの名無しさん
2007/01/08(月) 01:34:01>>625
ありがとうございます。moveをつかって試行錯誤してみることにします。
>数値の文字列をByte配列に -> 7C56102Aという数字を文字列'7C56102A'にして
>更にByte[0] := '7', Byte[1] := 'C'...という風にしたい?
仰るとおりです。
0640デフォルトの名無しさん
2007/01/08(月) 01:46:56│ │ │
│ │ │
│ ├────┤
│ │ ココ│
└─┴────┘
こういう3ペインのソフトを作っていて、上の図の「ココ」のところに
ControlBarをおいて、その上にPageControlを載せたいのですが・・・
PageControlのAlignをalClientにしてもいっぱいになってくれません。
ControlBarもalClientになってます。
どうすれば良いでしょう?
図の「ココ」と上の部分はsplitterで区切ってあります。
バージョンはDelphi6です。お願いします。
0641デフォルトの名無しさん
2007/01/08(月) 02:08:35どういう目的でControlBarにPageControlを載せるのかわからないけど
自前でControlBarのリサイズの度にサイズ変更するしかないと思う
procedure TForm1.ControlBar1Resize(Sender: TObject);
begin
PageControl1.SetBounds(0,0,ControlBar1.Width,ControlBar1.Height);
end;
みたいな感じで
0643デフォルトの名無しさん
2007/01/08(月) 04:56:050644デフォルトの名無しさん
2007/01/08(月) 05:38:42それは永遠の謎
0645デフォルトの名無しさん
2007/01/08(月) 05:43:180646デフォルトの名無しさん
2007/01/08(月) 08:24:33こんな感じか?
procedure TForm1.Button2Click(Sender: TObject);
var
Idx : Integer; // カウンタ
Str2: AnsiString; // 16進数変換後文字列
Str3: AnsiString; // 画面表示用
BAry: Array[1..128] of Byte; // バイト配列
begin
Str3 := '';
for Idx := 1 to Length(edit2.Text) do
begin
// 画面入力 -> "ABCD"
// 16進数変換 -> 41424344
// バイト配列 -> 34 31 34 32 34 33 34 34(4 1 4 2 4 3 4 4)
Str2 := IntToHex(Ord(edit2.Text[Idx]), 2); // 入力した文字列を16進数に
Str3 := Str3 + Str2; // 画面表示用
Bary[(Idx - 1) * 2 + 1] := Ord(Str2[1]); // バイト配列に16進数の1桁目を転記
Bary[(Idx - 1) * 2 + 2] := Ord(Str2[2]); // バイト配列に16進数の2桁目を転記
end;
edit3.Text := Str3;
end;
0647デフォルトの名無しさん
2007/01/08(月) 11:31:46すげー勉強になった
今まで俺のサイトで音楽流してなかったのが恥ずかしいです
0648デフォルトの名無しさん
2007/01/08(月) 18:59:09var p: PInteger;
begin
...;
p := @hoge + 1;
hoge := (p + 5)^;
(p + 6)^ := (@hoge + 2)^;
って感じで
0649デフォルトの名無しさん
2007/01/08(月) 19:55:31というわけで、普通は配列のポインタを使えばOK
var p: PIntegerArray;
begin
...;
p := @hoge [1];
hoge := p [5];
p [6] := hoge [2];
0650デフォルトの名無しさん
2007/01/08(月) 21:49:480651デフォルトの名無しさん
2007/01/08(月) 22:34:55DBGridのColomのWidthプロパティを変更して、実行しても幅がデフォルトの長さのまま変わりません、これはバグでしょうか?
0652デフォルトの名無しさん
2007/01/08(月) 23:46:48Integerにキャストする手もある
0653デフォルトの名無しさん
2007/01/09(火) 00:10:210654デフォルトの名無しさん
2007/01/09(火) 02:51:510655デフォルトの名無しさん
2007/01/09(火) 04:19:04浦島太郎気分
0656デフォルトの名無しさん
2007/01/09(火) 16:44:40どうやって開放してやればいいでしょうか?
何もしなくもても、自動的に開放されるものなのでしょうか?
常駐系のプログラムで、定期的にCreateOleObjectを実行するので、
きちんとオブジェクトが消えるようにしたいのですが
0657デフォルトの名無しさん
2007/01/09(火) 17:10:400658デフォルトの名無しさん
2007/01/09(火) 17:45:020659デフォルトの名無しさん
2007/01/09(火) 17:49:530660デフォルトの名無しさん
2007/01/09(火) 18:01:39Delphi7のヘルプから
ヒント:例で示されているように,CreateOleObject の返すインターフェースが
Variant に割り当てられている場合は,Unassigned 定数をその Variant に
割り当てることでインターフェースを解放できます。
0661656
2007/01/09(火) 20:46:25有難うございます、わかりました。
0662デフォルトの名無しさん
2007/01/09(火) 23:16:30過去ログ [おいらロビー]
【VB】ウイルスバスター2007 Part26【TrendMicro】 [セキュリティ]
綜合警備保障(ALSOK)ってどうよ? その3 [転職]
45歳以上の転職Part7 -25 OR 6 TO 4- [転職]
●●オブジェクト設計は何故流行らないの?●● [プログラマー]
45歳以上でプログラマーから警備員に転職か。 ちょっとキツイね。
0663デフォルトの名無しさん
2007/01/09(火) 23:22:190664デフォルトの名無しさん
2007/01/09(火) 23:53:390665デフォルトの名無しさん
2007/01/10(水) 00:04:440666デフォルトの名無しさん
2007/01/10(水) 00:42:08ttp://www.swissdelphicenter.com/en/showcode.php?id=2300
にある、指定されたURLをMHTMLで保存するコードなのですが
文字列を渡して関数を呼び出しても
oMSG.CreateMHTMLBody(AUrl); の部分で ”構文が無効です”と警告されます。
ttp://delphi.about.com/od/internetintranet/l/aa062904a.htm
にもWebBrowserを併用したサンプルコードがあり、
こちらはそのままだと問題なく動きます。しかし、
Msg.CreateMHTMLBody(URL, cdoSuppressAll, '', '');
のWideString型のURLという変数にWebBrowserのLocationURLではなく
自分で文字列を代入させると、やはり ”構文が無効です”と警告されます。
変数に代入した時点で同じ文字列なのに何故このような事が起こるのでしょうか。
それともこれはWebBrowserを併用しなければいけないものなのでしょうか。
0667デフォルトの名無しさん
2007/01/10(水) 00:52:50> oMSG.CreateMHTMLBody(AUrl); の部分で ”構文が無効です”と警告されます。
再現しません。
delphi2006 Update2 + XP SP2 + IE6 です。
uses ComObj; を忘れているなんて事はありませんよね。
0668デフォルトの名無しさん
2007/01/10(水) 01:16:58コンパイルは通りますが
いざ実行する時にエラーが出ます
//関数呼び出し
procedure TForm1.Button1Click(Sender: TObject);
begin
SaveToMHT('http://www.google.co.jp/', 'tmp');
end;
>oMSG.CreateMHTMLBody(AUrl);
プロジェクト Project1.exe が EOleExceptiopnクラスの例外を生成しました。
'構文が無効です'
0669デフォルトの名無しさん
2007/01/10(水) 01:18:25ループ中はウィンドウが固まっているので、ホットキーで抜けられるようにしたいです。
0670デフォルトの名無しさん
2007/01/10(水) 01:55:500671デフォルトの名無しさん
2007/01/10(水) 02:41:19無限ループって怖くね?
0672デフォルトの名無しさん
2007/01/10(水) 02:50:000673デフォルトの名無しさん
2007/01/10(水) 03:40:37そもそも何かの操作をするまでループという処理は
無限ループではないんじゃね?
0674デフォルトの名無しさん
2007/01/10(水) 03:58:27ユーザーまたはシステムが WM_QUIT 投げるまでループし続けるんだから。
それと同じ処理を書いてやればいいだけ。
0675デフォルトの名無しさん
2007/01/10(水) 04:33:440676デフォルトの名無しさん
2007/01/10(水) 04:45:10にしとけ。
0677デフォルトの名無しさん
2007/01/10(水) 06:34:12呼び出して、KeyDownかなんかで、フラグ立てて、停止
ほかは、ループ内で、GetAsyncKeyStateで停止
0678デフォルトの名無しさん
2007/01/10(水) 07:06:230679デフォルトの名無しさん
2007/01/10(水) 08:26:030680デフォルトの名無しさん
2007/01/10(水) 10:58:300681デフォルトの名無しさん
2007/01/10(水) 11:52:54> いざ実行する時にエラーが出ます
http://www.google.co.jp/ は駄目みたいです。
http://www.yomiuri.co.jp/ や
http://www.yahoo.co.jp/ は上手くいきました。
0682デフォルトの名無しさん
2007/01/10(水) 13:08:00GetAsyncKeyState関数を使うことによって解決できました。
どうもありがとうございました!
0683681
2007/01/10(水) 13:54:20CreateMHTMLBody Won't Read Web Pages Compressed with GZIP
https://blogs.msdn.com/jasonjoh/archive/2005/12/08/501760.aspx
0684デフォルトの名無しさん
2007/01/10(水) 15:07:18「読み込み違反」がでて正常に動作しません
何が原因で、どこを直せばいいのでしょうか?
DLL側のソース
function call1(intNo : integer; varParam:PChar): PChar; stdcall;
Result := PChar('a');
end
呼び出す方のソース
function call1(intNo : integer; varParam:PChar): PChar; stdcall; external 'test.dll' name 'stadcall';
procedure TForm1.Button1Click(Sender: TObject);
var param : PChar;
var ret : PChar;
var buff : String;
var intNo : integer;
begin
intNo := 1;
param := PChar('1234');
ret := call1(intNo,param);
buff := ret; //← ここでエラー(コメントにすると動きます)
end;
0685デフォルトの名無しさん
2007/01/10(水) 15:28:520686684
2007/01/10(水) 15:39:05ありがとうございます
0687684
2007/01/10(水) 15:43:50DLL側でCoInitialize(最初に)、CoUninitialize(最後に)
を使ってCOMの初期化を行っているのですが
処理の中で、CreateOleObjectを使った後にCoUninitializeをすると、
DLLの終了時に「読み込み違反」が発生します。
どうすればいいのでしょうか?
0688デフォルトの名無しさん
2007/01/10(水) 16:58:410689デフォルトの名無しさん
2007/01/10(水) 17:03:06> DLL側でCoInitialize(最初に)、CoUninitialize(最後に)
これはinitialization とfinalization で呼んでいるという事?
0690684
2007/01/10(水) 17:09:02initialization とfinalization は何も書いてません。
0691デフォルトの名無しさん
2007/01/10(水) 17:10:43場所を移してみたら、どう?
0692デフォルトの名無しさん
2007/01/10(水) 18:14:16var
Obj: IDispatch;
begin
CoInitialize(nil);
Obj := CreateOleObject(...);
...
CoUninitialize;
end;
Delphi ではインターフェースオブジェクトの AddRef/Release が参照数の変化に応じて自動的に呼ばれる。
上記の場合、ローカル変数 Obj の寿命、即ち関数の終了時に最終的な _Release が呼ばれ、インスタンスが破棄されることになり、
その前に CoUninitialize する事になるので問題が発生する。
CoInitialize/CoUninitialize を関数外に出すか、下記のように手動で変数の寿命を示す事で解決できる。
var
Obj: ^IInterface;
begin
CoInitialize(nil);
New(Obj);
Obj^ := CreateOleObject(...);
...
Dispose(Obj);
CoUninitialize;
end;
0693デフォルトの名無しさん
2007/01/10(水) 18:52:07描画が必要になったら関数を呼び出して描画すれば済むのでしょうが、
どう書けば良いのかわかりません><
0694デフォルトの名無しさん
2007/01/10(水) 18:56:19ありがとうございます。
とりあえずHTTP/1.1を使用しない事でエラーは回避出来ました。
ウェブブラウザで読み込んだ後だと1.1でも問題ないのは
キャッシュを参照していたからでしょうかね。
0695デフォルトの名無しさん
2007/01/10(水) 19:02:15スマートなやり方じゃないけど
新しいフォーム作ってLeft0Top0にLabel置いて
フォームもLeft0Top0
フォームのAlphaBlendValueは0にして
FormStyleはStayOnTopで
Showすればいいんじゃない
0696デフォルトの名無しさん
2007/01/10(水) 19:08:53AlphaBlendValue 0 にしたら見えないじゃん
0698デフォルトの名無しさん
2007/01/10(水) 19:14:52ああすまんTransParentColor=FormColorと間違えてたわ
0699デフォルトの名無しさん
2007/01/10(水) 19:26:350700デフォルトの名無しさん
2007/01/10(水) 19:32:00んじゃLabel使わずにOnPaintでTextOutして書き込めばええ
0701デフォルトの名無しさん
2007/01/10(水) 20:37:05「常に」描画するとなると、うーーーん(こ)。
0702693,697
2007/01/10(水) 21:12:18まさにその状態です・・・
描画が必要だよー\(^o^)/ → 文字描画/(^o^)\
ってやりたいんですが、どうやってメッセージを
取得すりゃいいんだろう・・・
0703デフォルトの名無しさん
2007/01/10(水) 21:29:240704694
2007/01/10(水) 21:36:28https://blogs.msdn.com/jasonjoh/archive/2005/12/08/501760.aspx
のVBのコードをDelphiに書き直しているのですが
uses wininet;
procedure TForm1.Button1Click(Sender: TObject);
var
verInfo: INTERNET_VERSION_INFO;
begin
verInfo.dwMajorVersion := 1;
verInfo.dwMinorVersion := 0;
InternetSetOption(nil, INTERNET_OPTION_HTTP_VERSION
, verInfo, SizeOf(verInfo));
end;
のSizeOf(verInfo)の部分で
INTERNET_OPTION_HTTP_VERSION と Pointer には互換性がありませんと警告されるのですが
この部分はどの様に書けばいいのでしょうか。
0705649
2007/01/10(水) 21:46:45自己解決できました。
× InternetSetOption(nil, INTERNET_OPTION_HTTP_VERSION , verInfo, SizeOf(verInfo));
○ InternetSetOption(nil, INTERNET_OPTION_HTTP_VERSION, @verInfo, SizeOf(verInfo));
第三引数の変数の前に@が無かったのが原因でした。(@の意味が良く分かりませんが)
参考:ttp://forum.nifty.com/fdelphi/samples/01105.html
0706デフォルトの名無しさん
2007/01/10(水) 21:47:20, @verInfo, SizeOf(verInfo)); かな。
0707デフォルトの名無しさん
2007/01/10(水) 21:48:39> 。(@の意味が良く分かりませんが
アドレスを返す演算子。
0708デフォルトの名無しさん
2007/01/10(水) 21:56:02ありがとうございます。覚えておきます。
0709デフォルトの名無しさん
2007/01/10(水) 23:07:28Windowsのシステムカラーでもなさそうですし。この色を設定したとき、どんな色が使われると
考えていいのでしょうか?
0710デフォルトの名無しさん
2007/01/10(水) 23:59:32Graphics.int には
clNone = TColor($1FFFFFFF);
clDefault = TColor($20000000);
となってる。
多分、VCLオリジナルで、VCL内部で解釈されるのだと思う。
APIにこの数値は渡していないみたいだよ。
VCLソースを検索すればどう使われているか解かるよ。
0711デフォルトの名無しさん
2007/01/11(木) 00:25:23そうですか、ちょっと検索かけてみます。今コンポーネントを製作中でそれらの色を
どうコンポーネントで解釈していいのか悩んでいました。これらの値をAPIに渡していないなら
自作コンポの方でも指定された時に、別の色に置き換えて内部で使用します。
ありがとうございます。
0712デフォルトの名無しさん
2007/01/11(木) 00:32:49つ ColorToRGB
0713684
2007/01/11(木) 11:09:08DLLなので、initializationを書く位置がわからず手間取ってました、
別unitを作り、
そこにinitialization、finalizationを書いて実行させたところ、
エラーも無く動作しました。
ありがとうございます m(__)m
691 :デフォルトの名無しさん :2007/01/10(水) 17:10:43
>>688 みたいな事があるから
場所を移してみたら、どう?
0714デフォルトの名無しさん
2007/01/11(木) 15:37:25具体的には、Turbo Delphiを起動したあと、メニューバーの[ヘルプ]→
[Borland ヘルプ]を選択すると、「名前空間が定義されていません」という
エラーダイアログが出ます。画面内の[ファーストステップ]をクリックすると
Microsoft Document Explorerが起動しますが、一瞬タイトルバーやタブに
「Internet Explorer ではこのページを表示できません」と出た後、
「ナビゲーションは取り消されました」と表示されます。
ちなみにユーザーズガイドなどのPDFファイルや、Borlandのサイトなどは
画面内に正常に表示されます。
どうしたらヘルプが表示できるでしょうか。
0715デフォルトの名無しさん
2007/01/11(木) 16:56:42IDE のメニューからではなく、ヘルプのショートカットを作って
そこから起動した方が確実です。
0716デフォルトの名無しさん
2007/01/11(木) 19:23:13レスありがとうございます。
書き忘れていましたが、スタートメニューから[ドキュメンテーション]を
起動した場合も駄目なのです。Microsoft Document Explorerは起動するのですが、
about:blank(IE7のホームページ)が開き、目次には何も表示されません。
検索すると、「名前空間が指定されていません。: ms-help://borland.bds4」という
エラーダイアログが出ます。
0717デフォルトの名無しさん
2007/01/11(木) 21:06:03ヘルプが壊れているようですね。
コマンドラインで
BDS\4.0\Help\Common\regHelp.exe -7 と
BDS\4.0\Help\Common\regHelp.exe 7 を実行してみたら
どうでしょう。
0718デフォルトの名無しさん
2007/01/11(木) 22:48:13ありがとうございます。表示されました。
・[ドキュメンテーション]からではなくDelphi IDEから開いた場合には目次が表示されない
・ページが表示される前にいったん「Internet Explorer ではこのページを表示できません」と出る
という不都合は残っていますが、使用には耐えそうなのでこれで行ってみます。
0719デフォルトの名無しさん
2007/01/11(木) 22:57:36IE7 がインストールされているPC でTurbo を使う場合は
レジストリを変更しておいた方が良いです。
http://www.stevetrefethen.com/files/FEATURE_OBJECT_CACHING.reg
0720デフォルトの名無しさん
2007/01/12(金) 03:16:44OKボタンが押されたら選択されているアイテムのパラメータを返すという子窓を作成したいです。
ゲームのアイテム選択画面みたいなものを作成したいのですが、
まず小窓をどうやって作成するのかがわかりません。
どなたか教えていただけないでしょうか
0721デフォルトの名無しさん
2007/01/12(金) 03:21:43取得したItemIndexのリストの文字列を取得
グローバル変数なんかに入れて
新しいフォームをShowして表示
とかじゃだめ?
0722デフォルトの名無しさん
2007/01/12(金) 20:39:51procedure TForm1.Button1Click(Sender: TObject);
var
MyFont:TFont;
begin
if not FontDialog1.Execute then exit;
MyFont:=TFont.Create;
//MyFont:=FontDialog1.Font; // �@
//MyFont.Assign(FontDialog1.Font); // �A
MyFont.Free;
end;
�@にすると終了時にエラーが出ます。どぼじで?
0723デフォルトの名無しさん
2007/01/12(金) 21:05:320724デフォルトの名無しさん
2007/01/12(金) 22:36:110725ななしへたぐらま ◆XcB18Bks.Y
2007/01/12(金) 23:24:56Delphiのオブジェクト変数はC++と違ってオブジェクトのある場所を指しているに過ぎません.
そのため�@のコードは
変数MyFontの中身(ひとつ上の行で生成したオブジェクトの場所が書いてある)を
FontDialog1.Fontが指している場所で書き換えた
に過ぎません.ゆえに
最後のMyFont.FreeはFontDialog1.Fontが指しているオブジェクトを勝手に解放することになってしまいますし,
�@の直前に生成したTFont型オブジェクトは解放されることもなくそのまま残ってしまいます.
その後はFontDialog1が次にFontプロパティを参照しようとしてもすでにそこにはオブジェクトが存在しません.
Delphiのランタイムルーチンがその場所を別な用途に使っていれば混乱して誤動作するでしょう.
もしすでにその場所をWindowsに返している場合はWindowsによってプログラムからの読み書き(アクセス)が禁止されていますので
読み書きしようとした時点でアクセス違反というWindowsのエラーになります.
一方�AのコードはFontDialog1.Fontというプロパティが返してくる場所にあるオブジェクトのフォント情報を
変数MyFontが指している場所にあるオブジェクトに書き写しています.
0726デフォルトの名無しさん
2007/01/12(金) 23:32:51え、TFontはレコード型ではないけど、Createはしなくてもいいの?
コンストラクタ・デストラクタにFontManager.AllocResourceとかFontManager.FreeResourceとか書かれてるので、
ちゃんとCreate…Freeしないといけないと思ってた・・・
あれ、でもDelphiにおける「クラス」って、
C++でいうと TFont *font = new TFont(); みたいなもんで、
Createしてフィールドにメモリの領域を与えないと、使えないような・・・
うーん。知識が中途半端だから分からん・・・
とりあえず、クラスはヒープ、レコード型は(New、GetMemを使うとかでなければ)スタックでOK?
0727デフォルトの名無しさん
2007/01/12(金) 23:50:56C++もクラス型の変数ってオブジェクトのある場所を指しているんじゃないか??
>>726
TFontはクラス型だから、自分でインスタンス作る場合はCreateしなくちゃいけん。
0728ななしへたぐらま ◆XcB18Bks.Y
2007/01/12(金) 23:51:26普通のフォームをもう1個作ってそれを子窓にすることができます.
[ファイル]→[フォームの新規作成]を実行すると新しいフォームができるので
ここにリストボックスやボタンを貼り付けてください.
フォームのNameプロパティにわかりやすい名前(KomadoFormとか)をつけて
ファイル名にもわかりやすい名前(Komadoとか)を付けて保存してください.
ほかのフォームから呼び出すためには
ほかのフォームがアクティブになっている状態で
[ファイル]→[ユニットを使う]を実行し,上で保存したファイル名を選んでください.
0729デフォルトの名無しさん
2007/01/12(金) 23:52:53をしたらMyFontもFontDialog1.Fontも同一のTFontインスタンスを指すようになるんだよ。
0730ななしへたぐらま ◆XcB18Bks.Y
2007/01/12(金) 23:58:51フォントダイアログを使って何かのフォントを変更する場合は
if FontDialog1.Execute then
Memo1.Font.Assign(FontDialog1.Font);
みたいな感じのコードになると思うのですよ.
>>724でわざわざCreateする必要はないというのはもしかしたらこういう事なの…かも?
>>727
C++はもう5年以上やっていないので忘れまくっているかも(汗)
間違ってたらごめんなさいね.
0731デフォルトの名無しさん
2007/01/13(土) 00:08:35TFont afont;
TFont *bfont;
みたいな感じで。
メンゴ。
>>724
つまり、
//MyFont:=FontDialog1.Font; // �@
の場合、C++で書くと、 bfont = &afont
//MyFont:=FontDialog1.Font; // �A
の場合、
bfont = new TFont;
bfont = afont
かな?
0732デフォルトの名無しさん
2007/01/13(土) 00:08:54C++だとstruct(レコード型)とclassは大差ないから、
TMyClass myclass(123); // myclass := TMyClass.Create(123);
みたいな静的?利用ができるじゃん。
ここでmyclassは TMyClass * じゃなくて TMyClass。
デストラクタが呼び出されるのは、スコープの範囲外になったらなので、解放を明示しなくてもいい感じで。
ちなみに、C++BuilderでVCLのクラス(TObjectを継承したもの全て)
を使う場合は、Delphiと同様に
TFont *font = new TFont();
...;
delete font; // font->Free();
ってやらないとダメ。(だったと思う
0733デフォルトの名無しさん
2007/01/13(土) 00:09:58bfont = new TFont;
bfont = afont
だった。
0734デフォルトの名無しさん
2007/01/13(土) 00:17:28いや、bfont = afont じゃなく、
うーん。参照演算子忘れたので、やめとく。
0735デフォルトの名無しさん
2007/01/13(土) 00:53:39クラス型変数が参照あるいはポインタそのものである開発言語の例:
Delphi(class型)・C#・JAVA・PHP5
クラス型変数が値である開発言語の例:
Delphi(object型)・C++・PHP4まで
むろん、C++では、クラス型変数のポインタを使ってnewで動的に扱うことも出来る。
今時のDelphiでobject型なんぞ使わんように。
0736デフォルトの名無しさん
2007/01/13(土) 00:54:200737デフォルトの名無しさん
2007/01/13(土) 01:24:490738デフォルトの名無しさん
2007/01/13(土) 03:20:06そう偉そうにいうなら説明してみそ
クラスとインスタンスの違いのことを言いたいのかねちみは
0739デフォルトの名無しさん
2007/01/13(土) 05:36:55あそこまで、えらそうにでてきて、それはないww」
0740デフォルトの名無しさん
2007/01/13(土) 06:35:59とあるツールのフォーム内にPanelがあり、その中にMemoやButtonがあります
このような場合、Memoのハンドルを取得するにはどうすれば良いでしょうか?
0741デフォルトの名無しさん
2007/01/13(土) 07:54:120742デフォルトの名無しさん
2007/01/13(土) 07:56:220744デフォルトの名無しさん
2007/01/13(土) 11:20:490745デフォルトの名無しさん
2007/01/13(土) 12:52:32既に作ってあるプロジェクト(P1)のソースを一部変更して
新しいプロジェクト(P2)として名前を付けて保存すると、P1の
ソースまで変更されてしまうのですが、これは何がいけないの
でしょうか?
つまり、EXCELなんかでは既存のシートを変更しても名前を
変えて保存すれば既存のシートの内容は元のままですが、
これと同じことをDelphiでもしたいのです。
0746デフォルトの名無しさん
2007/01/13(土) 13:13:27> これと同じことをDelphiでもしたいのです。
Excel と違って1つのファイルに全部収まっている訳ではないから無理。
> 一部変更して
変更しているのだから
2つのプロジェクトから同じファイルを参照する意味はない。
プロジェクトごとにソースをコピーして、別々に管理するのが良い。
0747デフォルトの名無しさん
2007/01/13(土) 13:16:06つ FileSetDate
0748デフォルトの名無しさん
2007/01/13(土) 13:16:56プロジェクトに登録されているソースは元のままで、
元のプロジェクトとソースを共有する状態でしょ。
プロジェクトのディレクトリごとコピーしてから、localとdskファイルを削除し
コピーした方のプロジェクトを開いて同じことをすればいいのでは。
0749デフォルトの名無しさん
2007/01/13(土) 13:21:37どーせバックアップとかって話しじゃないの?
svnなりcvsなり使いなよ
0751デフォルトの名無しさん
2007/01/13(土) 16:00:04localとdsk削除し忘れて、コピー前のを書き換えて死んだ覚えがある。
今は、svn使ってるが、
svnでも、localとdskはもちろん対象外にしてる
0752デフォルトの名無しさん
2007/01/13(土) 16:16:07delphisvn使ってる?
0753デフォルトの名無しさん
2007/01/13(土) 18:50:09うちは、TortoiseSVNで、ふつーに。
0754デフォルトの名無しさん
2007/01/13(土) 19:13:01同じくTortoiseSVNを使ってます。
delphisvnはこんな感じで統合されていて、なかなかよさげですが
実際乃使い勝手はどうかなーって思ったんですが。
http://tondrej.blogspot.com/2006/11/delphisvn-for-delphi-7.html
0755デフォルトの名無しさん
2007/01/14(日) 00:29:03具体的には
90秒→1:30
や
90秒→1分30秒
に変換したいと思っています。
よろしくお願いします。
0756デフォルトの名無しさん
2007/01/14(日) 00:42:58場合によっては、divmod使えば高速にできる
0757デフォルトの名無しさん
2007/01/14(日) 00:43:47Sec := T mod 60;
0758デフォルトの名無しさん
2007/01/14(日) 00:52:22ありがとうございます。
同様の方法で時間表示もできそうですね。
0759デフォルトの名無しさん
2007/01/14(日) 01:50:510760デフォルトの名無しさん
2007/01/14(日) 01:56:320761デフォルトの名無しさん
2007/01/14(日) 01:57:47こんなのいい方だろ
0763デフォルトの名無しさん
2007/01/14(日) 02:25:100764デフォルトの名無しさん
2007/01/14(日) 07:35:14ゆとり教育は学校の負担減らすものだし
0765デフォルトの名無しさん
2007/01/14(日) 10:00:370766デフォルトの名無しさん
2007/01/14(日) 13:53:35procedure ProcedureTest;
begin
Edit.Text := 'プロシージャ内でコントロールを制御するの...成功ですね!!';
end;
//ここまで
Delphi6 Personalを使用している初心者です。
早速本題なのですが、上のサンプルのように、プロシージャの中でコントロールを制御するような文を書くと「未定義の識別子:'Edit'」というようなエラーが出ます。
初歩的なものなのだろうと思い、検索してもヒットせず、自分でいろいろと研究してみたのですが、どうしても分からないため、質問させていただきます。
恐らく、コントロールの作成よりプロシージャの箇所などを先に読み込んでるのが原因だと思うのですが、解決法をご存知の方、ご返答いただけないでしょうか?よろしくお願いいたします。
0767デフォルトの名無しさん
2007/01/14(日) 14:24:58Edit1 とかじゃないの?
0768デフォルトの名無しさん
2007/01/14(日) 15:37:20Form1.Editにしてみ
0769デフォルトの名無しさん
2007/01/14(日) 16:15:03var以下でeditの属するクラスを宣言してあげればおk
0770デフォルトの名無しさん
2007/01/14(日) 16:32:20ご回答ありがとうございます。
とりあえず、「MainForm.Edit」にしてみたら(何故「MainForm.Edit」かと言うと、自動的につく名前が気に入らないから変更していたためです)解決しました。ありがとうございました。
0771デフォルトの名無しさん
2007/01/14(日) 16:38:22夢がないよね
0772デフォルトの名無しさん
2007/01/14(日) 16:41:52失業中の歯医者の俺をバカにしてんのか
0773デフォルトの名無しさん
2007/01/14(日) 16:43:26だからバカに用はねーよ
0774デフォルトの名無しさん
2007/01/14(日) 17:56:350775デフォルトの名無しさん
2007/01/14(日) 18:03:200776デフォルトの名無しさん
2007/01/14(日) 20:26:39世の中は外科医・内科医だけでは回らんぞ
0777デフォルトの名無しさん
2007/01/14(日) 21:14:330778デフォルトの名無しさん
2007/01/14(日) 21:22:330779デフォルトの名無しさん
2007/01/14(日) 21:27:420780デフォルトの名無しさん
2007/01/14(日) 21:45:260781デフォルトの名無しさん
2007/01/15(月) 04:54:53(´;ω;`)ブワッ
0782デフォルトの名無しさん
2007/01/15(月) 05:10:440783デフォルトの名無しさん
2007/01/15(月) 07:51:380784デフォルトの名無しさん
2007/01/15(月) 09:28:36try文を使っているのにデバッカが例外メッセージを出していちいち止まってめんどくさいです。
コンパイル後にできるバイナリはちゃんと動きます。
デバッカが例外メッセージを拾わないようにする方法はあるでしょうか?
(すべて例外を無視したらデバックの意味がないのはわかりますが…)
0785デフォルトの名無しさん
2007/01/15(月) 09:47:42EAbort から派生させた例外クラスを使うか、
IDE の環境設定で「無視する例外の種類」のリストに無視したい例外クラスを追加する
0786デフォルトの名無しさん
2007/01/15(月) 11:33:130787デフォルトの名無しさん
2007/01/15(月) 11:42:24ありがとうございました。
EAbortをググって解決しました。
IDEのデバックの設定の方は、設定してやると実行時無反応になったので断念。
0788デフォルトの名無しさん
2007/01/15(月) 11:48:53で、そこで、form2にあるオブジェクトに値を渡すと例外が起きます。
例外が起きる理由は分かるんですが、できればiniからの読み出し部分はひとつのfunctionですませたいと思っています。
この場合、エラーをtryで弾くか、別のイベントをつかうがどちらがいいのでしょう?
それとも、読み出し部分をフォーム数だけ分けた方がいいのでしょうか?
0789デフォルトの名無しさん
2007/01/15(月) 11:53:52そのタイミングだと、form2が生成されていないからだよね。
俺の場合は、よきタイミングで、
iniクラスのインスタンスを引数にして、各フォームにたらいまわしにしている。
まあ、つまり、フォーム数分だけ、分けてる。
他の人はどうしてるのかな?
0790デフォルトの名無しさん
2007/01/15(月) 11:59:47ケースバイケースかな。
各フォームのOnCreateに書く場合もあるし、
メインフォームで変数に読み出しておいてForm2の表示時に設定する場合もあるし
メインフォームのOnShowに書く場合もある。
0791デフォルトの名無しさん
2007/01/15(月) 12:41:33俺、失業中の歯医者だけど、その発想は無かった
0792デフォルトの名無しさん
2007/01/15(月) 15:18:20.dpr の Application.Run; の直前に入れるのが普通じゃないのかな
何でもかんでも フォームに押し込めるは悪いクセを付けちゃうよ
DOC/VIEWモデル程じゃなくても、ある程度分離しようよ
0793デフォルトの名無しさん
2007/01/15(月) 15:31:24できました。
.dprをいじるって発想がありませんでした。
(昔、二重起動防止とかでいじったのを忘れてた)
趣味でプログラムしているのと、過去の蓄積もほとんど無いので、
こういった設計手法(?)とかが全然つかめなくて。
勉強になります。
0794デフォルトの名無しさん
2007/01/15(月) 15:36:06msgscrはためしてみたんですけど、イベントが全くなくて使いづらく、
TMarqueeもためしてみたんですけど、
文字の色がfont.colorで変更できず、textの頭に色コードを整数で入れる仕様で、
ちょっと生理的に受け付けなかったです…。
なんかいいコンポーネントはないでしょうか?
ラベルのイベントを継承してて、文字を流すのと止めるのができればいいんですけど。
0795デフォルトの名無しさん
2007/01/15(月) 15:50:570796デフォルトの名無しさん
2007/01/15(月) 18:22:52バラバラ殺人の事件とかけていたのか。きづかねぇよ。んなこと。
0797デフォルトの名無しさん
2007/01/15(月) 18:39:00俺は、そのタイミングで、各フォームの読み込み関数にまわしてる
0798デフォルトの名無しさん
2007/01/15(月) 18:57:050799ななしへたぐらま ◆XcB18Bks.Y
2007/01/15(月) 23:38:54というかひとつのユニットにまとめないと悲惨です.
(昔やった他人が作ったプロジェクトの修正のお仕事で
フォームが60以上あってその中のいくつかのフォームに
アプリケーション全体で使う情報が分散しているという恐ろしいものがありました.
ちなみに仕様書無しです)
比較的小さいプログラムを作るときもデータモジュールは作っています.
0800ななしへたぐらま ◆XcB18Bks.Y
2007/01/15(月) 23:59:09自動的に付く名前はあくまで仮のものですし
わかりやすい名前を付けることはわかりやすいソースコードにつながります.
これはプログラミングでは重要ですので
名前を変えてしまうのはむしろ良いことです.
ちなみにその手続きが作ったフォームに関する処理を行うものなら
(普通の)手続きよりもフォームの「メソッド」にしたほうがよいでしょう.
理由はいろいろあるのですが
フォームの名前を書かなくても良いので今回みたいなトラブルが初めから起きないというメリットもあります.
(普通の)手続きや関数は主にフォームとの関連性がない処理(たとえば何らかの計算処理,文字列と数値の変換など)
にだけ使うのがよいと思います.
0801Delフサギコ ◆A6VzDeLphI
2007/01/16(火) 00:27:15ミ,,゚Д゚彡
ミ つ旦)~~
〜と,,,~),,~) 旦~~
]]]]]]]]]]]]]]]]]]]]]]]]]]]]
なるほどなあ。俺も参考にするぞ。
0802デフォルトの名無しさん
2007/01/16(火) 00:44:23プロジェクトが
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.CreateForm(TDataModule3, DataModule3);
Application.Run;
end.
っていう風になって
Form1とForm2が生成されたあとにデータモジュールができるから、
データモジュールのonCreateに各オブジェクトに数値を渡すのを書けばいい
ってことですよね? 先にFrom1,2が生成されるから参照しても例外にならないと
すごく便利。データモジュールってデータベース系の非ビジュアルコンポーネント置き場としか思ってなかった。
次からはそういう設定にします。
>>799
…。似たようなことやった記憶が(汗
現役時代(8年ぐらい前)、業務用アプリのメニューの制作を担当したんですけど、
メニュー1ページごとにIDEでパネルをおいて、ボタンを置きまくって
ってのを十数ページやった記憶が。デザイン時、どこをクリックしたらいいのかわからん状態w
さすがにイベントは共通化してtagで振り分けてましたが…。
今思えば、なんでオブジェクトの動的生成をしなかったのかと…。知識がなかったからですが。
0803Delフサギコ ◆A6VzDeLphI
2007/01/16(火) 01:13:30ミ゚Д゚,,彡
σ⊂ ∪ミ
┳┳ (~,,(~,,,ミ@
>>621、>>633でお世話になったフサギコです。
こんばんは。
こんどは、メモリ使用量=PF使用量を
求めたいのですが、どーしたらよいでしょうか?
∧,,∧ 知っとったら
ミ*゚Д゚彡 おせて。
σ⊂ ∪ミ
┳┳ (~,,(~,,,ミ@
ヨロシコ
0804デフォルトの名無しさん
2007/01/16(火) 04:03:25をRTTIを使ってINIまたはレジストリに自動で読み書きするメソッド用意し、データモジュールのOnCreateでそのメソッド呼んでるな。
で、そのクラスのインタンスをグローバルにするか、もしくは、データモジュールのメンバとするかは気分次第。
>>802
どういこと??
>>Application.CreateForm(TForm1, Form1);
を呼んだ段階でフォームのOnCreateイベントが発生するから、ここで、データモジュールを
参照したら、あきらかに、まだ、作られていないので、アクセス違反になる。
データモジュールのOnCreateでINI読むなら、データモジュールをフォームより先に作成すればいいだけ。
begin
Application.Initialize;
Application.CreateForm(TDataModule3, DataModule3);
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.Run;
end.
0805デフォルトの名無しさん
2007/01/16(火) 05:09:45> こんどは、メモリ使用量=PF使用量を
GetPerformanceInfo でコミットチャージ(合計)を取得して
1024で割る。
0806デフォルトの名無しさん
2007/01/16(火) 12:50:45PDHでやってみるのはどうでしょう?管理ツール→パフォーマンスの奴です。
CPU、メモリ、ネットワーク、ディスク、なんでもいけますよ。
http://www.delphi-jedi.org/apilibrary.html
ここのPERFORMANCE MONITORとか。
0807デフォルトの名無しさん
2007/01/16(火) 15:05:53DMのOnCreateで読み込む。
因みにDMはFormよりも後にCreateFormされる。
0808デフォルトの名無しさん
2007/01/16(火) 15:23:070809デフォルトの名無しさん
2007/01/16(火) 18:11:190810デフォルトの名無しさん
2007/01/16(火) 18:53:51簡単にフォームのみを透明にする方法はないでしょうか?
AlphaBlendを使ったら全部透明になってしまいました。
ファームを透明にしつつ、ラベルとかボタンを表示する方法はないでしょうか。
ググったらリージョンってのに行き着いたんですが、手間がかかりすぎるので…。
0811デフォルトの名無しさん
2007/01/16(火) 19:24:34Perなら無理だったような。
0812デフォルトの名無しさん
2007/01/16(火) 21:30:53意味不明です。
0813デフォルトの名無しさん
2007/01/16(火) 22:29:00昔で言うところのサブルーチンを作る際、引数も戻り値もない場合はなにで宣言すればいいんでしょう?
自分はfunctionで宣言して、戻り値は適当にIntegerとかに。
で、コンパイルで警告がばんばん出ます。
0814デフォルトの名無しさん
2007/01/16(火) 22:33:590815デフォルトの名無しさん
2007/01/16(火) 22:45:25!
procedureって引数が必須と思いこんでいました。ありがとうございました。
0816デフォルトの名無しさん
2007/01/16(火) 23:36:47with MediaPlayer1 do
begin //ExePathはString型の変数で実行ファイルのフォルダのパスが入ってます
FileName := ExePath + 'Music\a.mp3';
Open;
Rewind;
Play;
end;
こう書いて実行するとなぜかフリーズ&パソ落ちします…
しかもXpが入ったPCで実行した時は正常に動く…
何故でしょうか…
0817デフォルトの名無しさん
2007/01/16(火) 23:43:20こういうのがあるが
Windows2000の新APIを使った半透明ウィンドウ
http://www2.big.or.jp/~osamu/Delphi/Tips/key.cgi?key=10
2000とXPで使える(Vistaは分からん)
んで俺も質問
TWebBrowserはウェブページは勿論
画像とかもNavigateして見られるけど
それらの区別をするって事出来ますか?
ウェブページであるかを判別したいのですが。
0818デフォルトの名無しさん
2007/01/16(火) 23:46:44マルチ乙
0819デフォルトの名無しさん
2007/01/17(水) 00:08:41ありがとです…
ためしてみましたが、AlphaBlendを使ったのと同じく、すべて透明になってしまいましたorz
0820デフォルトの名無しさん
2007/01/17(水) 00:09:59Windows98を入れてみる
0821デフォルトの名無しさん
2007/01/17(水) 00:26:200822デフォルトの名無しさん
2007/01/17(水) 00:41:36意味不明。
DMとFormは、逆だろ?
0823デフォルトの名無しさん
2007/01/17(水) 00:54:07FormがDMのコンフィグ情報を取得するのか、
DMからFormへ情報を設定しに行くのかによるでしょ。
0824デフォルトの名無しさん
2007/01/17(水) 02:03:46UpdateLayeredWindowを使えばおk
0825デフォルトの名無しさん
2007/01/17(水) 02:26:40FormがDMへのコンフィグ情報を取得する場合、
FormとDMで、二つのメンバー(もしくは、片方がプロパティで片方メンバ)を記憶させる必要があり、
冗長ではないのか?
>>816
アプリがどうこうして、OSが落ちることは考えられない。
デバイスドライバのせいではないか?
>>804
RTTIで、うまく読み書きする方法をご教授願いたい。
一括で、すべてのプロパティを保存するのか?
0826デフォルトの名無しさん
2007/01/17(水) 09:18:31Delphi6はしらんが、Delphi7でなら
TransparentColorとTransparentColorValueでフォームのみの透明化は可能。
0827デフォルトの名無しさん
2007/01/17(水) 10:06:05できた!
感謝です。
0828デフォルトの名無しさん
2007/01/17(水) 12:48:33TPicture.で実行時に画像を指定する方法は分かったんですが、
表示している画像のファイルパスを取得する方法はありますか?
もうひとつ
TPictureで表示している画像を初期状態の(なし)に戻す方法はありますか?
よろしくおねがいします
0829デフォルトの名無しさん
2007/01/17(水) 13:04:02>TPicture.で実行時に画像を指定する方法は分かったんですが、
>表示している画像のファイルパスを取得する方法はありますか?
無いはず
ファイル名をプロパティとして持つ派生クラスを作ると楽かな
>TPictureで表示している画像を初期状態の(なし)に戻す方法はありますか?
TPicture.Grahpic := nil;
0830デフォルトの名無しさん
2007/01/17(水) 17:58:00IPアドレスが動的割り振りの場合、どうやって相手のIPアドレスを取得するのがいいですかね?
ネットワークコンピュータ名からIPアドレスを取得できますか?
こういう機能って固定IPアドレス前提なのが当たり前なのでしょうか?
自分が思いついたのは、共有フォルダの範囲内にiniを置いて読み出す方法
ですが、他人に使ってもらえる仕様じゃないと思います(汗
(フリーウェア公開を目指しています)
0831デフォルトの名無しさん
2007/01/17(水) 18:27:33ようするに全員に問い合わせると
0832デフォルトの名無しさん
2007/01/17(水) 18:48:13レスありがとうございます。
ソースが理解の範囲を超えていました(汗
全員に問い合わせるっていうと、
サブネットマスクの範囲内で0〜255全部にメッセージを送って成功したアドレスを取得って事ですかね
バグだすとエラいことになりそうな。
0833デフォルトの名無しさん
2007/01/17(水) 19:05:47#define { begin
#define } end;
とかやれば、Cっぽく書けますか?
0834デフォルトの名無しさん
2007/01/17(水) 19:11:380835デフォルトの名無しさん
2007/01/17(水) 19:18:070836デフォルトの名無しさん
2007/01/17(水) 20:06:01Int64の値をDBに入れたいのでBigIntで定義したのですが、エラーが出てしまいます。
どちらも8バイトなので問題ないと思うのですが、何故なんでしょうか?
DB: MySQL
接続: ODBC
IDE: Delphi7
OS: XP
0837836
2007/01/17(水) 20:11:34あとクラスはBDEのTDatabaseとTTableを使ってます。
Table1.InsertRecord([Int64(10)]);
こんな感じでレコードを挿入するとエラーが出ます。
宜しくお願いします。
0838デフォルトの名無しさん
2007/01/17(水) 20:18:43ブロードキャストアドレス で問い合わせるんだよ。
でも普段は出来るだけブロードキャストしなくていいように
自分の情報が変更される時は、その情報を全員に伝えるようにしておけばいいでしょ?
0839デフォルトの名無しさん
2007/01/17(水) 21:14:40フィールドタイプが間違っているとか。
0840デフォルトの名無しさん
2007/01/17(水) 21:34:06BDEを使っている場合は
ドライバのオプションで
Don't optimize column widths
Return matching rows
を設定する必要がある。
0841デフォルトの名無しさん
2007/01/17(水) 21:41:44選択範囲をクリックした瞬間に範囲が解除されてしまうので実現できません。
クリックしても範囲が解除されないにはどうすればいいですか?
0842837
2007/01/17(水) 22:39:51>>839
フィールドタイプとはテーブルの型って事ですか?
create table test (test bigint);
こんな感じでやってます。
>>840
二つのオプションをつけてみましたが、改善されないようです。
一応このオプションつけなくてもIntegerだと普通にインサートできるんですが、
これはInt64或いはBigIntを使う場合に必要って事なんでしょうか?
0843デフォルトの名無しさん
2007/01/17(水) 22:48:04> フィールドタイプとはテーブルの型って事ですか?
TTable のフィールド(項目コンポーネント)の型
0844837
2007/01/17(水) 23:10:10失礼しました。項目の型でしたね。
TTableの項目は特に何も設定していなかったりします。
フォームにTDatabaseとTTableを貼り付けて
以下のソースを書いただけです。
procedure TForm1.FormCreate(Sender: TObject);
begin
Database1.AliasName := 'TestDB';
Database1.DatabaseName := 'Test_DB';
Database1.LoginPrompt := False;
Database1.Params.Add('USER NAME=root');
Database1.Params.Add('PASSWORD=password');
Database1.Connected := True;
Table1.DatabaseName := Database1.DatabaseName;
Table1.TableName := 'test';
Table1.Active := True;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Table1.InsertRecord([21474836691]);
end;
ちなみにTDataSourceでTDBGridと関連付けてやると
コマンドプロンプトからMySQLに直接入力した値は問題なく読み出せます。
0845Delフサギコ ◆A6VzDeLphI
2007/01/17(水) 23:19:05> FormがDMへのコンフィグ情報を取得する場合、
> FormとDMで、二つのメンバー(もしくは、片方がプロパティで片方メンバ)を記憶させる必要があり、
> 冗長ではないのか?
>
> RTTIで、うまく読み書きする方法をご教授願いたい。
> 一括で、すべてのプロパティを保存するのか?
___________
∧,,∧ /TMemoryStreamの
_ ミ,,゚Д゚彡_< WriteComponent/ReadComponent
.=| |=U=U=| |= \ を調べてみてみ〜♪
| | .ミ ミ | |  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| |ノ∪''∪. | |
| | | |
0846Delフサギコ ◆A6VzDeLphI
2007/01/17(水) 23:22:28> FormとDMで、二つのメンバー(もしくは、片方がプロパティで片方メンバ)を記憶させる必要があり、
> 冗長ではないのか?
_____________
∧,,∧ /
_ ミ,,゚Д゚彡 _< レスし忘れた.....
.=| |=U===U=| |= \
| | .ミ ミ | |  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| |ノ∪''∪. | |
| | | |
冗長というかFormのプロパティはViewなので
Modelとして、DataModuleのメンバーを持たせるんだと思うよ。
というか、DataModuleでプロパティをつくるのが
よりベターなんだろうね。
0847837
2007/01/17(水) 23:25:30フィールドを追加して型を確認したところ
Table1test: TFloatField;
となっていたので、Float?と思いつつ末尾に.0をつけてやったらうまくいきました。
ん〜なんか良くわかってないんですが取りあえず解決です。
お付き合いありがとうございました。
0848デフォルトの名無しさん
2007/01/18(木) 00:41:10ほんとにくだらない質問だけど、
数年前(4、5年?)にもDelphiの質問スレに来たことあって
そのときもフサギコさんいたんだけど、ひょっとして中の人同じ?
0849デフォルトの名無しさん
2007/01/18(木) 00:54:090850デフォルトの名無しさん
2007/01/18(木) 02:09:31テキストファイルやバイナリファイルの一部
例えば10バイト目から12バイト目だけを書き換えるにはどうすれば良いですか?
0851デフォルトの名無しさん
2007/01/18(木) 02:09:380852デフォルトの名無しさん
2007/01/18(木) 03:37:40TFileStream
0853デフォルトの名無しさん
2007/01/18(木) 07:51:53TMemoryStream
0855デフォルトの名無しさん
2007/01/18(木) 12:53:44何か方法は無いものでしょうか?
0856デフォルトの名無しさん
2007/01/18(木) 13:56:42Parent はストリーム書き込みの関係だから、意味がない。
> 移動してくれません。
何がしたいのか良く分からんが
子フォームの状態を保存して、作り直せばいいじゃん。
0857デフォルトの名無しさん
2007/01/18(木) 14:24:410859856
2007/01/18(木) 16:12:42今回の質問はウィンドウの話だから、ちょっと違うって事でOK?
0860デフォルトの名無しさん
2007/01/18(木) 16:14:10掲示板にテキストデータをpostする際、Tmemoの1番最初の行しかpostされません。
どうすればいいでしょうか?
0861デフォルトの名無しさん
2007/01/18(木) 20:50:120862デフォルトの名無しさん
2007/01/18(木) 20:54:38ヒント:改行
0863デフォルトの名無しさん
2007/01/18(木) 21:05:290864860
2007/01/18(木) 21:08:450865デフォルトの名無しさん
2007/01/18(木) 21:25:230866デフォルトの名無しさん
2007/01/18(木) 23:28:081行広告でがまんする。
0867デフォルトの名無しさん
2007/01/18(木) 23:49:33コマンドプロンプトは非表示で、perlのファイルを実行、
その出力をEUCでエンコードしてMemoあたりに表示したいです。
一応、C#のソースならあります。誰か、Delphiに翻訳して下さい・・・
Process p = new Process() ;
p.StartInfo.FileName = Environment.GetEnvironmentVariable("ComSpec");
p.StartInfo.CreateNoWindow = true ; // 起動に ウィンドウ を使用しない
p.StartInfo.UseShellExecute = false ; // 起動に OS のシェルを使用しない
p.StartInfo.RedirectStandardInput = false ; // 標準リダイレクト入力を不許可
p.StartInfo.RedirectStandardOutput = true ; // 標準リダイレクト出力を許可
p.StartInfo.Arguments = @"/C cd C:\hogehoge && perl hoge" ; // コマンド設定(/C = 実行後 終了)
p.Start() ; // 起動
StreamReader output = new StreamReader(p.StandardOutput.BaseStream,Encoding.GetEncoding("EUC-JP")) ; // 出力を取得(参照の宣言のみ)
p.WaitForExit() ; // プロセスが終了するまで待つ
// 表示(出力を実際に取得)
output.Close();
0868867
2007/01/18(木) 23:57:33Delphiのバージョンは6です。
下記のURLを参照しましたが、コマンドの設定方法などがよく分からなくて・・・
サンプルを示して頂けたら嬉しいです。
参考にしたURL
ttp://www.autch.net/tips/delphi_anonymous_pipe.php
ttp://forum.nifty.com/fdelphi/faq/00029.htm
ttp://forum.nifty.com/fdelphi/samples/01207.html
ttp://homepage2.nifty.com/Mr_XRAY/Delphi/plSamples/T_ConsoleBat3.htm
0869デフォルトの名無しさん
2007/01/19(金) 00:17:020870デフォルトの名無しさん
2007/01/19(金) 00:27:18Delフサって、まめにレスしてたから、
今まで、共通コテハンみたいなものかと思っていた・・・
>>860
氏ね ><
0871デフォルトの名無しさん
2007/01/19(金) 00:33:07>>868にすべて書いてあるじゃないか・・・
0872デフォルトの名無しさん
2007/01/19(金) 04:51:12>掲示板にテキストデータをpost
これはどうすればできますか?
ゲームの得点等を送信してランキングを作りたいのですが・・・
0873デフォルトの名無しさん
2007/01/19(金) 06:38:560874デフォルトの名無しさん
2007/01/19(金) 12:03:35Delphi6を使用しています
マウスカーソルがどこにあっても、
マウスの状態(左右・ホイールボタンが押されているかどうか等)を取得するにはどうすればいいですか?
0875デフォルトの名無しさん
2007/01/19(金) 12:04:29そのあとも終了するまで増えたままになるんだけどこれは仕様ですか
メモリリークにはなってないみたいだけど
win2k+del7
0876デフォルトの名無しさん
2007/01/19(金) 12:06:26getcursorpos
誰か俺のも頼む>>875
0877デフォルトの名無しさん
2007/01/19(金) 12:12:25マウス フック で調べてみ
0878デフォルトの名無しさん
2007/01/19(金) 12:17:57それだと座標だけではないですか?
0880デフォルトの名無しさん
2007/01/19(金) 12:28:41DestroyIcon してる?
> If SHGetFileInfo returns an icon handle in the hIcon member of the SHFILEINFO structure
> pointed to by psfi, you are responsible for freeing it with DestroyIcon when you no longer need it.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/functions/shgetfileinfo.asp
0881デフォルトの名無しさん
2007/01/19(金) 12:32:000882デフォルトの名無しさん
2007/01/19(金) 13:20:50してるしてる
それにアイコンハンドルつっても4byteでしょ
1MB増えるのってみんなも同じなのか?
これほっといてもいいのか?
0883デフォルトの名無しさん
2007/01/19(金) 14:02:204byteはハンドルの長さだろw
DestroyIcon はハンドルの参照してるアイコンのデータのインスタンスを破棄するもんだ。
0884デフォルトの名無しさん
2007/01/19(金) 14:16:32しかもフラグに0渡しても同じ。
最初に呼出した時にシステムイメージリストが作られるからじゃない?
0885デフォルトの名無しさん
2007/01/19(金) 14:36:41ImageList_Destroy使ってみたけど削除できねーみたいだ
もういいや諦めよう・・・
みんなありがとう
さようなら・・・
0886デフォルトの名無しさん
2007/01/19(金) 16:44:00http://www.apionet.or.jp/~tubokura/k_tips.html#19970129
↑のサンプルを参考にしましたが、イベントが発生してないみたいです。コンパイルエラーは出ません
0887デフォルトの名無しさん
2007/01/19(金) 16:54:22そのコードでちゃんといける。
もっかい見直せ。
0888デフォルトの名無しさん
2007/01/19(金) 17:31:01やっぱりできません(汗 最小構成で試しに組んでみたんですがダメでした↓
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,ShellAPI, Menus;
type
TForm1 = class(TForm)
PopupMenu1: TPopupMenu;
test1: TMenuItem;
private
procedure WMNCRButtonDown(var Msg: TWMNCHitMessage); message WM_NCRButtonDown;
{ Private 宣言 }
public
{ Public 宣言 }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.WMNCRButtonDown(var Msg: TWMNCHitMessage);
begin
PopupMenu1.Popup(Msg.XCursor, Msg.YCursor)
end;
end.
0889デフォルトの名無しさん
2007/01/19(金) 17:43:07内部的にはどういう処理の仕方がベターなのでしょうか
私はposとcopyとstringreplaceを使いまくる方法しか思いつかないのですがこれじゃあまりにも遅すぎますよね
0890デフォルトの名無しさん
2007/01/19(金) 17:52:44正規表現でググレ
0891デフォルトの名無しさん
2007/01/19(金) 17:55:45PopupMenu1が空っぽのメニューとかいうボケじゃないよね?
0892デフォルトの名無しさん
2007/01/19(金) 18:42:55ありがとうございます。
コンポーネントが見つかったので勉強してみます。
0893デフォルトの名無しさん
2007/01/19(金) 20:23:13フォーム上で右クリックすると自分で設定したポップのが表示されます。
タイトルバーで右クリックすると、最小化、閉じるしかでてきません。
0894デフォルトの名無しさん
2007/01/19(金) 20:43:110895デフォルトの名無しさん
2007/01/19(金) 21:23:56あ…
タイトルバーとタスクバーとタスクトレイを混同してた(恥
0896デフォルトの名無しさん
2007/01/19(金) 21:26:46ヽ(・ω・)/ ズコー
\(.\ ノ
0897デフォルトの名無しさん
2007/01/19(金) 22:15:27プロパティ保存して再生成すれば同じようなことはできるのでしょうけど、
処理を実行したまま移動したり、フォームのポインタの更新を避けたいので、
できればそのまま移動させたいのですが、難しいのでしょうか。
0898デフォルトの名無しさん
2007/01/19(金) 22:59:05というかメインフォーム以外のフォームをMDIの親フォームとして動作させられないような希ガス。
MDI親フォームにはなってもMDI子フォームを入れる手段がない。
0899デフォルトの名無しさん
2007/01/20(土) 01:33:42Windows.SetParent(MDIChild.Handle, MDIForm.ClientHandle);
副作用は知らない。
0900デフォルトの名無しさん
2007/01/20(土) 03:52:26副作用は調べてみます。
0901デフォルトの名無しさん
2007/01/20(土) 07:56:03D6使ってます
Delphi使ってる人をDelphianと呼ぶのですか?
C使ってる人はCゲンガーですか?
0902デフォルトの名無しさん
2007/01/20(土) 13:27:57自分のアプリケーション以外がクリックされた時も消してやりたいです。
どうすればいいでしょうか?
0903デフォルトの名無しさん
2007/01/20(土) 13:45:11ゲンガー懐かしい
0904デフォルトの名無しさん
2007/01/20(土) 13:45:56????
日本語でお願いします
0905デフォルトの名無しさん
2007/01/20(土) 14:00:26すいません。
具体的に書きます。
いま、ミュージックプレイヤーを作っています。
それをボリュームのコントロールを、別フォームで表示させています。
この別フォームを、たとえば、デスクトップをクリックした時に消してやりたいのです。
イメージとしてはTPopupMenuみたいな感じです。
0906デフォルトの名無しさん
2007/01/20(土) 14:03:560907デフォルトの名無しさん
2007/01/20(土) 14:04:080908デフォルトの名無しさん
2007/01/20(土) 14:05:29マウスボタンのフックとかになるんかね
0909デフォルトの名無しさん
2007/01/20(土) 14:14:56そこのOnActiveとDeActiveで消したり表示したりじゃダメか
0910デフォルトの名無しさん
2007/01/20(土) 14:31:12>>909
の方法でそれらしいのができました。
WM_ACTIVATEAPP捕まえるってのはさっぱり分からなくて、ググってもよく分からなかったんですが
WinAPIですよね? ちゃんと把握しておいた方がいいですか?
0911デフォルトの名無しさん
2007/01/20(土) 14:31:570912デフォルトの名無しさん
2007/01/20(土) 19:14:25Integer型の変数aのランダムをLabelに表示したいのですが、
a:=Random(10);とやっても最初が0しか表示されないのですがこれは偶然0なのですが?
何か違って最初が必ず0になってしまうのですか?
あと、Label2.Captionにaとbの変数の足し算
(計算はせず、String型の計算式)を表示させたいのですが
Label2.Caption:=(IntToStr(a))'+'(IntToStr(b))'=' ;
これは全く違いますか??
0913Delphi初心者
2007/01/20(土) 19:17:46Randomize;
TForm1.FormCreateに↑の入力すればできると思うよ^^
0914デフォルトの名無しさん
2007/01/20(土) 19:19:17あとLabel2.Caption:=(IntToStr(a))'+'(IntToStr(b))'=' ;
これはLabel2.Caption:=IntToStr(a)+'+'+IntToStr(b)+'=' ;
こうだな
0915デフォルトの名無しさん
2007/01/20(土) 19:20:22そのRandomize;とは何でしょうか;?
TForm1.FormCreateには入力しています。
0916デフォルトの名無しさん
2007/01/20(土) 19:20:580917デフォルトの名無しさん
2007/01/20(土) 19:21:58全部書いてある
0918Delphi初心者
2007/01/20(土) 19:22:49Delphi6のヘルプより引用
Randomize 手続きは,現在の時刻を元に組み込みの乱数生成関数を初期化します。通常は,アプリケーションの起動時に一度呼ぶだけで十分です。
乱数生成関数を初期化するには,Randomize を呼び出すか,RandSeed に値を割り当ててください。
ループ内の Randomize 呼び出しと Random 関数の呼び出しを組み合わせないでください。通常,Randomize は,すべての Random の呼び出しの前に一度だけ呼び出されます。
0919デフォルトの名無しさん
2007/01/20(土) 19:22:580920Delphi初心者
2007/01/20(土) 19:24:24開発がんばってね
0921Delphi初心者
2007/01/20(土) 19:32:18http://eztools.no.land.to/random.zip
あいよ
今作ってみた
0922デフォルトの名無しさん
2007/01/20(土) 19:33:43本当にありがとうございます!!
procedure TForm1.FormCreate(Sender: TObject);
var
a,b,I:Integer;
begin
Randomize;
for I := 1 to 10 do begin
Label2.Caption:=IntToStr(a)+'+'+IntToStr(b)+'='
end;
end;
こんな感じでエラーは出なかったのですが、
やはり再生すると、0+0=の計算しかならないのが気になります。
いきなり4+5=などの数字にはならないのでしょうか?
さっきと同じことを聞いていたらすいません。
ちなみに、ランダムで出てくる数字の足し算のプログラムです。
0923デフォルトの名無しさん
2007/01/20(土) 19:35:08>>921さん本当まりがです。
0924デフォルトの名無しさん
2007/01/20(土) 19:42:23調子に乗って構いすぎるなよ
912に為にならんだろが
0925デフォルトの名無しさん
2007/01/20(土) 19:54:05同じLabelに繰り返し表示してどんな意味があるの
0926デフォルトの名無しさん
2007/01/20(土) 19:55:430927デフォルトの名無しさん
2007/01/20(土) 19:58:59const
i = 10;
var
a,b:integer;
begin
Randomize;
a := Random(i);
b := Random(i);
Label2.Caption := IntToStr(a)+'+'+IntToStr(b)+'=';
end;
0928デフォルトの名無しさん
2007/01/20(土) 19:59:48自演乙
sageろ
0929デフォルトの名無しさん
2007/01/20(土) 20:04:390930デフォルトの名無しさん
2007/01/20(土) 20:17:460931デフォルトの名無しさん
2007/01/20(土) 20:21:29例えば、
「あいう
えお」 とメモに書いた場合に、
「ういあ
おえ」
と文字を入れ替えたいのです(「かぎ括弧はわかりやすくするためにつけたものです。)
0932デフォルトの名無しさん
2007/01/20(土) 20:25:210933デフォルトの名無しさん
2007/01/20(土) 20:28:11置き換えをしたいのですが、おそらく置き換えに必要な取得がそもそもできません。
「置き換え」そのものを教えていただけるとありがたいのですが、まずは「取得」のほうから勉強したいと思います。
0934デフォルトの名無しさん
2007/01/20(土) 20:36:04function Rep(str,chr1,chr2:String):String;
begin
p1 := Pos('chr1', str);
p2 := Pos('chr2', str);
str[p1] := chr2;
str[p2] := chr1;
Result := str;
end;
0935デフォルトの名無しさん
2007/01/20(土) 20:38:120936デフォルトの名無しさん
2007/01/20(土) 20:39:410937デフォルトの名無しさん
2007/01/20(土) 20:40:45ちゃんと AnsiPos() つかえよ
あと、一文字っても2バイトかもよ
0938デフォルトの名無しさん
2007/01/20(土) 20:42:040939デフォルトの名無しさん
2007/01/20(土) 20:42:130940デフォルトの名無しさん
2007/01/20(土) 20:43:030941デフォルトの名無しさん
2007/01/20(土) 20:44:01p1、p2とは何のことでしょうか?
すいません。
0942デフォルトの名無しさん
2007/01/20(土) 20:45:35宣言抜けてるな
var
p1,p2:Integer;
0943デフォルトの名無しさん
2007/01/20(土) 20:48:35ありがとうございます。
何か特殊なものだと勘違いしておりました。
ご丁寧にすいません。
0944デフォルトの名無しさん
2007/01/20(土) 20:52:23型が合わないといわれてしまいます。
0945デフォルトの名無しさん
2007/01/20(土) 21:37:420946デフォルトの名無しさん
2007/01/20(土) 23:09:540947デフォルトの名無しさん
2007/01/20(土) 23:14:180948デフォルトの名無しさん
2007/01/20(土) 23:15:200949デフォルトの名無しさん
2007/01/20(土) 23:17:000950867
2007/01/20(土) 23:44:28ありがとう。リダイレクトでぐぐって以下のソースを見つけました。
http://www.smart-bbl.info/CQN/FAQ/delphi/d0009376.html
で、コマンドを渡して出力を得ることはできるのですが、
あるコマンドを入れると出力を取得できなくなってしまいます。
例えば上記URLのソースの
Command = 'C:\tools\lha.exe'; // 実行するDOSプログラム
の部分を
Command = 'COMMAND.COM /c dir'; // 実行するDOSプログラム
とすると、上手く出力を得られるのですが、
Command = 'COMMAND.COM /c cd C:\hogehoge && perl hoge'; // 実行するDOSプログラム
とすると何も返ってきません。
普通にコマンドプロンプトで打ち込んだ時には取得できるのですが・・・
どのように入力すれば出力を得られるでしょうか?教えてください。
0951デフォルトの名無しさん
2007/01/20(土) 23:51:02いろいろ調べているうちにTStandardPopupMenuというものを使えばいいようなことまでは分かりましたが、
そこから先が分かりません。というのもIDE上からは作成できないようですし。。。
TStandardPopupMenuを動的に作る方法などありましたら教えてくださいm(_ _)m
0952デフォルトの名無しさん
2007/01/21(日) 00:56:06> いろいろ調べているうちにTStandardPopupMenuというものを使えばいい
ソースプリーズ。
> D7のアクションメニューバー
D7 ならパッチを当てればPopupActionBar が使えるけど。
http://cc.codegear.com/Item.aspx?id=19151
Toolbar2000 + TBX でも出来たような気がする。
0953デフォルトの名無しさん
2007/01/21(日) 01:19:14おーまじありがとう^^
これでできそうだよ
> ソースプリーズ。
ソースっていうかアクションバンドのVCLソース読んでたらそう思っただけなんだが・・・。
0954デフォルトの名無しさん
2007/01/21(日) 03:25:27で、アップデートをしようと思って bds2006_jp_pro_upd2.msp を実行したんですが、
---------------------------
エラー
---------------------------
インストールできません。このファイルは Borland Developer Studio 2006 Professional 版 版用のアップデート 2 です。
セットアップを中止し, 版のアップデート 2 をインストールし直してください。
---------------------------
・・と出て、アップデートできません。
勿論、Proを入れて、Pro用のパッチを当てたのですが、うまくいきません。
どなたか、うまく回避できてるかたいませんか?
0955デフォルトの名無しさん
2007/01/21(日) 03:45:51回避方法: Vistaを使うのをやめる
0956デフォルトの名無しさん
2007/01/21(日) 03:50:120957デフォルトの名無しさん
2007/01/21(日) 03:55:400958デフォルトの名無しさん
2007/01/21(日) 04:03:27エラー
---------------------------
EPackageRegistrationException がモジュール coreide100.bpl の 000DB245 で発生しました。
登録プロシージャ Pasdotnetreg.IDERegister (パッケージ C:\Program Files\Borland\BDS\4.0\Bin\delphidotnetide100.bpl) が例外クラス EOSError を生成しました: システムエラー。コード:5.
アクセスが拒否されました。.
次に Borland Developer Studio 2006 を起動するときにも、この IDE パッケージを読み込みますか?
---------------------------
はい(Y) いいえ(N)
---------------------------
0959デフォルトの名無しさん
2007/01/21(日) 04:04:390960デフォルトの名無しさん
2007/01/21(日) 10:57:10const
ExeModeName array [0..2] of string = ['aaa','bbb','ccc'];
みたいなことがやりたいのです。
0961デフォルトの名無しさん
2007/01/21(日) 11:10:41ExeModeName: array [0..2] of string = ('aaa','bbb','ccc');
0962デフォルトの名無しさん
2007/01/21(日) 11:26:59http://www.drbob42.com/examines/examin84.htm
0963デフォルトの名無しさん
2007/01/21(日) 11:31:42ありがとうございます。基本的な文法ミスでしたorz
boolean型での[]と混同してました。
0964デフォルトの名無しさん
2007/01/21(日) 11:38:34> アップデートをしようと思って
コマンドラインで、 msiexec /update bds2006_jp_pro_upd2.msp
>>958
> EPackageRegistrationException
IDE を管理者権限で実行するか
ユーザーにBDS/4.0/bin フォルダのアクセス権を設定するか
いずれかが必要みたい。
0966デフォルトの名無しさん
2007/01/21(日) 13:31:41こういう1行で、実行文(procedure内とか)に配列の変数に代入するにはどうやって書けばいいのでしょう?
0967デフォルトの名無しさん
2007/01/21(日) 13:39:00配列リテラルが許されるのはオープン配列引数を持つ関数やプロシージャの引数くらい。
0968デフォルトの名無しさん
2007/01/21(日) 13:39:13Delphiでは、>>961みたいな型付き定数は、デフォルトでは真の定数ではないので念のため。
書き換え可能。
0969デフォルトの名無しさん
2007/01/21(日) 14:57:13try
hogehoge;
except
end;
と書いているんですが、実行時エラーがでた時にエラーメッセージがでます。
このエラーメッセージをでないようにする方法はありますか?
0970デフォルトの名無しさん
2007/01/21(日) 15:24:16通常の例外であればそのコードで握りつぶせるはずだけど。
hogehogeの中で例外ハンドリングしてメッセージを表示しているのでは?
0971950
2007/01/21(日) 15:30:41Delphiはよく分からんが
raise Exception.Create('hogehoge');
とか?
↓になんかかいてあるぞ。
http://forum.nifty.com/fdelphi/faq/00236.htm
だれかもれのも頼む
0972デフォルトの名無しさん
2007/01/21(日) 15:33:560973デフォルトの名無しさん
2007/01/21(日) 15:34:59レスありがとうございます。socketを利用したプログラムを組んで居るんですけど、
クライアントタイプをctBlockingにしたらメッセージはでなくなりました。
ctNonBlockingだとメッセージがでます。
ヘルプ読んでも違いがよく分からない…
とりあえずクライアントタイプをctBlockingで組んでいきます。
0974デフォルトの名無しさん
2007/01/21(日) 15:51:37実際は >>969 の例外ブロックの外で例外が発生しているというオチの予感。
0975デフォルトの名無しさん
2007/01/21(日) 16:17:350976デフォルトの名無しさん
2007/01/21(日) 16:21:06Command = 'COMMAND.COM /c "cd C:\hogehoge && perl hoge"'
では駄目?
0977デフォルトの名無しさん
2007/01/21(日) 17:00:23コマンドラインオプションでディレクトリ指定すればいい
0978950
2007/01/21(日) 17:31:51ありがとう。
>>976のは何も返ってこなくて、
Command = 'COMMAND.COM /k "cd C:\hogehoge && perl hoge"'
~~~
にしてみたら
・・・略・・・
KKCFUNCが組み込まれました.
マイクロソフトかな漢字変換 バージョン2.51
・・・略・・・
コマンドまたはファイル名が違います.
とDOS画面に表示されていました。
>>977
えっ
0979デフォルトの名無しさん
2007/01/21(日) 17:34:27COMMAND.COMのオプションじゃなくてw
Perl -xとかのこと。 Perl -h叩いて確認しれ
0980950
2007/01/21(日) 17:45:32ありがとう。みたけど英語でわかんなかった
&&の使い方がおかしいのかな?
コマンドプロンプトで
(カレントディレクトリ)>cd C:\hogehoge
C:\hogehoge>perl hoge
というようなことをやりたいんですが・・
0981デフォルトの名無しさん
2007/01/21(日) 17:46:35perlにパスが通ってないとかそういうのは大丈夫だよね。
0983デフォルトの名無しさん
2007/01/21(日) 18:02:46ディレクトリ移動がなぜ必要なのか
'perl C:\hogehoge\hoge' ではなぜだめなのか?
つかこれ以上はPerlスレ池
0984デフォルトの名無しさん
2007/01/21(日) 18:12:33文字列をウィンドウの中央に
表示したいのですが、
どうすれば良いでしょうか?
0985デフォルトの名無しさん
2007/01/21(日) 18:19:51S: string;
W, H: Integer;
begin
S := 'hoge';
W := Canvas.TextWidth(S);
H := Canvas.TextHeight(S);
Canvas.TextOut((Width - W) div 2, (Height - H) div 2, S);
end;
0986950
2007/01/21(日) 18:24:49できたーーーーーーーーーーーーーーー!!!!!!
できました!!!!!!
ありがとうございます!!!!!!!!!!!!!!!!!!
でもまだエンコードが・・・orz
また分からなかったら聞きにきます。ありがとうございました!
0987q
2007/01/21(日) 20:10:09「上から○(円)が落ちてきて、
ウィンドウの1番下に達したら
その円は止まり、新しい円が
また落ちてくるプログラムを作れ
(ただしfor文を使うこと)。」
という宿題が出たのですが、
よく分かりません。
どなたか分かる方、教えて下さいm(__)m
0988デフォルトの名無しさん
2007/01/21(日) 20:17:04http://pc10.2ch.net/test/read.cgi/tech/1136994325/
0989デフォルトの名無しさん
2007/01/21(日) 20:25:26http://gamdev.org/w/?%5B%5B%A5%C6%A5%C8%A5%EA%A5%B9%C9%F7%CD%EE%A4%C1%A4%E2%A4%CE%A5%B2%A1%BC%A5%E0%A4%F2%BA%EE%A4%EC%5D%5D
0990デフォルトの名無しさん
2007/01/21(日) 20:50:07そのファイルがあるディレクトリのフルパスを取得する方法を教えてください。
0991デフォルトの名無しさん
2007/01/21(日) 20:54:58findfirst,findnext
0992デフォルトの名無しさん
2007/01/21(日) 22:43:29くだすれDelphi(超初心者用)その39
http://pc10.2ch.net/test/read.cgi/tech/1169386914/
0994デフォルトの名無しさん
2007/01/22(月) 06:37:57mdbファイルをTADOConnectionで開き、TADOTableでテーブルを開こうとしているのですが、
テーブル名に + - / ( ) & 等、演算子を含むものがうまく開けません。
命名ルールとしておかしいのはわかっているのですが、実際Access上に存在してしまっており、
テーブル名の変更などができません。
うまく開く方法がありましたら教えていただけないでしょうか。
0995デフォルトの名無しさん
2007/01/22(月) 06:44:090996デフォルトの名無しさん
2007/01/23(火) 00:41:56" "でくくってみれ
0997デフォルトの名無しさん
2007/01/23(火) 01:28:060998デフォルトの名無しさん
2007/01/23(火) 02:00:170999デフォルトの名無しさん
2007/01/23(火) 02:02:301000デフォルトの名無しさん
2007/01/23(火) 02:02:3710011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。