5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

モナーの *やさしい* Delphi質問スレ Ver.7

1 :Delモナー ◆fPymXWHY :02/05/12 20:08
  ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ( ´∀`)<. Delモナーがどんな厨房疑問でもやさしく答えます。
 (    ) .| Delモナーは時に私であり、時には別の人。
 | | |  | 他のスレに書き込んで罵倒される前に、まずここで質問しよう。
 (__)_)  \_________________________

前スレ モナーの *やさしい* Delphi質問スレ Ver.6
http://pc.2ch.net/test/read.cgi/tech/1019134412/

前スレが埋まるまでは書き込まないで
(あるいはsage進行にして)ください。

>>2-10あたりに関連情報あり
○過去スレ >>2
○関連スレ >>3-5
○Delphi製品情報 >>6
○関連リンク >>7
○質問者へ・回答者へ >>7
○ソース置き場案内 >>8

2 :デフォルトの名無しさん:02/05/12 20:08
■過去スレ

モナーの *やさしい* Delphi質問スレ Ver.5
http://pc.2ch.net/test/read.cgi/tech/1017803412

モナーの *やさしい* Delphi質問スレ Ver4(HTML化待ち)
http://pc.2ch.net/test/read.cgi/tech/1016467137/

モナーの *やさしい* Delphi質問スレ Ver3(HTML化待ち)
http://pc.2ch.net/test/read.cgi/tech/1014474727/

モナーの *やさしい* Delphi質問スレ Ver2(HTML化待ち)
http://pc.2ch.net/test/read.cgi/tech/1011649179/

モナーの *やさしい* Delphi質問スレ(HTML化済)
http://pc.2ch.net/tech/kako/1003/10031/1003113413.html

3 :デフォルトの名無しさん:02/05/12 20:09
■関連スレ
一番上が新しいスレです。書き込みは新しいスレに。

○ミ,,゚Д゚彡DelフサギコのフサフサDelphi談話室
Delphi や Borland に関する話題、雑談や質問をしながらマターリくつろごうや
A http://pc.2ch.net/test/read.cgi/tech/1013298748/
@ http://pc.2ch.net/test/read.cgi/tech/1003664165/ (HTML化待ち)
( ゚Д゚)ノ Delギコ猫のプログラミング相談室
DelphiやBorlandに関する雑談や質問しながらみなーで、くつろごうや
part4 http://pc.2ch.net/tech/kako/1002/10024/1002469894.html
part3 http://piza2.2ch.net/tech/kako/1001/10010/1001039863.html
part2 http://pc.2ch.net/tech/kako/999/999482946.html
part1 http://piza2.2ch.net/tech/kako/997/997348797.html

○Delphi相談室 現在その3
Delphi関連のTips Q&A はこちらです。
その4 http://pc.2ch.net/test/read.cgi/tech/1018211735/
その3 http://pc.2ch.net/test/read.cgi/tech/1010153466/ (HTML化待ち)
その2 http://pc.2ch.net/tech/kako/995/995950803.html
その1 (逝ってしまったようです)
(続く)

4 :デフォルトの名無しさん:02/05/12 20:09
■関連スレ(続き)

○***すれ立てるまでもない質問はここで***
どのスレッドに質問したらいいか、わからないときはここで質問してみよう。(略)
第14刷 http://pc.2ch.net/test/read.cgi/tech/1021034822/
第13刷 http://pc.2ch.net/test/read.cgi/tech/1018752281/
第12刷 http://pc.2ch.net/test/read.cgi/tech/1016631412/ (HTML化待ち)
第11刷 http://pc.2ch.net/test/read.cgi/tech/1014478527/ (HTML化待ち)
第A刷 http://pc.2ch.net/test/read.cgi/tech/1012536901/ (HTML化待ち)
第9刷 http://pc.2ch.net/test/read.cgi/tech/1010673275/ (HTML化待ち)
第8刷 http://pc.2ch.net/test/read.cgi/tech/1008908052/ (HTML化待ち)
第6刷 http://pc.2ch.net/tech/kako/1004/10041/1004183881.html
第5刷 http://pc.2ch.net/tech/kako/1001/10019/1001998049.html
第4刷 http://pc.2ch.net/tech/kako/998/998403891.html
第3刷 http://piza2.2ch.net/tech/kako/993/993933402.html
第2刷 http://piza.2ch.net/tech/kako/990/990082077.html
第1刷 http://piza.2ch.net/tech/kako/975/975576060.html

○Pascal の初心者用の質問・相談所
コンソールのみ。GUI は扱いません。
http://pc.2ch.net/test/read.cgi/tech/1009903617/

○kylix相談室(閑散)
http://pc.2ch.net/test/read.cgi/tech/988815580/ (HTML化待ち)
1 (行方不明)
(続く)

5 :デフォルトの名無しさん:02/05/12 20:09
■関連スレ(続き)

○Delphiで小さな実行ファイルを作ろう
http://pc.2ch.net/test/read.cgi/tech/1009080085/

○delphiで作られた有名ソフトって何がある?
delphi自身もdelphi?てか、今delphiやってる人へ希望を与えてやって下さい。
http://pc.2ch.net/test/read.cgi/tech/990056026/

○Delphiでアクションゲームが作りたい!!
初心者でもわかるように1から説明してください。
http://pc.2ch.net/test/read.cgi/tech/1019654975/

○おまけ Delギコさん、復活祈願スレ
http://pc.2ch.net/test/read.cgi/tech/1002578288/

6 :デフォルトの名無しさん:02/05/12 20:09
■Delphi製品情報

○公式サイト
http://www.borland.co.jp/delphi/

○Delphi 6 Personal
無料でダウンロードできる。持っていない人はこれを機にやってみよう。
ダウンロードするファイルはは59MBあり、またサーバーが重いので注意。
使用者登録が必要。
http://www.borland.co.jp/delphi/personal/

○Delphi 6 アップデート・ダウンロードサービス
最新のアップデートは次の通り。
Personal: Update Pack 2 (2002/3/19)
Professional, Enterprise: Update Pack 2 + 追加アップデート (2002/3/29)
http://www.borland.co.jp/delphi/del6up.html

7 :デフォルトの名無しさん:02/05/12 20:09
■関連リンク

ここに貼っておきました。
どんどん追加して構いません。

こちらへ
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=999486538

■質問者へ

○ここはDelphi(Kylix)のプログラミングに関する質問スレです。
スレ違いの質問は罵倒されるので、ほかのスレを探してください。

○初歩的な質問でもOKです。でもネタだと思われないように、
自分で努力した跡を示すのが吉。

○まずは自分で調べてみよう。回答にGoogleの検索結果を貼られないように。
Google http://www.google.com/intl/ja/
2ちゃんねる検索 http://2ken.net/
Delphi-ML検索 http://leed.issp.u-tokyo.ac.jp/~takeuchi/delphi/search.cgi

■回答者へ 「ヘルプ嫁」だけではこのスレの存在意義がないような気が・・・。

8 :デフォルトの名無しさん:02/05/12 20:10
■ソース置き場

このスレのソース置き場を作ってみました。
このスレに載せきれないソースはここへどうぞ。
○3000行までOKです。
○ソース書き込み時は等幅に設定してください。インデントが使えます。
○激しく長いソースは、同時にソースファイルを添付しておくと(゚Д゚)ウマーです。
○置くのはソースでなくても構いません。
ファイルのアップローダーとしてもどうぞ。

こちらへ
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1017673221


以上。

9 :Delモナー ◆fPymXWHY :02/05/12 20:10
  ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ( ´∀`)<. 前スレが埋まるまでは書き込まないで
 (    ) .| (あるいはsage進行にして)ください。
 | | |  \_________________________
 (__)_)

10 :デフォルトの名無しさん:02/05/12 20:35
http用のコード書いたのですが動きません。どこが変でしょう?

URL := 'www.yahoo.co.jp';
Port := 80;

var
sock :TSocket;
wsa :TWSAData;
addr :TSockAddrIn;
hostent :PHostEnt;
data :array[0..2048] of char;
begin
WSAStartup(MAKEWORD(1, 1),wsa);

StrCopy(data,'GET index.html HTTP/1.0'#13#10#13#10);

sock := socket(AF_INET,SOCK_STREAM,0);
addr.sin_family := AF_INET;
addr.sin_port := htons(Port);
hostent := gethostbyname(PChar(URL));
addr.sin_addr.S_addr := htons(Port);
connect(sock,addr,Sizeof(addr));
send(sock,data,2048,0);
recv(sock,data,2048,0);

Result := data;
end;



11 :仕様書無しさん:02/05/12 21:17
こちらのサイトよりBORLAND製品のキージェネレーターが落とせますので
C++Builder6 Enterprise
JBuilder6 Enterprise
Delphi 6 Enterprise
の各体験版をBORLANDに申し込みまして
シリアルぶっこんでkeygenでオーソライズしちゃいましょう
すべて動作確認済みです
Enterprise以外はkeygenが使えませんので注意してください
※下記サイトに逝く時はなるべくjavaは切った方がいいでしょう

http://www.cracks.am/cracks/b4.html


12 :デフォルトの名無しさん:02/05/12 21:20
>>11
規制依頼出して良いんだよね?このバカの。

13 :NETマンセー:02/05/12 21:23
>>13
BORLAND糞社員必死だな(W


14 :NETマンセー:02/05/12 21:25
BORLANDソフトがへぼいから今回のNET路線についていけず
逝くしかない

15 :NETマンセー:02/05/12 21:27
シリアル関係の掲示板はこちらに一覧をまとめてありますのでどうぞ
http://pc.2ch.net/test/read.cgi/prog/1016107892/22

16 :デフォルトの名無しさん:02/05/12 22:20
キージェネレーター使ったり、シリアル掲示板いっても、
別に正規ライセンスがもらえるわけじゃないからなあ・・・。

17 :デフォルトの名無しさん:02/05/12 22:21
正規ライセンスを合法で無料で手に入れる方法キボンヌ。

18 :Delフサギコ ◆zE1iiRdQ :02/05/12 22:40
 ∧,,∧
ミσ゚Д゚ミσ Borlandに入社シル.>>17

確か、エンプラ体験版にはVCLソースついてなかったので
バイナリが別もんだと思うけど
キージェンして使えるようになんのかなー。(動作確認しなくていいよ(藁))

無料で使いたいなら、Personalで十二分だと思われなんだけどな。

19 :デフォルトの名無しさん:02/05/13 01:15
トランポリン大好き。
家の中はトランポリンだらけ。
家に帰ると、玄関でホップ。
「ただ〜〜い、まぁ〜〜〜!」
“ま”のところで前方宙返り。
妻が奥からホップしながらやってきて、
「あな〜、た〜、おかえりっっ!!」
“あな”で前宙、“た”で後宙、“えり”で月面宙返り。
(注・妻は国体3位の腕前)
で、その調子でメシを食う。
みそ汁はいつも天井にまき散らす。
食べ終わると、後方伸身二回宙返りでそのまま風呂へ着水。
上がるとそのままベッドへ、文字通りひとっ飛び。
妻とは空中でないと燃えない。
抜けないようにうまくシンクロして飛ぶのが難しい。
寝相は二人とも大人しいほうで、時々天井に頭をぶつける程度。
問題は朝で、「行っ、て〜き、まぁ〜す!」の前方伸身宙返りで
外に出た途端、アスファルトに激突。
入院歴15回。
固いアスファルトなんて大嫌いだ。

20 :デフォルトの名無しさん:02/05/13 01:17
>>19
失恋
http://life.2ch.net/break/

21 :デフォルトの名無しさん:02/05/13 01:22
俺は過激な恋愛を薦めるが。。
http://love.2ch.net/kageki/

22 :デフォルトの名無しさん:02/05/13 01:25
(´-`)。o ○ (このスレ違いなヤツらの存在理由は何?)

23 :デフォルトの名無しさん:02/05/13 04:23
MSDNで検索できん。(鬱

24 :デフォルトの名無しさん:02/05/13 05:10
>>10
まずい点は幾つもありそうだけど・・・

まず、
GET /index.html HTTP/1.0
または
GET / HTTP/1.0

次に
send()で2048バイト全部送るな。後ろについてるゴミもsendしてる。

それから
recv()も1回にするな。recv()が0を返すまでデータは続くので、繰り返すこと。

根本的に
エラーチェックちゃんとやれ。

25 :デフォルトの名無しさん:02/05/13 06:08
addr.sin_addr.S_addr := htons(Port);
なにやってんの。

26 :デフォルトの名無しさん:02/05/13 14:26
重複スレが立ったので上げるよ〜

27 :デフォルトの名無しさん:02/05/13 14:47
厨房質問ですまんけど、Del6Personalを使ってCGIは作れるの?
VBみたいに標準入出力の扱いに苦労はしない?


28 :デフォルトの名無しさん:02/05/13 14:49
>>27
Readln Writelnって言う標準入出力の関数がある。
VBってSTDOUT/IN使うの大変なの?

29 :embedder ◆GqCvG9cU :02/05/13 23:09
embeddedwbを前スレでDLした者です。
ちょっとつっかかりましたが、無事インストロ…インストール出来ました。
いいですね!いろいろオフにしてブラウズさせるのが欲しかったので、
とてもイイ!すごく細かく設定出来るみたいだし。
しかし、これって2ちゃんで知ったんだけど、フリーなの?
Readme入ってないし、サイトにはライセンスが見つからない…。
GPLとか、なんか面倒なのはちょっと遠慮したいんだが、御存知の方、いらっしゃいませんか?

30 :デフォルトの名無しさん:02/05/13 23:27
>>27
この本がよい。
http://www.ai-pub.co.jp/contents/book/inet/delphi_cgi.html

31 :あーあ:02/05/13 23:34
クソスレ立てちゃって・・・

32 :デフォルトの名無しさん:02/05/14 00:13
batファイルがあるのですが、それを実行することは出来ますか?

33 :embedder ◆GqCvG9cU :02/05/14 00:18
あれれ?反応無いな…。embeddedwbって使ってる人少ないのかな?

34 :デフォルトの名無しさん:02/05/14 00:24
>>32
command.comの引数として渡してみ?

35 :デフォルトの名無しさん:02/05/14 00:26
>>34
どうすれば、command.comを実行することが出来ますか?
CreateProcessとかウワサ聞いたんですけど。

36 :デフォルトの名無しさん:02/05/14 00:27
>>33
ソースの最初にFreewareって書いてあるからGPLとかじゃないじゃない?

37 :embedder ◆GqCvG9cU :02/05/14 00:31
>>36
あ…本当だ…。今見てみたら書いてあるね。とりあえず、安心…かな?
サンクス!

38 :デフォルトの名無しさん:02/05/14 07:39
>>35
ShellExecuteの方が簡単

39 :デフォルトの名無しさん:02/05/14 08:52
>33
EmbeddedWBってかちゅも使ってたね、

40 :デフォルトの名無しさん:02/05/14 10:20
IndyってFtpServerなコンポーネントはないのかな?

41 :デフォルトの名無しさん:02/05/14 10:22
>>40
FTPサーバーコンポーネントって成立するの?
既にアプリケーションな気が・・・。

42 :デフォルトの名無しさん:02/05/14 10:31
そういえばそんな気がしますね。Httpがあったからつい。
馬鹿なこと言って申し訳ない。

43 :デフォルトの名無しさん:02/05/14 10:36
>>42
いや、書いてから考えたんだけどリクエストに応じて何らかの作業が出来れば便利だね。
このファイルを取得すると現在の時刻の情報を返すとか。
UNIXの/procファイルシステムのようなことができるなと。


44 :デフォルトの名無しさん:02/05/14 13:33
>>40
9.0.3BだけどIdFTPServerってのがあったよ。

45 :デフォルトの名無しさん:02/05/14 13:46
マウスを動かさない限り、(一定時間が経過しても)消えないヒントを、グリッドのセルごとに表示したいのですが、
OnMouseMoveイベントの中に以下のコードを記述するとヒントが点滅してしまいます。

StringGrid2.Hint:=IntToStr(m)+'月'+IntToStr(d)+'日'
+'('+StringGrid2.Cells[ACol,7]+')'+' '+StringGrid2.Cells[0,ARow];
Application.ActivateHint(ClientToScreen(MousePos));

どのような方法が良いのでしょうか?


46 :デフォルトの名無しさん:02/05/14 14:01
>>45
AColとARowが変化しない間はActivateHintを呼ばないとか。

47 :45:02/05/14 14:23
>>46
それを実行すると、点滅ではなく一定時間で消えます(つまり通常のヒントと同じ)。
ちなみに点滅するのはマウス移動中ではなく、マウス停止中のことです。
OnMouseMoveイベントはマウス移動中のみ発生すると思っていたのですが、
どうやら、移動していなくても、マウスポインターを置いているだけで連続的に発生しているようです。

48 :デフォルトの名無しさん:02/05/14 14:28
>>47
自分でTHintWindow使って表示してやれば?

49 :デフォルトの名無しさん:02/05/14 16:51
レコードの配列を一括でファイルに保存、読み込みできないでしょうか?
tFileStreamとかをつかってやろうとしているのですがわかりません。
どうか教えてください。

50 :デフォルトの名無しさん:02/05/14 16:53
>>49
memcopyでバイトストリームとして書き出す。

51 :デフォルトの名無しさん:02/05/14 16:54
>>49
つぅかcomponentStreamとか無かったっけか?


52 :デフォルトの名無しさん:02/05/14 16:55
>>49
 デッキマッセ〜
Stream. Write( 配列名 , sizeof(配列名[0])*( High(配列名)+1) )




53 :49:02/05/14 17:08
早速ありがとうございます。
procedure TForm1.FileSaveAs1Accept(Sender: TObject);
var
ms:TFileStream;
begin
ms:=TFileStream.Create(FileSaveAs1.Dialog.FileName,fmOpenWrite);
ms.Write(ffloor,sizeof(ffloor[0])*high(ffloor)+1);

ms.Free;
end;

procedure TForm1.FileOpen1Accept(Sender: TObject);
var
ms:TFileStream;
begin
ms:=TFileStream.Create(FileOpen1.Dialog.FileName,fmOpenRead);
ms.Read(ffloor,sizeof(ffloor[0])*high(ffloor)+1);
ms.Free;
end;
と、やってみたのですが、何も読み込まれていないようです。
ので、保存がされているかどうかも不明です。
Readの書き方が違うのでしょうか?

54 :デフォルトの名無しさん:02/05/14 17:13
まず、 High(xx)+1 は Length(xx) の方が簡単

ms.Write(ffloor,sizeof(ffloor[0])*length(ffloor));

ms.Read(ffloor,sizeof(ffloor[0])*length(ffloor));

次に、ffloor って何? まさかオブジェクトの配列じゃないよね?

55 :49:02/05/14 17:21
type
TFloor = record
...
end;
type
TForm1
...
private
fFloor:array[0..99,0..99]of TFloor;

です。まさかオブジェクトですか?


56 :デフォルトの名無しさん:02/05/14 17:36
ああ 固定長でしかも2次元ですか なら


.Write(ffloor,sizeof(ffloor));

だけでOK

57 :デフォルトの名無しさん:02/05/14 17:37
そして 49さんは ゲ開板で RPG作ってる人でしょう? きっと

58 :デフォルトの名無しさん:02/05/14 17:47
>>53 ファイルが出来てないんじゃないの? 確認した?

fmCreate で作成した方がいいんじゃないの?


59 :49:02/05/14 18:24
ハ、ハズカシー!
ファイルを読み込んで「再描画」忘れてました。
すみませんすみません。
fmCleateの方も修正しました。

ちなみにゲーム作ってますが別の人だと思います。
二次配列でフロアつったらバレバレですが。


60 :デフォルトの名無しさん:02/05/14 19:33
今まで主にスクリプト系の言語を使ってきて、デバッグは print をところどころに
挟むみたいなことをやっていました。
delphiで効率よくデバッグするにはどうするのが手っ取り早いでしょうか?

61 :デフォルトの名無しさん:02/05/14 19:40
>>60 win2Kなら write/writelnで GUIアプリでも コンソールが自動的に出て表示されます

62 :デフォルトの名無しさん:02/05/14 19:40
>>60
ShowMessage

63 :Delフサギコ ◆zE1iiRdQ :02/05/14 19:49
Professional版以上のDelphiなら
OutputDebugStringというAPI関数を書けば
IDEのイベントログWindowに出力結果が表示されます。

procedure TForm1.Button3Click(Sender: TObject);
begin
 OutputDebugString('OutputDebugStringで文字を出力');
end;

(ス)または

var
 hwndNotepadEdit: HWND;

procedure DebugPrintNotepad( S:string );
var
 hwndNotepad: HWND;
begin
 if not isWindow( hwndNotepadEdit )
 then begin
  hwndNotepad := FindWindow( 'Notepad','無題 - メモ帳' );
  hwndNotepadEdit := FindWindowEx( hwndNotepad,0,'Edit',nil );
 end;
 if not isWindow( hwndNotepadEdit ) then exit;
 SendMessage( hwndNotepadEdit,EM_REPLACESEL,0,LPARAM( PChar( S+#13#10 )));
end;

 ̄ ̄ ̄ ̄ ̄ ̄ ̄|/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
      \ ∧,,∧
        ミ゚Д゚,,∩
       ⊂;゙   ,ミ ←
 ̄  ̄   ミ゙゙_  ミ〜 ト  ̄  ̄  ̄
       ∪゙ヽ ミ   オ
       /  ∪  \
  /       :    オ
     /    || .   ォ  \
     /     | :   ォ  \
    /       .
           | .   ォ

64 :デフォルトの名無しさん:02/05/14 19:58
>>60-03
まぁTMemoでもはっつけて
TMemo.Lines.Add('げぼばべぶぅ〜〜');
みたいにすりゃいいかと。
どんな環境でも使えるし。

65 :デフォルトの名無しさん:02/05/14 20:03
なんだかんだで一番簡単なデバッグがprint系関数だという罠。
って言うかDelphiってAlertなかったっけ?

66 :デフォルトの名無しさん:02/05/14 20:04
>>65
assertだ。。。

67 :Delフサギコ ◆zE1iiRdQ :02/05/14 20:06
  ∧,,∧    /TMemoは(うそはうそであると見抜けない人でないと)
  ミ ゚Д゚ミっ < 描画関係や起動終了時のデバッグには
  |''U ̄|   \使うのは難しい
  | ̄ ̄|
 /    ゙ヽ
(   ゚Д゚  )
人____ノ

68 :デフォルトの名無しさん:02/05/14 20:07
>>67
いや、そらそうや。。。。

69 :デフォルトの名無しさん:02/05/14 20:36
>>67
テンプレを理解していない人には
(テンプレを使うのは)難しい

70 :Delフサギコ ◆zE1iiRdQ :02/05/14 22:35
      ∧,,∧ ワナワナ
     ミ#,゚Д゚彡   
      ミ つ ミつ
    @ミ   ミ
     ∪ ∪  セッセッセ...セイカイ!>>69

  教えてたも。

71 :60:02/05/14 22:36
printデバッグの質問をしたものです。みなさんいろいろとありがとうございます。
デバッガはやっぱり面倒なんですよ。
ところで assert ってあるんですか?

72 :デフォルトの名無しさん:02/05/14 23:12
>>71
あるYO!調べろよ!!

73 :デフォルトの名無しさん:02/05/15 06:31
GUIアプリでも コンソール出して writeするのがデバックは一番簡単だと思うけど?
手間いらないし、write(変数) だけで文字でも数字でも適当にダンプするし


74 :デフォルトの名無しさん:02/05/15 07:25
もしかして、やり方知らないのかな?

最初からコンソール出しておきたいなら
 GUIアプリでも {$APPTYPE CONSOLE} を どこでも書けばいいだけ
 (.DPRでもいいし テストしたいユニットでもいい)

コンソールをその時だけ出したいなら AllocConsole; を writeの直前で呼ぶ


75 :デフォルトの名無しさん:02/05/15 14:40
なあ、Del6のTControlにはマウスホイール関係のイベント(OnMouseWheel)があるけど、

なんでパレットから使えるコントロールにはこれらのイベントがPublishedになっていないの?


76 :デフォルトの名無しさん:02/05/15 15:04
TMainMenuでメニューを追加して、NAMEの中身が長い文字になるとプログラム終了時に落ちるみたいだが?
再現しますか?

俺の環境
WindowsXP (HOME)
Delphi6 pro


77 :デフォルトの名無しさん:02/05/15 15:38
>>76
ごめん、再現しませんでした。 WinXP D6pro(upd2)

78 :デフォルトの名無しさん:02/05/15 18:40
(´-`).。oO(浮動小数でmodやdivりたいときはどうすればいいんだろう……)

79 :デフォルトの名無しさん:02/05/15 18:59
>>78
/

80 :デフォルトの名無しさん:02/05/15 20:27
>>78
SSE

81 :デフォルトの名無しさん:02/05/15 20:36
割算をした後、切り捨て

82 :デフォルトの名無しさん:02/05/15 21:17
roundとかで丸めてから・・・は、負け?

83 :デフォルトの名無しさん:02/05/15 22:04
C#で作ったアプリをDelphiに移植しようとしてるのですが、Delphiの方ができないことだらけです。
どうすればよいでしょうか?

84 :デフォルトの名無しさん:02/05/15 22:05
>>83
>Delphiの方ができないことだらけです。

具体的に。説明のしようがない。

85 :デフォルトの名無しさん:02/05/15 22:06
Object Pascalの言語についての質問ですが、
Pascal にはインライン関数とかないのでしょうか?
もしございましたら簡単な例と一緒に張ってくれるとありがたいです…

86 :デフォルトの名無しさん:02/05/15 22:10
>>85
軽く調べたけどやっぱりないみたい。
そんな速度的にシビアなプログラム書いてるの?

87 :デフォルトの名無しさん:02/05/15 23:01
>>75
デフォルトで親にメッセージをまわして、最後にフォームで受けとれるから。


88 :デフォルトの名無しさん:02/05/15 23:57
>>83
おまえが無能だから

89 :デフォルトの名無しさん:02/05/16 00:09
>>88
煽りはスピードと正確さが命。

90 :デフォルトの名無しさん:02/05/16 00:12
僕の周りのDelphi使いがみんなC#に移行してしまってるのですが、皆さんはいつ移行しますか?

91 :デフォルトの名無しさん:02/05/16 00:13
>>90
明日にでも。
文法の勉強は終わった。後は買うのみ。
今作ってるクラスライブラリの移植から始めるか。

92 :デフォルトの名無しさん:02/05/16 00:16
いいね・・・買えるんだ・・・
    ∧_∧
    /⌒ヽ )
   i三 ∪
    |三 |
   (/~∪

93 :デフォルトの名無しさん:02/05/16 00:18
>>92
それが問題なのよ。
流行るかわからない技術に\13000出すの。
今回単品のアカデミックないでしょ?
じゃあ、WinXPが付いて\23000のアカデミックVSの方がお買い得。
でも、C++はともかくVBはいらないしなぁ・・・。

悩み死にしそうです。

94 :デフォルトの名無しさん:02/05/16 00:24
Del厨って貧乏人が多いんだね。
VS.NETの最上位エディションに25万払ったって3日で元が取れるのに。

95 :デフォルトの名無しさん:02/05/16 00:25
>>94
>VS.NETの最上位エディションに25万払ったって3日で元が取れるのに。

論拠無き発言はネタですよ。

96 :デフォルトの名無しさん:02/05/16 00:26
さっきからDelスレにいる、ただの煽りでしょ。

97 :デフォルトの名無しさん:02/05/16 00:27
>>95
VS.NETを使って得られる知識・感動が25万円に相当するという意味です。

98 :デフォルトの名無しさん:02/05/16 00:27
>>96
了解。
ふぅ、どっちにしようかなぁ〜。
いっそSDK + 自前でIDEもどき書くか・・・。

99 :デフォルトの名無しさん:02/05/16 00:31
ああ・・・貧乏人って煽られた・・・
    ∧_∧
    /⌒ヽ )
   i三 ∪
    |三 |
   (/~∪

100 :真・貧乏人:02/05/16 00:34
>>99
気にすんな。オレなんかwin95だ(藁
環境すら手に入らん。
いいんだ。win95は偉大なOSだ(藁

101 :デフォルトの名無しさん:02/05/16 00:37
漏れは雑誌の体験版で触ってみる予定。
ただ、C#の本軽く立ち読みしたくらいだから、結局インストロールして終わりそうな罠。

102 :デフォルトの名無しさん:02/05/16 00:38
>>101
収録まで後7日。
それを見て判断したいけど待ちきれない+出費\1000プラス。

ああ・・・迷い死ぬ・・・。

103 :デフォルトの名無しさん:02/05/16 00:40
今すぐWindowsUpdateに行けば.NETの環境(コンパイラつき)が手に入るじゃん。

104 :デフォルトの名無しさん:02/05/16 00:40
体験版出るのか。漏れもさわってみよう。

105 :デフォルトの名無しさん:02/05/16 00:41
また一人Delphi使いがC#に移行する( ̄ー ̄)ニヤリッ

106 :デフォルトの名無しさん:02/05/16 00:46
では、ここはC#質問スレに模様替えしましょう。

107 :デフォルトの名無しさん:02/05/16 01:04
Delphiの質問はこちらへ。
http://pc.2ch.net/test/read.cgi/tech/1021262086/l50

108 :いっそ貧乏人:02/05/16 08:25
>>100
気にするな俺なんか、K6-200MHzマシンでしかもLinuxFTP版でFreePascal使ってるし。

109 :デフォルトの名無しさん:02/05/16 08:34
なんか、Del厨がC#の乗り換えたとか、寝返ったとかホザイてるアホがいるみたいだが、
何?言語が全て?しょーもない物しか作れない奴に限って言語に執着があるのは経験
から知っているが、DelphiもC#も全て使えてナンボだろ、それとも、今までDelphiだけで
仕事をしてこれるほど今まで楽な仕事しかしてなかったか?
それに、Delphiでないと組めないようなプログラムは、.NETのC#だと組めないし、
お遊びプログラムでもDirectX関連のサポートがイマイチなC#よりもVC使う方が楽だろ、
C#がそんなに嬉しいか?、
最終的には開発環境は手段でしかないので、良いシステム・良いアプリケーションを組む
事に専念した方がいい。>最近騒いでるコーダ連中


110 :デフォルトの名無しさん:02/05/16 08:42
俺は、道具は一つ使えりゃいいんだから、複数勉強する時間があるなら、使い方じゃなくて原理を勉強しろよ
・・・と言いたいな。 使い方知ってるだけなら、ワードの使い方知ってるのと変わらないぞ。

実際はプログラミングの理論よりもさらに業務知識の方がもっと大切。
それぞれの分野で資格取れるくらいに勉強しとけよ。


111 :デフォルトの名無しさん:02/05/16 08:44
>>110
使い方覚えるだけで、プログラム作れるのが近代言語なんだよ!


112 :デフォルトの名無しさん:02/05/16 08:47
正直に言えよ。 新しい事が頭に入らなくなったんだろ?

Delだって使い方覚えるだけで書けるのは同じじゃないか

113 :デフォルトの名無しさん:02/05/16 09:36
とりあえずスレ違いだから
C# vs Delphi スレたててやってちょ。

114 :デフォルトの名無しさん:02/05/16 11:50
みんな仕事で使ってるのか、凄いなぁ。

115 :デフォルトの名無しさん:02/05/16 14:13
煽ってるのは元Del厨、煽りに乗るのが現役Del厨。
真性.NET厨を巻き込まないでくれ。

116 :デフォルトの名無しさん:02/05/16 15:00
ガキは(・∀・)カエレ!
二度と(・∀・)クルナ!

117 :デフォルトの名無しさん:02/05/16 16:12
プログラミング言語を習得するのって個人差はあるにせよそれなりに大変で、
すべての言語のスペシャリストにはなるのには無理がある。
だから自分が習得している or 習得しようとしている言語が優れていると「思い
たい」。
ところが自分が思ってるだけだといまいち確信が持てないから、こういう所で
話題に出して白黒つけたがる。自分の贔屓の言語の優位性をアピールして
自分の選択が間違っていないと安心したい。

プログラミング言語に限らず、OSやWebブラウザなんかでも同じ種類の現象
があちこちのスレで確認できる。それだけの話。

118 :デフォルトの名無しさん:02/05/16 16:20
そもそもこういうくだらない言い合いの元を作ってるのは他スレを荒らしてる
自称Delphi使いであることをお忘れなく。

119 :デフォルトの名無しさん:02/05/16 16:27
ガキは(・∀・)カエレ!
二度と(・∀・)クルナ!
(当然他スレを荒らしてる自称Delphi使いも含まれる)

120 :85:02/05/16 17:34
85です。遅レスごめんなさい。
>>86さん
いや、そんなことは全然ないです。
もしあったら(必要なときに)使いたいなぁ…と思っていただけです。

また質問ですが、現在kylix使ってテキストエディタを製作しているのですが、
ttp://www.w-frontier.com/delphi/3_edit.html
↑を参考にUndo、Redoを実装しようとしたところ、どうやらKylixではこのような
方法は使えない模様です。
Win32 APIを使わずに実装するにはどのようにすればよろしいでしょうか?
お願いいたします。

#Linux上で使用可能なコンポーネントを配布しているサイトってどこかないんですかね?
#Vectorにまで見に行ったけどKylix用のが一個もない模様で鬱…
#ttp://www.amazon.co.jp/exec/obidos/ASIN/4797316748/qid=1021537883/sr=1-1/ref=sr_1_2_1/250-6315126-4570612
#↑の本を立ち読みした所、Linux自体の機能を使えばいろいろできる模様。
#Linux最近はじめたばっかりで詳しくないんだよなぁ…(泣

121 :embedder ◆GqCvG9cU :02/05/17 00:29
えー、embeddedwbコンポーネントを入手していろいろいじくってる者です。
感想キボンヌって人がいたと思ったので、感想です。
なかなかいい感じなんだけど、一つ疑問が浮上。
なぜか、テキストなのに「文字化け」するものがあります。もちろんエンコードを適切にすれば
直りますが、なんでテキストで…?HTMLでも化けるのと化けないのがある。
もともとIE5.5が化けがちだから「こんなもんかな?」と思ってるけど、
テキストは…ハテ?

122 :デフォルトの名無しさん:02/05/17 01:00
>>121
EmbeddedWD使ったことないけど、エンコードの自動選択?
勘でモノを言っているのでsage

123 :デフォルトの名無しさん:02/05/17 01:00
%2dのわからない君にこそ、倉薫をお薦めだ!

124 :123:02/05/17 01:01
思いっきり誤爆です、ごめん。

125 :デフォルトの名無しさん:02/05/17 01:08
>>121
HTMLでエンコードを指定して書けばいいじゃん。

126 :embedder ◆GqCvG9cU :02/05/17 01:11
>>122
いや、自動選択は自動選択でいいんだけど、そんなの関係ない「素のテキスト
ファイル」が化けるのよ(^^;。
まぁ、テキストなんて表示させなきゃいいってことかな?
でも、全部じゃないんだよなぁ。割合はすごく少ないけど…。不思議だなぁ…?

127 :デフォルトの名無しさん:02/05/17 01:51
とりあえず、VBAがポンコツなのは満場一致だろ?

128 : ◆erCLtHyE :02/05/17 05:46
IncludeTrailingBackslashと、
ExcludeTrailingPathDelimiterのソースを教えてください。
Delphi4では何故か存在しないのです…。

129 :デフォルトの名無しさん:02/05/17 07:51
>>128
素直にアップデートしなよ

130 :デフォルトの名無しさん:02/05/17 08:44
>>126
むむ。ずっと使ってるけどバケたことは無いなー。
そのテキストをどっかにウプするかはっつけてくれよん。

131 :デフォルトの名無しさん:02/05/17 10:19

Delphi 6 動作環境
OS Windows 98/Me/2000/NT4(SP5)
CPU Intel Pentium/166(推奨Pentium II/400以上)
メモリ 64MB(推奨128MB)のメモリ
HDD 120 MB 以上の空き容量
その他 CD-ROM ドライブ
マウスなどのポインティングデバイス
とあるんですがWIN95やXPでは動かないのですか?


132 : :02/05/17 11:02
たとえばshowmessageとか命令文あるじゃないですか。
これって一覧表みたいなのはないんですか?
他にどんな命令ができるかが知りたいんです。
「初めてのプログラミング入門」って本買ったんだけど、
載ってないんです。

133 :デフォルトの名無しさん:02/05/17 11:20
>>132
オンラインヘルプ

134 :132:02/05/17 11:41
>>133
ヘルプもさがしてるんですが、見つからないんです。
一覧表みたいなのがのってるんでしょうか?

135 :デフォルトの名無しさん:02/05/17 11:51
>>134 VCL リファレンスヘルプというのがあります

136 :132:02/05/17 12:03
>>133 >>135
ありました!!
ありがとうございました。
さっそくどんなのがあるか研究してみます。

137 :デフォルトの名無しさん:02/05/17 12:14
ツールチップヘルプをAPIかなんかで意図的に表示させる方法ある?

138 :デフォルトの名無しさん:02/05/17 12:49
あるよ

139 :デフォルトの名無しさん:02/05/17 13:59
ポインタ型とかポインタ関連の使いどきが
よくわからんのですが、どんなとき使うんですか?

140 :デフォルトの名無しさん:02/05/17 14:07
気がむいたとき

141 :デフォルトの名無しさん:02/05/17 14:08
ええと、色んなコードを見て勉強しましょう >>139

確かに、DelphiはCに比べるとポインタを使わなければならない場面は少ないです。
ただ WaveOut系のAPI で音を合成して鳴らすとか VCLにない細かな事をやりたくなると必要になってきます

142 :デフォルトの名無しさん:02/05/17 14:34
>>138
具体的な方法を言ってみな、ほれ(プッ

>>139
1.ポインタを要求するAPIを使うとき
  文字列やレコード型(構造体)を扱うAPIに要求される

2.動的変数を扱うとき
  たとえば、TListItem(TListViewの各々の項目を表すオブジェクト)には、
  Data(Pointer型)というプロパティがあるが、これにListItemに関連があるデータのポインタを割り当てれば、
  データの管理がやりやすくなる。

3.ていうかポインタがないとどうしても実現できないアルゴリズムも結構あるよ(線形リストとか)

143 :139:02/05/17 14:53
>>140
わからないから気がむかない・・・
>>141>>142
サンクスコです。
使う場面は少ないけど、使わなきゃならない場面は出てくるのですね。
何故、直接じゃなくてポインタを介して操作しなければならないのか
未だよくわかってないですが、いろんなコード見て勉強してみます。




144 :デフォルトの名無しさん:02/05/17 14:55
>>142
 クラス型を使えば リストも見かけポインタ使わずに書けるよ


145 :デフォルトの名無しさん:02/05/17 15:03
ポインタ使わなくては使えないアルゴリズムなんてないでしょう。

146 :デフォルトの名無しさん:02/05/17 15:10
>>142
煽り方があまりに哀れだから教えてあげよう
THintWindow使うんだよ、わかった?
もっと詳しく書いたほうがいいのかな・・・

147 :デフォルトの名無しさん:02/05/17 15:58
?WM_NOTIFY(TTN_SHOW) を送るという話ではないのか???

THintWindowでヒントみたいなのを開きたいだけかい?

148 :Delモナーはどこへ消えた:02/05/17 16:14
なんかここ、回答者に向いてない人いないか?

質問者を舌先三寸でやり込めて得意げになってるの。

149 :デフォルトの名無しさん:02/05/17 16:15
(;´A`)ヤサシインダヨネ…

150 :デフォルトの名無しさん:02/05/17 16:23
いやだから >>137 のような質問だと具体的に何をどうしたいか判らないんだよ

自分のアプリの Application . Hintを強制的に表示したいのか?
 これは Windowsの提供するツールチップコントロールではない。
 それに似せた独自のもの

それとも、OpenDialogのようなDelphiの管理化にないヒントを無理やり表示させたいのか


151 :デフォルトの名無しさん:02/05/17 18:33
ところで、話は変わるが…
なんか、コード書いてて、動作がおかしい気がしたんで調べてみた。

Del5(Pro)で作ったアプリはそのままじゃXPで使っても
ボタンとかがXPのスタイルにならない。
で、コレ↓なんかでXPスタイルにする「*.manifest」を書いたんだが、
ttp://www.forest.impress.co.jp/article/2001/11/09/xpstyleapply.html

そーすると、ListBoxの一行に使える文字数が、かなり減ったぞ。
長いから画面には入り切らんが、Length()で調べたら、
本来、半角4000文字くらいまで扱えるはずが、半角1000文字あたりまで。
ファイルに保存してみたら、変な文字で終わってるし。

これ、他の環境でも再現するんか?
だとしたら今作ってるソフトには注意書きをせねばならんが…。


152 :デフォルトの名無しさん:02/05/17 18:36
>>151
ユニコードとかね。

そもそもListBOXに1000文字以上つっこむ(略

153 :128:02/05/17 18:40
>>129
 アップデートファイルですか?
バージョンアップですか?

154 :128:02/05/17 18:40
ageてしまった…。
スマソ

155 :デフォルトの名無しさん:02/05/17 19:06
delphi6のsampleにあるエクスプローラのようなフォルダ選択
コンポーネントをdelphi5で使えるようにする方法を教えてください

156 :デフォルトの名無しさん:02/05/17 19:09
>>155

Delphiで小さな実行ファイルを作ろう
http://pc.2ch.net/test/read.cgi/tech/1009080085/

このスレの35の関数を呼び出してみて下さい

157 :151:02/05/17 19:15
>>152 サンクス。
1000文字=1000バイトだったら、全角だと500文字になって、
ちょっと改行しないで書いたテキストを読み込んだら
越えちまうなあと思っていたんだ。
俺は大丈夫でも、ユーザーも開かないとは限らんし。

で、言われて改めて調べてみたら、確かにユニコードっぽいところはある。
半角だけで1000文字ちょいだが、半角全角入り乱れても1000文字ちょいだった。
ただ、ユニコードって確か2バイト文字だから、
本来4000書けるなら2000くらい書けていいと思うんだよなあ。
全角ばかりなら2000文字まで行くし…。

まあ、結局は気を付けて作るしかないってことか。
ユーザーにも一応注意して使うように書くよ。


158 :デフォルトの名無しさん:02/05/17 21:31
TListBoxのItemIndexプロパティが変更されたときに
発生するイベントがほしいので、コンポーネントを作った
のですが、実際に動かしてみると、うまく動きません。
どこが間違っているのでしょうか?

ItemIndexが変更されたときというのは、プログラムで
ListBox1.ItemIndex := 1;
とした場合と、ユーザーがクリックするなり、ListBoxに
フォーカスがあるときに矢印キーを押すなりしたときの
両方の場合です。

Delphi6 Personalです


以下ソースコードの抜粋です

TListBoxEx = class(TListBox)
private
FOnChangeItemIndex: TNotifyEvent;
protected
procedure SetItemIndex(const Value: Integer); override;
published
property OnChangeItemIndex: TNotifyEvent read FOnChangeItemIndex write FOnChangeItemIndex;
end;


procedure TListBoxEx.SetItemIndex(const Value: Integer);
begin
inherited;
OnChangeItemIndex(Self);
end;



159 :デフォルトの名無しさん:02/05/17 22:41
すみません。インデント忘れました。

TListBoxEx = class(TListBox)
 private
  FOnChangeItemIndex: TNotifyEvent;
 protected
  procedure SetItemIndex(const Value: Integer); override;
 published
  property OnChangeItemIndex: TNotifyEvent read FOnChangeItemIndex write FOnChangeItemIndex;
end;


procedure TListBoxEx.SetItemIndex(const Value: Integer);
begin
 inherited;
 OnChangeItemIndex(Self);
end;


160 :デフォルトの名無しさん:02/05/17 23:07
>>158
チミのプログラムには欠陥が2つある。

一つは、リストボックスの選択項目の変更を補足し切れていないこと。
SetItemIndexをオーバーライドしても、プログラム内部からItemIndexをいじったときにしか拾えない。
最低でもWM_COMMANDとLB_SETCURSELというメッセージを拾わなければならないはず。

もう一つはOnChangeItemIndexイベントに手続きが割り当てられていない時を考慮していない
実行すると100%エラー

しかし、その目的のためだけなら、目的の処理を記述した関数を作って、
OnClickイベント内と、ItemIndexを変更するコードの直後に
その処理関数を呼び出た方が手間食わずに良いと思われるが。


まあ、とりえあえずヘルプ読んで出直しなさいってこった

161 :デフォルトの名無しさん:02/05/18 00:29
こった

162 :デフォルトの名無しさん:02/05/18 01:02
>>159

type
TListBoxEx = class(TListBox)
private
FOnChangeItemIndex: TNotifyEvent;
public
procedure CNCommand(var Msg:TWMCommand);message CN_COMMAND;
procedure LBSetCaretIndex(var Msg:TMessage);message LB_SETCARETINDEX;
procedure LBSetCurSel(var Msg:TMessage);message LB_SETCURSEL;
published
property OnChangeItemIndex: TNotifyEvent read FOnChangeItemIndex write FOnChangeItemIndex;
end;


{ TListBoxEx }

procedure TListBoxEx.CNCommand(var Msg: TWMCommand);
begin
inherited;
case Msg.NotifyCode of
LBN_SELCHANGE:
if Assigned(FOnChangeItemIndex) then FOnChangeItemIndex(self);
end;
end;

procedure TListBoxEx.LBSetCaretIndex(var Msg: TMessage);
begin
inherited;
if Assigned(FOnChangeItemIndex) then FOnChangeItemIndex(self);
end;

procedure TListBoxEx.LBSetCurSel(var Msg: TMessage);
begin
inherited;
if Assigned(FOnChangeItemIndex) then FOnChangeItemIndex(self);
end;


163 :163:02/05/18 10:06
s := 'ABCDEFG';
SetLength(s, Length(s)-1);
とやった場合、自動的にsの末尾の文字はメモリ上から解放されるのでしょうか?

164 :デフォルトの名無しさん:02/05/18 10:11
>>163 解放されるより#0で埋められると思います

165 :163:02/05/18 10:16
>>164
 ということは、メモリ上の値は
ABCDEF#0#0になるということですか?

166 :デフォルトの名無しさん:02/05/18 10:18
>>165
 場合によっては末尾の#0は解放されるかもしれません されないかもしれません

167 :デフォルトの名無しさん:02/05/18 15:27
delphiXってdelphi6では使えないのね...ショック



168 :delphi6personal:02/05/18 19:31
VCL使いまくりなんでFormの上がごちゃごちゃになってます。
新しいFormを作った方がいいんでしょうか?
ただ、一つ増やすだけで実行ファイルの大きさがほぼ2倍に…。
やはり動作が軽い方がうれしいんですが。

169 :デフォルトの名無しさん:02/05/18 19:34
  |-□□-| フムフム
   \ - /

170 :デフォルトの名無しさん:02/05/18 19:46
>>168
男ならコンソール。

171 :デフォルトの名無しさん:02/05/18 19:58
UPXで、あっしく

172 :デフォルトの名無しさん:02/05/18 20:13
あんまり沢山 WinContrl載せると Win98とかリソース不足で困った事になるよ

173 :デフォルトの名無しさん:02/05/18 20:51
>>168
>一つ増やすだけで実行ファイルの大きさがほぼ2倍に…。

こういうことはありえません。



174 :デフォルトの名無しさん:02/05/18 20:51
音量コントロールのダイアログをプログラムから開くにはどうしたらいいですか?


175 :デフォルトの名無しさん:02/05/18 20:53
>>168
>VCL使いまくりなんでFormの上がごちゃごちゃになってます。

VCL は Delphi ひとつにひとつしかありません。


176 :デフォルトの名無しさん:02/05/18 20:54
>171
>UPXで、あっしく

これをすると何が楽しいのでしょう?


177 :デフォルトの名無しさん:02/05/18 20:58
>>163
>s := 'ABCDEFG';
>SetLength(s, Length(s)-1);
>とやった場合、自動的にsの末尾の文字はメモリ上から解放されるのでしょうか?

おもしろい質問だね。「そうじゃない」という答えがあったらどうするつもり
なんだろうね。

178 :デフォルトの名無しさん:02/05/18 21:20
質問です。お願いします。

本についてるサンプルコードの「書込み禁止」を解除したいのですが、できません。
右クリックで出るヤツのチェックをはずしてもダメでした。
どのようにすればいいですか?

179 :デフォルトの名無しさん:02/05/18 21:23
>>178
それ以上の方法はない。
CD-ROMのファイルとか言ったら殴る。

180 :デフォルトの名無しさん:02/05/18 21:25
 AssignFile(f, 'C:\test.tmp');
Reset(f);
for i := 0 to c do
BlockWrite(f, Data[i]);
という感じにしたとき、Closeするまでファイルに書き込まれる全データは
メモリ上に確保されているのですか?

181 :この話題は散々既出だが:02/05/18 21:26
>>176
圧縮率とかによって違うかも知れないが、1MB程に膨らんだアプリが
やはりモノ次第ではあるが約300K程度に縮んで、
アプリの起動が速くなることがある。

あとネットワークでプログラムを配布したいとき、
FD等の低速少容量メディアで常用したいときも、
結構(゚д゚)ウマーになれる。

要は目的次第で使うか使わないか決めればいいだけ。
馬鹿の一つ覚えのように全部のプログラムにやる必要はない。

182 :デフォルトの名無しさん:02/05/18 21:45
>>179
、、、なんというか、、申し訳ありません、、。できました。

>右クリックで出るヤツのチェックをはずしても
エディタ上でこれをやってました。(コンパイルもセーブも不可)

Delの外からフォルダ内の全部のヤツの「読み取り専用」のチェックをはずしたらできました。

約1日のどツボでした、、。ありがとうございました。

183 :デフォルトの名無しさん:02/05/18 21:47
>>174
直接APIを叩くか sndvol32.exe を実行。
/R オプションとか付けて実行すると録音ボリュームが出せるよん。

184 :168:02/05/18 21:56
で、Formは1つがいいのですか?2つがいいのですか?

185 :デフォルトの名無しさん:02/05/18 21:58
>184
ひとりより、ふたりがいい♪
 ふたりより、さんにんがいい〜♪

186 :174:02/05/18 22:07
>183
サンクス!助かりました。



187 :デフォルトの名無しさん:02/05/18 22:09
>>185
サンバルカンかよ!!

188 :デフォルトの名無しさん:02/05/18 22:09
>>185
Hですか?

189 :デフォルトの名無しさん:02/05/18 22:20
>>187 正解
>>188 ひとしくん人形没収

190 :デフォルトの名無しさん:02/05/18 22:54
1変数のマイナス演算子と2変数の減法演算子との異なる点を挙げよ。
っていう問題を教えてください


191 :デフォルトの名無しさん:02/05/18 22:56
>>190
いい加減にしな。

192 :168:02/05/18 22:58
いや、ネタではなく
>>184

193 :デフォルトの名無しさん:02/05/18 23:00
>>192
一重積んでは母のため・・・
 二重積んでは父のため・・・

194 :デフォルトの名無しさん:02/05/18 23:07
>>168
場合によりけり。これだけの情報ではなんともいえん。
ただ2つにするなら、2つ目は自動作成の対象から外しとけよ。

195 :168:02/05/18 23:10
>194
thx!

196 :デフォルトの名無しさん:02/05/18 23:36
存在するファイルのサイズを調べるにはどうしたらよいでしょうか?
FileSizeを使用すると、開かなければならないし、テキストファイルはできないみたいだし。

197 :デフォルトの名無しさん:02/05/18 23:39
>>196
APIにないか?

198 :196:02/05/18 23:42
>>197
自己レス
解決しました。
TSearchFile.Sizeで取得できました。

199 :デフォルトの名無しさん:02/05/19 00:27
for文の繰り返しの中でtry ...except でエラー処理を行ってるのですが、
繰り返し中にエラーが出た場合、エラー処理後次の繰り返しの処理を
行ってほしいのですがどうすればいいでしょうか?
try
for i:=0 to count-1 do
listview.Items.Item[i].SubItems.Add(strName[i]);
except
on EOLeException do begin
lstFile.Items.Item[i].SubItems.Add('エラー');
statusbar.Panels[0].Text:='エラーです');
//ここで次の繰り返しに処理が戻ってほしいです
end
end;

200 :デフォルトの名無しさん:02/05/19 00:30
tryの位置が間違ってない?

201 :デフォルトの名無しさん:02/05/19 00:30
>>199
for i:=0 to count-1 do
 try
  listview.Items.Item[i].SubItems.Add(strName[i]);
 except
  on EOLeException do begin
   lstFile.Items.Item[i].SubItems.Add('エラー');
   statusbar.Panels[0].Text:='エラーです');
  end
 end

202 :デフォルトの名無しさん:02/05/19 00:31
>>199
forの中にtry入れれば動きそうな・・・。

203 :デフォルトの名無しさん:02/05/19 00:32
>>199
何故そのような複雑怪奇なブロック構造…はどうでもいいが、

単にforループの中にtry〜exceptを記述したらだめなの?


204 :デフォルトの名無しさん:02/05/19 00:34
二分の間に4つもレスが付くとは…

205 :デフォルトの名無しさん:02/05/19 00:38
逆四面楚歌です。

206 :真人間:02/05/19 00:42
あの、でるふぁいは結構覚えやすくて
いいと聞いたんでこれからフリー版で
始めてみようかなとおもっとるんですが。

ちょっとした簡単なソフトを作成するぐらい
だとして、開発環境にはデルファイ本体含めてどれくらいの
容量を必要としますか?

HDDが残り6Gなので心配ですです。
あと、でるふぁいをインストールしたことで
なにかしら問題がおこったり、アンインストールが
大変だったりしませんか?
よろしくお願いします。




207 :デフォルトの名無しさん:02/05/19 00:43
>>206
ネタですよね。

208 :デフォルトの名無しさん:02/05/19 00:44
>>206
ダウンロードページにも行かないで真人間とか言われても困る。
それくらいの実験も出来ないで〃

209 :デフォルトの名無しさん:02/05/19 00:48
VBと比べて起動がかなり重いとだけ言っておいてやろう

210 :デフォルトの名無しさん:02/05/19 00:49
>>209
そう言えば女神様の顔結構長時間見てた記憶が・・・。
BCBよりは有機質的で好きだけど。

起動後はさくさくだけどね。

211 :デフォルトの名無しさん:02/05/19 00:50
VBと比べてもコンパイルがかなり速いとだけ言っておいてやろう

212 :デフォルトの名無しさん:02/05/19 00:51
>>211
そう言えばVB、コンパイル中のプログレス結構長時間見てた記憶が・・・。
VCよりは早くて好きだけど。

コンパイル後はバグバグだけどね。

213 :デフォルトの名無しさん:02/05/19 00:52
Win2K RC2 にサービスパックあててる場合、
インストールできないという罠。

214 :デフォルトの名無しさん:02/05/19 00:53
しかし、そんな奴はめったにいない罠

215 :デフォルトの名無しさん:02/05/19 00:54
>>213
つぅか未だにRC使ってるってタイーホ。

216 :デフォルトの名無しさん:02/05/19 00:56
RCが分からなくってとりあえず笑ってる >>206

217 :デフォルトの名無しさん:02/05/19 00:56
ListBoxのOnMeasureItemでHeightに256以上を入れると
表示がおかしくなるのですが(256を越えると0に戻るっぽい)
1つのセル(?)の高さを256ピクセル以上にする方法は
無いもんでしょうか?


218 :真人間:02/05/19 00:57
みなさんどうも。
コンパイルが早いとかはもう調べてありますし、
ボーランドのサイトにもいって落としそうにもなりました。
聞きたいのは、でるふぁいの本体のサイズとかじゃなくて
なにかしら小規模なアプリを作成出来るような環境にするには
どれくらいのスペースが必要ですかということなんでし。

本体展開すればそれであとは必要ないんでしょか?

ねたじゃないでう。

219 :デフォルトの名無しさん:02/05/19 00:57
Windowsの制限じゃないの?
DrawGridかなんか使うしかないんかな。

220 :デフォルトの名無しさん:02/05/19 00:59
>>218
6GBありゃ十分、
開発するシステムの規模によるが、小規模アプリなら
ひとつで bin / src あわせても 10MB ぐらいじゃないの。

221 :デフォルトの名無しさん:02/05/19 01:00
6G空いていて何が心配なんだろう…
CD3枚入れたとしても半分も埋まらないのに…

222 :デフォルトの名無しさん:02/05/19 01:00
>>220
Delphiで10MBは中規模かと。
日曜プログラマとしては。

223 :デフォルトの名無しさん:02/05/19 01:01
10MBは、なかなか行かんなー

224 :デフォルトの名無しさん:02/05/19 01:03
営業にはふっかけるタイプなんで。

225 :真人間:02/05/19 01:08
そうですか。つまり、デルファイ本体以外には特に必要ないということですね。
いやー、mpgは容量食うんで、いま6Gでもそのうちなくなっちまうんじゃ
ないかと。
そろそろCDRに焼きたいんですが、自分家にはないもんでなかなか・・・。
どうもでした。
まずはHSPから始めてみようと思います。

226 :デフォルトの名無しさん:02/05/19 01:09
素晴らしいオチだ。

227 :デフォルトの名無しさん:02/05/19 01:10
>>225
HNからしてネタ

228 :デフォルトの名無しさん:02/05/19 01:11
>>225
どうでもいいけどあなたは誤った道を選択したと言っておく。
あくまで俺の価値観だから気にしなくても良いよ。

229 :デフォルトの名無しさん:02/05/19 01:13
あの、真人間は結構覚えが早くて
いいヤツと聞いたんでこれからメルトモとして
付き合い始めてみようかなとおもっとるんですが。

230 :真人間:02/05/19 01:18
ネタでオブラートしたマジな質問でした。
本当にアリガトウございました。独女板にかえります。


231 :デフォルトの名無しさん:02/05/19 01:20
お花畑住人によろしくつたえといて。

232 :デフォルトの名無しさん:02/05/19 01:20
いっぱい釣れた

233 :デフォルトの名無しさん:02/05/19 01:21
キャッチ&リリースでお願いします

234 :デフォルトの名無しさん:02/05/19 01:24
あの子のハートをキャッチ&リリース

235 :デフォルトの名無しさん:02/05/19 01:26
あの子のハートをアロック&デリート

236 :デフォルト:02/05/19 01:36
あの子のハートをトライ&キャッチ

237 :デフォルトの名無しさん:02/05/19 01:37
つまんない人間だね。

238 :199:02/05/19 01:38
200さん201さん202さん203さん 遅くなりましたがレス有難うございます
エラーが出たらtryから抜けるのでfor文の中に入れればいいのですね
ひとつ賢くなりました。



239 :デフォルトの名無しさん:02/05/19 01:39
あの子のハートをK&R

240 :デフォルトの名無しさん:02/05/19 01:39
オマエモナー

241 :デフォルトの名無しさん:02/05/19 01:40
人間じゃなかったよ

242 :デフォルトの名無しさん:02/05/19 01:41
あーあ

243 :デフォルトの名無しさん:02/05/19 03:40
imagingのimgEditのscrollpositionについて教えてください
画像を表示させて画像をマウスで選択したら、選択したところを拡大
するようにしたいので、まずmousedownイベント時にX座標とY座標を
記憶させ、mouseupイベントでマウスボタンを離した場所のX,Y座標から
選択範囲を計算させintX:=abs(startX-X);intY:=abs(startY-Y);
perX:=imgEdit.Width / intX;perY:=imgEdit.Height / intY;
imgEdit.zoom:=(min(perX,perY))*100;
というふうに拡大率を出し、(startX,startY:選択開始位置)
imgEdit.ScrollPositionX:=startX;imgEdit.ScrollPositionY:=startY;
と画像を表示する場所を指定してあげても指定した位置に表示されません
どうかお願いします

244 :デフォルトの名無しさん:02/05/19 03:45
=== [ ▼PR ] =========================================================
獲得ページにて毎日ポイント獲得!広告すると毎日のポイント増えるかも!?
http://www.fkfk.net/PrPointMail/PointMail.ASP?WCI=Home&WCE=125176
======================================================== [ ▲PR ] ====

銭欲しいか?

245 :デフォルトの名無しさん:02/05/19 04:35
( ゚д゚)ホスィです

246 :デフォルトの名無しさん:02/05/19 10:37
>>167
過去ログぐらいみやがれよ、散々がいしゅつだが使えます。
ちっとはweb検索しやがっていただきたく思う所存にございます。

247 :246:02/05/19 10:39
これだけだとアレなんで
http://turbo.gamedev.net/delphixd6.asp
ホレ。

248 :217:02/05/19 12:30
>>219
レスありがとうございます。
Gridとは盲点でした。
ちょっとやってみたらGridなら高さ1000にしても問題無いみたいです。

249 :デフォルトの名無しさん:02/05/19 12:48
「俺が作ったコンポーネントを2ちゃん住人が試し斬りするスレ」
を作っていい?

いや、別スレ立ててまでやる必要はないとは思うが、
こういう事やっていいスレはどこかにないか?と。

250 :デフォルトの名無しさん:02/05/19 15:04
Delスレ立てすぎると風当たりが強くなるぜ。
とりあえず、相談室あたりでネタが続くかどうかやってみてからでも遅くないのでは?

251 :デフォルトの名無しさん:02/05/19 16:45
D6にて、動的にフレームを生成してフォームに貼り付けたいのですが、
フォームが閉じられた時にparentで指定したオブジェクトが開放されると
動的に生成したオブジェクトも開放されるのでしょうか?

それとも FormのDestroyあたりで、明示的に開放しないと駄目でしょうか?

こんな感じでやってます、

procedure TForm1.FormCreate(Sender: TObject);
var
i:Integer;
begin
  for i:=1 to 99 do
  begin
    Frame[i]:=TFrameDenBody.Create(Self);
    Frame[i].Parent:=Self.ScrollBox1; //<---フォーム上のScrollBoxの上に作成
    Frame[i].Visible:=True;
    Frame[i].Name:='iFrame'+IntToStr(i);
    Frame[i].AutoSize:=True;
    Frame[i].Top:=(Frame[i].Height*(i-1));
 end;

あと、実際開放されているか否かを確認する方法ってパフォーマンス
モニタで確認するのでしょうか?それとも何か良いツールがありますか?
あれば教えて下さい。


252 :デフォルトの名無しさん:02/05/19 16:52
procedure TForm1.FormCreate(Sender: TObject);
var
i:Integer;
begin
  for i:=1 to 99 do
  begin
    Frame[i]:=TFrameDenBody.Create(Self);
なんでこんなのをうつと
プログラムになって
pcがうごくのかよくわからん

253 :251:02/05/19 16:56
>>252
すみません、よく理解できないのですが、
Create(Application)じゃないとって意味でしょうか?

254 :デフォルトの名無しさん:02/05/19 17:05
1、Parentを指定すれば、もちろんその親が解放される時に一緒に解放される

2、解放されたかどうかを見たいなら、

type TFrameDenBodyExt=class(TFrameDenBody)
public
destructor Destroy; override;
end;

として destructor TFrameDenBodyExt.Destroy; でログに吐いてみたら?

例えば
destructor TFrameDenBodyExt.Destroy;
begin
AllocConsole; writeln(Name);
inherited;
endl;
とか

もちろん 作成は
 Frame[i]:=TFrameDenBodyEx.Create(Self);

255 :Delフサギコ ◆zE1iiRdQ :02/05/19 17:18
>    Frame[i]:=TFrameDenBody.Create(Self);
>    Frame[i].Parent:=Self.ScrollBox1; //<---フォーム上のScrollBoxの上に作成

FrameのOwnerはSelf=Form1
FrameのParentはScrollBox1

Ownerが破棄されるときには一緒に破棄されるけど
Parentが破棄されても一緒には破棄されんかったと思う。
Parentが破棄されると消えちゃうけど。

 ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄
   ∧,,∧    
  ミ,, ゚Д゚彡 
   〃つ旦O
 〜ミ,,[ ̄ ̄ ̄.]
      ̄ ̄ ̄

256 :251:02/05/19 17:21
>>254
解放の確認方法まで教えていただき、ありがとうございました。

257 :251:02/05/19 17:24
>>255
つまり、Create(Self.ScrollBox1)の方がいいって事でしょうか?

258 :デフォルトの名無しさん:02/05/19 17:30
>>257
折れは Frame[i]:=TFrameDenBody.Create(Self);でいいと思うよ。
但し、初期化をサボってOwnerを破棄して再作成する事で初期化するってなら、scrollbox1を指定した方が楽かな。


259 :デフォルトの名無しさん:02/05/19 17:33
>>258
なるほど、Delフサギコ さんありがとう御座いました。

260 :258 :02/05/19 17:44
>>259 折れはフサギ子じゃありません


261 :Delフサギコ ◆zE1iiRdQ :02/05/19 17:46
うそを教えてしまった。Parentでも破棄されるのね。

   ∧,,∧ 
  ミ゚Д゚,,彡    .┳  そういう時は
  ミ "⊃ミ      ┃    
 〜ミ " ミ      ┃
   ミ_ミ`,ミ   (◎) ̄))
   ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

          ∧,,∧
         ミ,,゚Д゚彡   ジンジャーで・・・
         ミ "⊃┳⊃         
        〜ミ " ┃ミ         
          ミ  ミ┃ミ
          (◎) ̄))
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  
            -=   ∧,,∧
          -=≡ ミ,,゚Д゚彡  逃亡や!
          -=  ミ "⊃┯つ
          -=≡〜ミ "//ミ 
           -=≡ミ_ミ'/,ミ          
            -=(◎) ̄))
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

262 :デフォルトの名無しさん:02/05/19 18:06
function Tsfiform1.GetFolderIcon: HICON;
var
sfi: TSHFileInfo;
hi: THandle;
begin
hi := SHGetFileInfo('',
FILE_ATTRIBUTE_DIRECTORY,
sfi, SizeOf(sfi),
SHGFI_SMALLICON or SHGFI_SYSICONINDEX or
SHGFI_USEFILEATTRIBUTES);
Result := ImageList_GetIcon(hi, sfi.iIcon, 0);
end;

と、MLからソースを探し出して使おうとお持っているのですが
ImageList_GetIconメソッドがそのままだと未識別とでてしまいます
何かapiが必要なのでしょうか?

263 :デフォルトの名無しさん:02/05/19 18:14
uses CommCtrl;

264 :デフォルトの名無しさん:02/05/19 18:15
for文で、カウンタが奇数の時だけ実行できるように出来ない?

for Int := 1 to 50 do begin
if Odd(Int) = False then continue;
  〜
end;

または

for Int := 1 to 50 do
if Odd(Int) = True then begin
  〜
end;


ってやるしかない?できるだけ高速な処理を望みたいのだが。

265 :デフォルトの名無しさん:02/05/19 18:16
>>264
Int(こんな変数使うなよぅ) * 2 + 1。

266 :デフォルトの名無しさん:02/05/19 18:18
>>263
サンキューです

267 :デフォルトの名無しさん:02/05/19 18:19
>>265
よく分かんないんですけど、
for Int := 1 to Int * 2 + 1 ですか?

268 :デフォルトの名無しさん:02/05/19 18:20
Odd()は関数呼び出しじゃないのでそれほど時間はかからない筈、が
カウンタを自分でインクリメントしてwhileでまわすのが多分速い。

269 :デフォルトの名無しさん:02/05/19 18:22
>>267
Int を変数名にするのは C系言語の経験のあるプログラマから見ると
「凄く気持ち悪い」ということでしょ

* 2 + 1 の意味までは考えてないけど

270 :デフォルトの名無しさん:02/05/19 18:22
>>268

Int := 1;
while Int = 50 do begin
Int := Int + 2;

  〜

end;

っていうことですね。

271 :デフォルトの名無しさん:02/05/19 18:23
>>269
気持ち悪いんですか。なるほど。

272 :デフォルトの名無しさん:02/05/19 18:26
>>270
whileの条件が変だけどそんな感じです。ただInc(Int, 2)の方が速いかも。

273 :デフォルトの名無しさん:02/05/19 18:30
>>270
そのままだと
while文の中は1度も実行されないね

多分 while Int<50 の方がご希望通り

274 :デフォルトの名無しさん:02/05/19 18:32
for i := 0 to count div 2 do
begin
a[i * 2 + 1] = i;
end;

x * 2 + 1は絶対奇数。授業でやらんかったか?

275 :デフォルトの名無しさん:02/05/19 19:37
>264
自問自答?

276 :275:02/05/19 19:40
すまん、途中までしか見えてなかったんで変なレスつけてもうた。

277 :(間違っていたら言え):02/05/19 22:05
for i  := 1 to 50 do
begin
    if Not Odd(I) then continue;
    TestProc;
end;


i:=1;
while i <= 50 do
begin
    Inc(i,2);
    TestProc;
end;

これで比較してみたが。動作速度はほとんど変わらず。(0.3%位後者の方が早いが…)


278 :デフォルトの名無しさん:02/05/19 22:34
>>277
inc(i,2)
コンパイルしてCPUウィンドウのアセンブラ見ると実は
i := i + 2;
になってる。

試しに
inc(i);
inc(i);
にしてみたらこっちの方が極々僅かだが速かった。

漏れの試したCPUはClassic Athlon 800MHz。
試しに後者のInc(i,2);を書き換えて再テストしてみて。


って、ここまでして最適化しないと逝けない事ってそうそうないと思うが…

279 :277:02/05/19 23:30
>>278
試したみたけど確かに少し早い。
ついでにasmでも試したが違いはほとんどわからん。


280 :デフォルトの名無しさん:02/05/20 01:22
>>277 :(間違っていたら言え)

i が3から始まってるよー(whileの方)

> (0.3%位後者の方が早いが…)

1回抜けてる分を考慮すると、後者のほうが遅いのでは?




281 :デフォルトの名無しさん:02/05/20 01:46
頼むから1000分の数倍早いプログラムより見やすいソースを
優先してくれ・・・(;´д`)

282 :デフォルトの名無しさん:02/05/20 07:28
近代的CPUでは実行速度はメモリアクセスの回数が主要因という事をお忘れなく

283 :デフォルトの名無しさん:02/05/20 08:50
>>281
まぁそーだね、最速だがアクロバなソースより、10秒遅くても読みやすいソースの方が
数十倍優れていると思われる。(バグを防ぐって意味でも)

284 :デフォルトの名無しさん:02/05/20 08:58
>>281>>283
実験中にステレオタイプな常識持ち出すあなた方はなんなんだ?


285 :ステレオ3:02/05/20 09:20
けっ プログラムなんて仕様通り動けばいいんだよ!

286 :デフォルトの名無しさん:02/05/20 09:53
フォームのないユニットでデータベースの更新処理をするにはどうしたらいいのでしょう。
BDEとかフォームがないから貼れないのですが、コードのみで記述することになる
のでしょうか?やり方を教えていただけないでしょうか。

287 :デフォルトの名無しさん:02/05/20 09:55
>>286
コンポーネントも所詮はクラス。OwnerをnilにしてCreateして下さい。

288 :デフォルトの名無しさん:02/05/20 10:48
データモジュールに貼り付けてください。

289 :デフォルトの名無しさん:02/05/20 11:30
>>287
>>288
の方ありがとうございました。
データモジュールってこのような時に使うんですね。

290 :デフォルトの名無しさん:02/05/20 17:38
Screen.ActiveForm.Componentsをループさせて画面上の項目を自動的にクリアする関数を作成して
使っていますが、Frameを使っているフォームは上手く機能しません、ループの中を追って見てもFream自体は
取得できるのですが、その中身までは出てきません。

 ソースから部分的に抜き出すとこんな感じです
   ↓
 var
   i:integer;
   wCompo:TComponent;
 begin
   for i:=0 to Screen.ActiveForm.ComponentCount -1 do
   begin
     wCompo:=Screen.ActiveForm.Components[i];
     if (wCompo is TEdit) then
       (wCompo as TEdit).Text:='';
   end;
 end;

この方法だとFream上のコンポーネントを取得する事はできないのでしょうか?
それとも、他に方法があるのでしょうか?教えて下さい。

291 :デフォルトの名無しさん:02/05/20 17:57
>>290
Fream1.Edit1.TEXT:='';
Fream1.Edit2.TEXT:='';
Fream1.Edit3.TEXT:='';
Fream1.Edit4.TEXT:='';
Fream2.Edit1.TEXT:='';
Fream2.Edit2.TEXT:='';
Fream2.Edit3.TEXT:='';
Fream2.Edit4.TEXT:='';
とクリアしてはいかがでしょうか?
私はそのようにしておりますが、
今まで問題は発生しておりません。
時としてプログラムとは柔軟に
コーディングを行うことも必要ですよ。

292 :290:02/05/20 18:02
290にて FrameをFreamと間違っている箇所がありました。訂正しておきます。

>>291
私のからコピペされたのだと思いますが、Fream->Frameですね。

> 時としてプログラムとは柔軟・・・
参考になりました・・・・。はい。

293 :デフォルトの名無しさん:02/05/20 18:17
「Delphiオブジェクト指向プログラミング 」を今でも通販で買えるサイトは無いでしょうか?
amazonもcbook24も在庫がありませんでした

294 :デフォルトの名無しさん:02/05/20 18:24
>>291
( ´,_ゝ`)プッ
保守性最悪なコーディングだな

295 :デフォルトの名無しさん:02/05/20 18:27
>>291
問題が発生してないって、それで問題が発生したら怖いだろ
オマエそんなコーディング書いてよく偉そうにできるな、その方が謎だよ

296 :295:02/05/20 18:30
だんだんムカついてきた(藁
時には柔軟?オマエのそれの何処が柔軟なんだよボケ!ガチガチじゃねーか

297 :デフォルトの名無しさん:02/05/20 18:33
>>290
今試してみたけど、確かに貴方の書いた通りですねフレーム上のコンポが取得できないですね
フレーム自体がフォームと同じ扱いだからでは?つまりActiceFormじゃないって意味です

298 :デフォルトの名無しさん:02/05/20 18:34
ああ、やっぱり他の人も思ってたんだ。
>>291のは参考にするべきじゃない・・・。

>>292 ComponentCountやComponentsはFormだけが持ってるプロパティじゃないから、
    再帰関数作ればコンポーネントの追加・削除に左右されないコード書けるよ。

299 :デフォルトの名無しさん:02/05/20 18:35
配列作って代入しとくんだろうな〜

300 :デフォルトの名無しさん:02/05/20 18:42
>>295-296
量にもよるね
2つ3つで一般化してたら、そっちの方がビョーキ気味だと思うし

301 :デフォルトの名無しさん:02/05/20 18:43
if Components[i] is TFrame then
MyClearFrame(Components[i] as TFrame);
じゃ駄目?

302 :デフォルトの名無しさん:02/05/20 18:56
TlistItemのチェックボックスについて質問です
ListViewで選択されてる項目にチェックを入れたい場合、
if ListView.Items[intImgIndex].Checked=false then
 ListView.Items[lstFile.Selected.Index].Checked:=true
else
 ListView.Items[lstFile.Selected.Index].Checked:=false;
上文のようにしたらいいと思ったのですが、さっぱり上手く動きません
どこが悪いか指摘ください

303 :302:02/05/20 18:58
上文↓の間違いです
if ListView.Items[ListView.Selected.Index].Checked=false then
 ListView.Items[ListView.Selected.Index].Checked:=true
else
 ListView.Items[ListView.Selected.Index].Checked:=false;

304 :デフォルトの名無しさん:02/05/20 18:58
>どこが悪いか指摘ください
ハンガリアン

305 :295:02/05/20 19:04
>>300
そりゃ、当然量にもよるけど、今回の場合は、最初の質問からして画面上のEditなりを
全てクリアしたいってことでしょ、その答えがあれじゃ話にならんとおもたのですよ

しかも、内容的に質問した側より答えた側のレベルの方が低そうな上に、なにやら、
偉そうに「時として」なんて書いてるし、妙に不快なツボに入った、俺だけかな?(藁)

306 :デフォルトの名無しさん:02/05/20 19:12
まあまあ、答えは再帰で一発OK。ダラダラ代入文を書くなゴルァ!!ということで・・・

>>302 ハンガリアン

307 :デフォルトの名無しさん:02/05/20 19:16
>>303
 ListView.Items[ListView.Selected.Index].Checked:= not ListView.Items[ListView.Selected.Index].Checked;

とかはダメ?


308 :デフォルトの名無しさん:02/05/20 19:16
>>302 ハンガリアソ

309 :290:02/05/20 19:18
お世話になりました、出来ました!

 こんな感じで再帰的に処理することにしました。
  ↓
 procedure MyClear(pControl:TWinControl);
 var
   i:integer;
   wCompo:TComponent;
 begin
   for i:=0 to pControl.ComponentCount - 1 do
   begin
     wCompo:=pControl.Components[i];

     if (wCompo is TFrame) then
       MyClear(wCompo as TFrame);

     if (wCompo is TEdit) then
       (wCompo as TEdit).Text:='';
   end;
 
 end;

今までのScreen.ActiveFormで作っていた物にoverloadして差し替える事にします。
本当にありがとう御座いました。

310 :302:02/05/20 19:44
>>307
駄目でした、どうもリストにある項目をマウスや矢印で選択すると
checkboxにcheckがあるかどうか関係なしにcheckedプロパティが
trueのまま固定されてるみたいです
ふと思ったのですがListView.Items[ListView.Selected.Index].Checkedは
ListView.Selected.Checkedと同じみたいですね

311 :デフォルトの名無しさん:02/05/20 19:46
>>309
>if (wCompo is TFrame) then
>  MyClear(wCompo as TFrame);

それだとTPanelとか使ってるときだめだろ。
折角だから、TFrameじゃなくTWinControlにしとけ。

312 :デフォルトの名無しさん:02/05/20 19:58
ControlCountとControlsのペアじゃないからTPanelがあっても大丈夫だと思う。でも、

引数をTComponentで取って、ComponentCountとComponentsのペアを使う
引数をTWinControlで取って、ControlCountとControlsのペアを使う

のどちらかにしたほうがいいと思う。

313 :デフォルトの名無しさん:02/05/20 20:06
Components→同じOwnerを持つコンポーネントでループ
Controls→同じParentを持つコンポーネントでループ
かな?

314 :302:02/05/20 20:41
申し訳ない解決しました
スペースキーでチェックのon/offをしようとしてたのですが、どうも
ListViewはもともとスペースでon/offが出来るみたいでした..


315 :デフォルトの名無しさん:02/05/20 23:58
質問です。
TStringsのGetやSetとは、一体何に使うのでしょうか?
TStringsをpublishedプロパティに持つコンポーネントを作成しているのですが、
参考にTComboBoxStringsなどのソースを当たってみたところ、
GetやSetが出てきて、これが何なのかがよく分かりませんでした。
Delphi5のヘルプにも無いみたいです。
宜しくお願いします。

316 :デフォルトの名無しさん:02/05/21 00:03
>>315
ソース嫁や。

317 :デフォルトの名無しさん:02/05/21 00:03
>>315
プロパティへのアクセスメソッド。
C#にもある概念なのでマスターしておくこと。

str :TStrings;
a :string;

str := TStrings.Create();//(抽象クラスなので本来は不可能)

str[0] := "monor"; //= str.Set("monor",0);
a = str[1];//= a := str.Get(1);

318 :デフォルトの名無しさん:02/05/21 00:07
>C#にもある概念なので
ハァ?

319 :デフォルトの名無しさん:02/05/21 00:09
>>318
public new Kakiko this[int Index]
{
get
{
return (Kakiko)base[Index];
}
}

320 :デフォルトの名無しさん:02/05/21 00:10
>>318
ソース読めよ。よりはましと言うことで。
はい、次の方。

321 :デフォルトの名無しさん:02/05/21 00:11
>>315
ソースよりもヘルプ読むべきだと提案してみる。
[クラスとオブジェクト]の項目を角まで嫁

>>317
C#の事をDelスレで話すと荒れるからやめようや。

322 :デフォルトの名無しさん:02/05/21 00:12
>>319
場違いなんだよアフォ?

323 :デフォルトの名無しさん:02/05/21 00:13
>>322
まぁ、お前は一生ソースでも読んでろってこった。

324 :デフォルトの名無しさん:02/05/21 00:20
早速アフォが2匹ほど…鬱出汁脳

325 :315:02/05/21 00:22
>>317
済みません、単純に見逃してました。
GetStringsやSetStringsという名前ではなかったもので。
皆さん有難うございます。


326 :デフォルトの名無しさん:02/05/21 00:24
コンボボックス(Style=csDropDown)は、
ドロップダウン項目を選択すると、その内容がエディタ部に入る仕組みですけど、

ドロップダウン項目を選択した後、その内容をプログラムで変更して、
エディタ部に入れる方法はありますかいのう?

327 :デフォルトの名無しさん:02/05/21 00:27
ありますのう
C#はどうよ?

328 :デフォルトの名無しさん:02/05/21 00:28
>>327
まだWindows.System.Form使い始めでいまいち。
かなりVCLに似た仕様で違和感はないっす。

329 :デフォルトの名無しさん:02/05/21 00:29
onchangeでtext書き直す

330 :デフォルトの名無しさん:02/05/21 00:29
UZEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE!!!!
あっち逝けやヴォケ

C# vs Delphi Round 1
http://pc.2ch.net/test/read.cgi/tech/1021550705/l50

331 :デフォルトの名無しさん:02/05/21 00:34
>>330
318 名前:デフォルトの名無しさん 投稿日:2002/05/21(火) 00:07
>C#にもある概念なので
ハァ?


ふっかけてきたくせにキレるバカw

332 :330:02/05/21 00:37
>>331
俺?318じゃないよ。つーか質問スレにC#との比較話題持ち出すなやって事で。
俺に言わせりゃ>>318もうぜぇんだよ、って感じ。

333 :デフォルトの名無しさん:02/05/21 00:39
>>332
別人と同意した上で。

>C#との比較話題持ち出すなやって

C#にも同様の概念がある。
って書いただけなんだけどね。

100歩譲ってこれが比較だとしても迷惑のかからないポジティブな比較だと思うが。


334 :デフォルトの名無しさん:02/05/21 00:39
やはり新スレは作るべきではなかったな・・・

335 :デフォルトの名無しさん:02/05/21 00:39
アフォばっか(藁

336 :デフォルトの名無しさん:02/05/21 00:40
>>335←MVP

337 :デフォルトの名無しさん:02/05/21 00:42
>>333
うざ

338 :デフォルトの名無しさん:02/05/21 00:43
  ?  ?
? (゚д゚) ? >>333 の言ってることがサパーリな漏れ

339 :デフォルトの名無しさん:02/05/21 00:44
>333は放置しとけ

↓次から何事もなかったかのようにどうぞ

340 :デフォルトの名無しさん:02/05/21 00:45
↑C#さいこー!!!!

341 :338:02/05/21 00:56
やっとわかった。>>333 ゴミン

342 :デフォルトの名無しさん:02/05/21 01:36
>>293
ここで祈る。
http://www.fukkan.com/vote.php3?no=4407

343 :デフォルトの名無しさん:02/05/21 01:52
質問させてください。
これからDelphi 6 Personalを使おうと思っているのですが、
「Personalではデータベースのサポートが無い」
という話を耳にしました。
そのサポートというのは、具体的にどんな事を実現するサポートなのでしょうか?
また、そのサポートが無い場合でも、ある程度容易にデータベースを作れるのでしょうか?

344 :デフォルトの名無しさん:02/05/21 02:43
データベースと簡単に接続してやり取りする物が付いてこないだけなので
一から全部作れば作れないことも有りませんが、とても大変らしいです。

345 :デフォルトの名無しさん:02/05/21 04:12
>>344
「Delphiはデータベースに都合が良い」と聞いていたのですが、
それはProfessionalの方だけだった様ですね。
データベースのサポートが無いのは残念ですが、
Delphiは優秀なツールとの事なので、使ってみることにします。
レスありがとうございました。

346 :デフォルトの名無しさん:02/05/21 06:40
ADO使えば?

347 :デフォルトの名無しさん:02/05/21 09:40
>>345
PQCompo + PostgreSQLならパソナルでもじゅうぶんに使えますよ

348 :デフォルトの名無しさん:02/05/21 10:04
>>343 データベースは作れる。
しかしビジュアルなDBコントロールがないので プログラム量は当然増える。
CGI的な動作をさせるとかならそれでもかまわないかもしれない

Pro以上なら、貼り付けて設定するだけでフロントエンドとしてそれなりに使える



349 :デフォルトの名無しさん:02/05/21 10:27
>>348
仕組み的に知ろうとすると、逆にProのDBコンポを使わない方が勉強になる場合が多いのは皮肉だね
Grid一つ取ってもパーソナルだとStringGridなりを使って独自にプログラムする必要があるし、そこから
独自Gridコンポを作ったりすると、DBコンポの有り難味は薄れてくるし、自前で作ったコンポの方が
自由度が高いので使い勝手も良くなるし。
結局、深く知れば知るほどPro以上の価値はVCLのソースが見えるって部分だけになっていく。(藁
(VCLのソースは独自にコンポを作る場合にも絶対に必要なので結局Pro以上は買う事になるけど)


350 :Delフサギコ ◆zE1iiRdQ :02/05/21 10:44
  ,,,,,,,,,,,,,,,,∧,,∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,,,,ミ,,゚Д゚彡 < TQuery使わなくてもDBにSQL流せるの?
  UU"""" U U    \_______________
 Pro附属のDBEditとかDBGridとかは
 使った事ないんだけど。

351 :デフォルトの名無しさん:02/05/21 10:50
DBGridを自作すんのはいいけど、
TQuery、TStoredProcなどを自作すんのは大変だろな。
キャッシュアップデート関連が特に。
レポートはついてんだっけ?>Personal

352 :デフォルトの名無しさん:02/05/21 10:55
>>347 のPQCompoは日本製だしマニュアルアも日本語だから読んだらいいんじゃないの?

SQLも流せるというより、それが主な目的のコンポ ただし TComponent継承だから独自のものね


353 :デフォルトの名無しさん:02/05/21 12:16
>>350
ttp://www.allroundautomations.nl/bodydoa.html
こういう物があるね。
Oracleを(BDEを経由しないで)扱えるコンポーネント。
だからその気になれば出来るんでないの?


354 :デフォルトの名無しさん:02/05/21 13:36
それなら oo4o使ったほうが簡単そうだけど。。。
データコントロールに慣れてると大変だけどね。

355 :343:02/05/21 15:32
>>346-348
アドバイスありがとうございます。
まだそこまでレヴェルが全然達してないので、
また実際データベースを作る時にでもアドバイスよろしくお願いします。m(_ _)m

356 :名無しへたぐらま ◆B18Bks.Y :02/05/21 16:10
>333
私は内容自体は全く問題ないと思いましたが,
一部の読み手が神経をとがらせている話題には
触れないほうがよいかも.

(何があろうと言わなければならないことなら話は別ですけど)


357 :デフォルトの名無しさん:02/05/21 16:29
うるさいよ?

358 :デフォルトの名無しさん:02/05/21 16:58
    \
  (゚д゚) エンジョイプレイ!
  <(  )
    < \

359 :デフォルトの名無しさん:02/05/21 18:29
ib objects 使えば personal でもビジュアルBDコントロールを使える
ただし、interbaseもibobjectsも日本語ドキュメントが公開されてない罠

360 :デフォルトの名無しさん:02/05/21 21:31
PDFファイルの中の、/title (もなもな)とか/subject (ギコギコ)という
部分の、「もなもな」「ギコギコ」
というutf-16の文字列を取り出して
シフトJISに変換してMemo1.lines.add
とかしたいのですが、
Memo2.Lines.LoadFromFile(
OpenDialog1.Filename);
などとして、Memoに読ませると
「ギコギコ」の途中で切れちゃいます。

テキスト以外を含むファイルから
特定の文字列を抽出する時は
皆さんはどのようにされるのですか?

また、普通はどうするのですか?

Delphi6parsonalをセットアップ
したばかりで、プログラムの基本
がまだつかめてません。

361 :デフォルトの名無しさん:02/05/21 23:22
>>360
ここのみんなと、「普通」と分けて
るけど、ここの住人は「普通」じゃ
無いってか?

362 :デフォルトの名無しさん:02/05/21 23:30
http://pc.2ch.net/test/read.cgi/tech/1018211735/617

363 :デフォルトの名無しさん:02/05/22 00:37
久々に http://www.borland.com/ 開いて見た
一瞬、間違って Sunのページを開いたのかと思ってしまった。

近い将来、Sunと合併する為の企業イメージの統一か?(藁

364 :デフォルトの名無しさん:02/05/22 00:39
http://www.sun.co.jp/ 因みに Sunはこっち
http://www.sun.com/ の方はちょっと派手

無駄話したので逝って来ます。

365 :デフォルトの名無しさん:02/05/22 01:10
Borland本社はこっちね。
http://www.borland.co.kr/

366 :デフォルトの名無しさん:02/05/22 02:08
bonland本社はこっちね。
http://www.bonlandhvac.com/default.htm

367 :デフォルトの名無しさん:02/05/22 16:43
文字列の引き算?ってどうすれば
いいのでしょうか?

つまり、長さが一定でない文字列か
ら、最初の数個の文字や、末尾の
1文字を削除したいのですが。

368 :デフォルトの名無しさん:02/05/22 16:58
>>367 copy と length をヘルプで見て よく考えてみて下さい

369 :デフォルトの名無しさん:02/05/22 16:58
Copy(x, n, n)

370 :デフォルトの名無しさん:02/05/22 17:00
formに貼ったmemoに読み込んだ
unicode文字を、
WideCharLenToString関数に
与えて普通に読める文字にする為
の、ソースサンプルを教えてほしい
のですじゃ。


371 :デフォルトの名無しさん:02/05/22 17:05
WideCharLenToString関数って
うにこーどに未対応のWindows95
でも使える?

372 :デフォルトの名無しさん:02/05/22 17:06
>>371
Win95は無視してください。

373 :デフォルトの名無しさん:02/05/22 17:25
ヘルプに載ってる
RightStr関数を使おうとしたら

未定義の識別子っていわれた。

なんで、使えないやつがヘルプに
あるの?

374 :デフォルトの名無しさん:02/05/22 17:34
ヘルプのユニットのところにStrUtilsとありますね。
uses StrUtilsとすれば使えますよ。

375 :デフォルトの名無しさん:02/05/22 17:51
WideCharLenToString関数を
使ってみたら

StringとPWideCharには互換性が
無いと言ってきた。

StringからPWideCharへの変換は
どれをつかうの?



376 :373:02/05/22 17:55
>>374
usesって、そうゆうものだったのか
ありがとう助かったよ。

ってか
織れが厨すぎるのか?


377 :367(初心者):02/05/22 17:59
>>368
>>369
あ、なんかわかってきました。
ありがとう。

378 :デフォルトの名無しさん:02/05/22 18:10
文字化けしてstringになってる
unicodeをPWideCharとみなして
読める状態に変換するには、どうしたら良いのでしょう?

Windows95
Delphi6parsonal


379 :デフォルトの名無しさん:02/05/22 18:13
>>372
見捨てられてるんですか(;ー;


私のマシンはまだWin95


380 :デフォルトの名無しさん:02/05/22 18:16
ところで、
PWideCharって
なあに?

381 :ノミ:02/05/22 18:34
お願いがあります。
チャットで荒らしをしてる人が居ますです
こらしめたいのです
というかそこのみんなが迷惑しているのです
解決法などを教えてくださいです。

382 :デフォルトの名無しさん:02/05/22 18:37
>>381
プロバイダに通報して下さい。

383 :ノミ:02/05/22 18:38
プロバイダってなんです?

384 :ミノ:02/05/22 18:47
お願いがあります。
スレッドで荒らしをしてる人が居ますです
こらしめたいのです
というかそこのみんなが迷惑しているのです
解決法などを教えてくださいです。

385 :デフォルトの名無しさん:02/05/22 19:00
>>384
取りあえず寝ろ。

386 :デフォルトの名無しさん:02/05/22 19:24
>>383
聞く場所がちがう。

荒し対策とプログラム技術とは
直接関係ない。

というより、あなたそのものが
この板にとって荒しそのもの

2度とくるな。

387 :デフォルトの名無しさん:02/05/22 19:41
TFileStreamでファイルの
何行目の何文字目から、特定の記号
が出るまでを、抜き出すのは
どうすればいい?

で抜き出したやつをPWideCharタイプの変数に入れたいんだけど。

388 :デフォルトの名無しさん:02/05/22 20:04
Delphi.net 日本語版 2003年11月発売予定

389 :デフォルトの名無しさん:02/05/22 20:05
>>383
ブロパイダのことだとおもう

390 :デフォルトの名無しさん:02/05/22 20:06
>>388
それってDelphi 6の次ってこと? 違うの?

391 :デフォルトの名無しさん:02/05/22 20:06
>>388
マジっすか?あと5ヶ月かぁ、貯金はじめないと間に合わないな。

392 :デフォルトの名無しさん:02/05/22 20:07
Delphi7は、2002年12月です

393 :391 :02/05/22 20:09
げ、.NET 2003年?来年かよ!

394 :デフォルトの名無しさん:02/05/22 20:10
>>392
おい、それネタ?それともちゃんとした情報?

395 :デフォルトの名無しさん:02/05/22 20:12
ある程度ちゃんとした情報だが、正式発表ではない、まだ予定は未定だ。

396 :デフォルトの名無しさん:02/05/22 20:17
>>395
CBは?

397 :デフォルトの名無しさん:02/05/22 20:24
CBは来年ですが、Linux版ではKylixとCBが合体して Kylix3として今年の夏〜秋にリリースされる予定。
Win版も将来的にはその方向に・・・。あと、VSに対抗する製品も検討されていますが、辛いのが
経営戦略的にリリース時期がズレズレなので、これも将来的にリリースを統一する方向・・・。
これ以上は語れません。

398 :デフォルトの名無しさん:02/05/22 20:37
ん?DelphiとBCBも統合するの?

399 :デフォルトの名無しさん:02/05/22 20:40
統合されたらいいなあ BCBやってる時に パスカルソースも同じように編集出来れば最高

400 :デフォルトの名無しさん:02/05/22 20:56
JBuilderも統合されないかなあ。

401 :デフォルトの名無しさん:02/05/22 20:58
BCB# とか出る?
つーか、出るにしても #の位置が微妙になるなぁ、入れるとしたらBC#Bか?

402 :デフォルトの名無しさん:02/05/22 20:59
>>400
JBは根本から違うから無理でしょ。
つーか、Delphi程度に軽くなって欲しいな JB

403 :柏餅がすき ◆B18Bks.Y :02/05/22 22:01
>367
Delete手続きという手もあります.


404 :デフォルトの名無しさん:02/05/22 22:02
別板のコテハンつかってしまいました(>_<).
はやく新しい専用ブラウザに慣れなければ….


405 :age:02/05/22 22:27
柏餅が好き、と。メモメモ。

406 :デフォルトの名無しさん:02/05/22 23:14
>>387

TFileStream に行とか文字とか、という概念はありません。

407 :デフォルトの名無しさん:02/05/22 23:31
なんつーか、ここで「どうしてなの?」なんてこと書く前に検索すれってばよ。



と。

408 :デフォルトの名無しさん:02/05/22 23:33
ウニコードについて聞きまくってるのは同一人物かい?        

409 :デフォルトの名無しさん :02/05/23 00:02
質問ですが、RichEditにて指定した位置の文字例が何かであるか
を調べるにはどのように記述したらよいでしょうか?
教えてください。お願いします。
ちなみにちゃんとヘルプで調べましたが、見つからなかったため
書き込みしました。

410 :デフォルトの名無しさん:02/05/23 00:04
>>409
ちなみにMSDNライブラリも調べると幸せになります。


411 :デフォルトの名無しさん:02/05/23 00:12
>>409
http://www.google.co.jp/search?hl=ja&ie=UTF8&oe=UTF8&q=%E6%A4%9C%E7%B4%A2%E3%81%99%E3%82%8C%E3%81%A3%E3%81%A6%EF%BC%81%E3%83%8F%E3%82%B2%EF%BC%81&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=

412 :デフォルトの名無しさん:02/05/23 00:47
>>409
>指定した位置の文字例が何かであるか

質問の意味が分かりません


413 :343:02/05/23 03:49
>>409
x行目、y文字目からz文字を調べるとしたら、

var
ls, cs: String;
begin
ls := RichEdit1.Line[x];
cs := Copy(ls, y, z);
ShowMessage(cs);
end;

でいいんじゃね?

414 :デフォルトの名無しさん:02/05/23 04:30
>>406
じゃあ行をみつけるには
1バイトづつ読みとってif文と"="で
改行コードと比較するループを回す
しかないのか。

なんか効率悪そうだなあ。

いいほうほうないのかな?

415 :デフォルトの名無しさん:02/05/23 04:32
>>414
TStringList.LoadFromStreamで読み込めば?

416 :柏餅が好き:02/05/23 06:32
>>414
TMemoryStreamならポインタ操作できるよ

417 :デフォルトの名無しさん:02/05/23 07:05
>>414
ちゃんとしたコンパイラですから、そうやればいいのです。
ただ、1バイトづつ読むのではなく、ブロック単位に読んで1バイトづつ処理します
LoadFromStreamで読んでも、中身はそういうやり方をしています



418 :デフォルトの名無しさん:02/05/23 16:29
FindDialogを使ってTMemo上で文字列検索したいのですが、
ttp://www.google.co.jp/search?q=cache:_Ch5tMA-sBgC:myhome.netsgo.com/parkhs98/delhelp/edittip.htm+finddialog1+memo&hl=ja
こちらの通りやると、テキスト全体から一番最初にマッチするものしか検索できず、次を検索することが出来ません。
RichEditだとヘルプにあるようにFindTextメソッドを使用すれば次を検索できるのですが、
Memoには無いので同じ手法が使えません。
どのような手法を使えばいいのか、ご教授お願いいたします。

419 :デフォルトの名無しさん:02/05/23 16:40
>>397
つーかお前これを見ただけとちゃうん?
ttp://www.drbob42.com/BorCon.htm


420 :Delフサギコ ◆zE1iiRdQ :02/05/23 16:57
>Borland previewed a programming language for Web Services creation
> & scripting (codename Charlotte)

  これなんだろ?ゴルァ
     ∧,,∧,,,,,, )      (´⌒(´
  ⊂ミ゚Д゚⊂ `つ≡≡≡(´⌒;;;≡≡≡
       """""  (´⌒(´⌒;;
      ズザーーーーーッ

>>419
> SelPos := Pos(FindText, Memo1.Lines.Text);
Memo1.Lines.Textの内容を
今のSelStart+1位置から最後まで切り取ってから
Posにわたしたらいいでしょう。

421 :デフォルトの名無しさん:02/05/23 17:10
>>420
コードネーム人参
クラス名は全て人参に含まれる栄養素名。

422 :Delフサギコ ◆zE1iiRdQ :02/05/23 17:39
carrot???
http://dictionary.goo.ne.jp/cgi-bin/dict_search.cgi?MT=Charlotte&sw=0

 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄
     ∧,,∧,,,,,, )
  ⊂ミ,,゚Д゚⊂ `つ;
       """""マジボケですか?

423 :デフォルトの名無しさん:02/05/23 18:05
Charlotteはシャルロット

424 :うに好き:02/05/23 19:07
改変、流用自由なソースを改造厨
ファイルを変換するやつから
変数を読ませるやつに改造しようと
してTFileStreamをTMemoryStreamに変更。
Ms.Writeのところで、TMemoryStreamとIntegerには
互換性がありません。というエラー
発生!どのように直せばいいのでしょう?

// Unicode(Big Endian)の文字列を読込みShift-Jisのテキストを返す
function LoadUniBi(const titleName: string; nagasa1: Longint): string;
var
Ms: TMemoryStream;
Sz, n: integer;
Pc: PChar;
Tc: char;
begin
Result := '';
Ms.Clear;
Ms := Ms.Write(string(titleName),nagasa1);
try
Ms.Position := 0;
sz := Ms.Size;
try
Pc := AllocMem(sz + 10);
Ms.Seek(0, soFromBeginning);
try
if Ms.Read(Pc^, sz) = sz then
begin
n := 0;
// WordのLow, Highを入替える(何て原始的な方法)
while n < sz do
begin
Tc := (Pc+n)^;
(Pc+n)^ := (Pc+n+1)^;
(Pc+n+1)^ := Tc;
Inc(n, 2);
end;
Result := WideCharToString(PWideChar(Pc+2));//先頭2byteをカッ

end;
finally
FreeMem(Pc);
end;
except
raise Exception.Create('メモリを確保出来ませんでした.');
end;
finally
Ms.Free;
end;
end;


425 :デフォルトの名無しさん:02/05/23 19:10
シャルロットを返して!

426 :デフォルトの名無しさん:02/05/23 19:14
>>415
>>416
>>417
ありがとう。
それらで検索してがんばって
理解しようとしてみるよ。


427 :360:02/05/23 19:47
PDFファイルから/title (もなもな)を
鳥だそうとしているものです。
/titleが6行目に出てくるので
イカのソースをかいて鳥だそうと
したのですが、化けちゃっています

おかしな、部分をご指導願いたい
のですが。

procedure TForm1.PDF1Click(Sender: TObject);
var title1:string;
s1:string;
s2:string;
title2:string;
Li:string;
L1:integer;
PW:PWideChar;

begin
if OpenDialog1.Execute then
begin
//ReadTextByStream(OpenDialog1.FileName,Memo1.Lines);
Memo1.Lines.LoadFromFile(OpenDialog1.FileName);
end;
begin
title1 := Memo1.Lines[6]; //6行目取出し;
s1 := copy(title1,9,length(title1)-9); //9文字目から全体の長さ-9を取
出;

PW := @s1; //ポインタ代入;
L1:=length(s1); //長さ代入;
WideCharLenToStrVar(PW,L1,title2); //プロシージャ呼出;
//title2 := WideCharLenToString(PW,L1);
Li := RightStr(OpenDialog1.FileName,10) + ',' + title2;//ファイル名+
抽出結果;
Memo2.Lines.Add(Li); //メモ書き出し;
end;
end;


428 :360:02/05/23 20:01
あ”ぁ、インデントが消えてる?
なぜ?

すみません。

429 :無責任だが:02/05/23 20:02
>>424 そのエラーを出さないだけなら
Ms.Write(PChar(string(titleName))^ , nagasa1);
とか 代入を止めたらいい 

それから MS:=TMemoryStream.Create; を忘れている

でも、そのコードを見る限りは、Streamを使うよりは文字列のまま使った方がいいと思う
たぶん以下のと同じコードだと思うのだけど?
function LoadUniBi(const titleName: string; nagasa1: Longint): string;
var
wk:string;
Sz, n: integer;
begin
Result := '';
sz := length(titleName);
 SetLength(wk,sz);
 try
  begin
   n := 0;
   while n < sz do
   begin
    wk[n+1+0] := titleName[n+1+1];
    wk[n+1+1] := titleName[n+1 ] ;
    Inc(n, 2);
   end;
  Result := WideCharToString(PWideChar(PChar(wk)+2));//先頭2byteをカット
  end;
 except
  raise Exception.Create('メモリを確保出来ませんでした.');
 end;
end;

430 :無責任だが:02/05/23 20:20
>>427
変だと思うのは
 PW := @s1;
 これは具体的にどうしたいのでしょう?


あと良く知らないのだけどPDFファイルはバイナリも含むのではないかな?
だとするとLoadFromFileでは都合が悪い

Delphiで小さな実行ファイルを作ろう
http://pc.2ch.net/test/read.cgi/tech/1009080085/22

ファイルを読むのに
 function readFileStr(fname:string):string;

を使って 位置を調べるのに Pos関数を使ってはどうでしょうか?


それとも改行は正しく入っている


431 :うに好き:02/05/23 20:52
>>429
うごきましたよ!
激しくありがとう。

冒頭のアドバイスで、コンパイル
できました。

ご提示いただいたコードもしっかり
うごきました。

感謝します。

432 :360:02/05/23 21:51
>>430
アドバイスありがとうございます。

PW := @s1; は
WideCharLenToStrVarに文字列を
渡したいのです。
unicode>s-jis変換として。

PWがPwideCharというポインタらし
いので、stringsではまずいみたい
だったので。

私が読みたいPDFはバイナリも含んでます。
しかし、まだ、LoadFromFileしか分からなかったもので。
ただmemoに読んだ時に10行目の
'/Subject ('の先に#0があって
そこで読み込みが終わってしまうの
で、とりあえずイイカナ?
と妥協してしまってます。

ほんとは、/Subject (ギコギコ)の
部分も取り出したいのですが。

教えていただいたPos関数などを
使ってがんばってみます。

memoに張り付いている10行は
改行されてるみたいです。

433 :418:02/05/23 22:18
フサさんありがとうございます。
ただ、問題はmemo.textから如何にして一部を取り出すかがわかんないです…
下検索の場合、
RichEditのヘルプにあるように始点と終点は特定できても、
その間にあるテキストを如何にして取り出すかがわかりません。
申し訳ございませんが誰かもう一度お願いします。

434 :デフォルトの名無しさん:02/05/23 22:58
>>427
「イカのソース・・・」
やきそば?(w

しかも、レスの番号が死にな(427)だ。


435 :デフォルトの名無しさん:02/05/23 23:37
某所で「ウニコード・UTF-16・Tfilestream」の質問してる
「ミカンの皮」っての、マルチポストだよネ?
ここで聞きまくってるのと。

436 :デフォルトの名無しさん:02/05/24 00:14
Delphiで簡単に掲示板のようなcgiは作れますか?

437 :デフォルトの名無しさん:02/05/24 00:16
>436
作れるが、当然Windowsのサーバ上でしか動かんぞ

438 :デフォルトの名無しさん:02/05/24 00:17
>>433
簡単な方法。
Copy関数でMemo.Lines.Textの一部を取り出す。
これをループ。

439 :デフォルトの名無しさん:02/05/24 00:18
Delphiで簡単に連番エロ画像ぶっこ抜きアプリは作れますか?

440 :デフォルトの名無しさん:02/05/24 00:19
>>439
(事件の真相はこうです。警部殿。)
      V
    _________        
    |________| Z        
    ||∧∧|| z     (\_/)
    |(,-Д-)    Σ (・∀・ )
   ■∪∪■     (    )
   (-_||∪∪||      | | |
   (∩|| ̄ ̄||     (__)_)


441 :343:02/05/24 02:11
質問させてください。
ファイルを扱うソフトを作りたくて、接続されている
ディスクドライブの一覧をComboBoxコンポーネント表示させたいのですが、
その方法を教えてください。
よろしくお願いします。m(_ _)m

442 :デフォルトの名無しさん:02/05/24 02:19
>>441
http://www.google.co.jp/search?hl=ja&ie=UTF8&oe=UTF8&q=%E3%83%89%E3%83%A9%E3%82%A4%E3%83%96+%E4%B8%80%E8%A6%A7%E3%80%80delphi&lr=
ちらほら出てくるから探しなさいよ。まずは。

443 :442:02/05/24 02:25
delphi ML過去ログにありそうだから、そこも検索すれ。

444 :デフォルトの名無しさん:02/05/24 02:43
つーかTDriveComboBoxでは駄目なのか?

445 :343:02/05/24 03:06
>>442-443
Delphi MLという所にありました。
ここはかなり情報量が豊富ですね。
またわからない事があったらそこで調べてみます!(^^;
ありがとうございました!m(_ _)m

>>444
その様なコンポーネントがあったとは…。
さすがでるふぁい、かゆいところに手が届くようにできてるのですね!
今度からそれを使ってみます。
ありがとうございました!m(_ _)m

446 :デフォルトの名無しさん:02/05/24 07:14
DelphiMLのアドレスくらいスレの最初に書いておいたほうがいいかも。

447 :デフォルトの名無しさん:02/05/24 07:15
7に書いてあるじゃん!!

448 :デフォルトの名無しさん:02/05/24 15:07
ファイル名が連番になっている
ファイル群を、順に読み込ませたい
のですが、ファイル名の番号が抜け
ていて、存在しないファイル名を
指定してしまった時に例外が出ます。

例外を出さずに、メッセージを
出して中断するにはどうしたら良い
のでしょう?
ご教示いただけないでしょうか?
以下がソースです。
begin
ShowMessage('連番ファイル名で値が最大のファイルを選択してください。');
if OpenDialog1.Execute then
begin
//ReadTextByStream(OpenDialog1.FileName,Memo1.Lines);
Fn1 := OpenDialog1.FileName;
Fn10 := LeftStr(Fn1,Length(Fn1)-19);
ShowMessage(Fn10);
Fn12 := 'log';
Fn0 := LeftStr(RightStr(Fn1,7),3);
ShowMessage(Fn0);
F := StrToInt(Fn0);
// ShowMessage(IntToStr(F));
while F >= 1 do
begin
Fn11 := IntToStr(F);
if F <= 99 then
Fn11 := '0'+ Fn11;
if F <= 9 then
Fn11 := '0' + Fn11
else
Fn2 := Fn10 + Fn11 + '.' + Fn12;
Memo1.Lines.LoadFromFile(Fn2);
begin
//ここでいろいろ処理。
end;
F := F-1;
end;
end;
end


449 :デフォルトの名無しさん:02/05/24 15:10
if FileExitst(Fn2) then begin
  Memo1.Lines.LoadFromFile(Fn2);
   ・・・

else エラーの処理


450 :418:02/05/24 16:08
433で書いたのは終点ではなく始点から終点までの長さだったので、
Copy関数を使って取り出すことが出来ました。
どうもありがとうございました。

451 :デフォルトの名無しさん:02/05/24 17:26
キャレット、又の名をカレットとも呼ばれるものについて質問です、
Edit等で出てくる 「|」形状のキャレットを変形させて■形状にしたくて以下のようにしました。

procedure TForm1.Edit1Change(Sender: TObject);
begin
  CreateCaret(Edit1.Handle,0,Edit1.Font.Size-4,Abs(Edit1.Font.Height));
  ShowCaret(Edit1.Handle);
end;

取りあえず、これでEdit1のフォントがMSゴシックだと、なんとなく変形できるのですが、
問題は、Editが画面上に大量にあるのです、大量にあるEdit全てにこの方法で書くのは
非効率的だと思うのですが、何か良い方法はないでしょうか。(本来は、最初に1回だけ
変更したら、フォーム内全てのキャレットが変更されて欲しかったですが・・・)

452 :デフォルトの名無しさん:02/05/24 17:30
>>451
とりあえずイベントハンドラを1つで済ますことは可能だけど
>本来は、最初に1回だけ変更したら、フォーム内全てのキャレットが変更されて欲しかったですが・・・
このためには更に工夫が必要でしょう

453 :無責任だが:02/05/24 17:55
>>432
var s1:string;

@s1

これは pascal文字列s1のアドレスです

AsciiZ文字列そのものが欲しいのなら
pChar(s1)
のようにそのまま型変換しなけれいけません


454 :デフォルトの名無しさん:02/05/24 18:17
>>451
だからDelにはコンポーネントを作成する機能があると思うのだが…

455 :無責任だが:02/05/24 19:00
もっと良い方法あるかもしれないし、毎回 CreateCaret/ShowCaret
していいのかも判らないけど


procedure TForm1.IdleProc(Sender: TObject; var Done: Boolean);
begin
if ActiveControl is TEdit then
with ActiveControl do
  begin
  CreateCaret(Handle,0,Font.Size-4,Abs(Font.Height));
  ShowCaret(Handle);
 end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 Application.OnIdle:=IdleProc;
end;

456 :お願いします:02/05/24 21:06
RichEditを使ってカラフルな表示をしようと思っています。

TCustomRichEdit.SelAttributes に載っているの例文の方法では
1行ごとにしか色付けができません。

複数行ではなく、
「赤色青色緑色」
を同一行に収めたいのです。
つまり↓のHTMLと同じことを再現したいのですが
<font color="#FF0000">赤色</font><font color="#00FF00">青色</font><font color="#0000FF">緑色</font>

どうやればいいんでしょうか?
Googleで検索してもよほど基本的すぎるのかどこにも載ってません。

457 :デフォルトの名無しさん:02/05/24 21:26
>TCustomRichEdit.SelAttributes に載っているの例文の方法では
>1行ごとにしか色付けができません。
当然。
SelAttributesの説明をよく読め。

458 :デフォルトの名無しさん:02/05/24 21:58
>>457
>当然。
だからどうしたらよいのですか?と聞いてるんですが・・・(汗

459 :デフォルトの名無しさん:02/05/24 22:00
>>458
>だからどうしたらよいのですか?と聞いてるんですが・・・(汗
2行目も読んだ方が良いぞ。

460 :デフォルトの名無しさん:02/05/24 22:18
>2行目も読んだ方が良いぞ。
言っている意味がよく分からないですが・・・(汗

461 :デフォルトの名無しさん:02/05/24 22:23
>>460  SelStart / SelLength で選択してから SelAttributes


462 :デフォルトの名無しさん:02/05/24 22:43
どういうこと・・・?

463 :デフォルトの名無しさん:02/05/24 23:03
神よ、なぜ456に「応用力」というものをお与えにならなかったのですか?

464 :デフォルトの名無しさん:02/05/24 23:10
>>456 例文に載ってる方法を実行する時にボタン押すよね?

そのボタン押す前に マウスで文字をドラッグしておいてみて

465 :アナザヘヴン:02/05/24 23:12
どうも逆ギレっぽい反応がイヤなのですが・・・(汗

466 :デフォルトの名無しさん:02/05/25 00:48
s:TStringList;
s:=TStringList.Create;
s.Add('a');
とやるとコンパイルエラーになります(オーバーロード関数Addが定義されていません)
書籍にはこう書いてるのですが、何が悪いのでしょうか?
また、s.Appendとかs.AddObjectとやると、未定義の識別子Append(AddObject)と表示され
やはりコンパイルエラーになります。これもわかりません。

467 :デフォルトの名無しさん:02/05/25 00:52
>>466
「S.」と打って、しばらく眺めてれ!
答えが見えて(略)

468 :466:02/05/25 00:55
>>467
確かに一覧には出てきませんが、書籍にはこのようなコードが載ってるんですよ。
(Addは一覧にあるけど、パラメーターの型が違う)

469 :デフォルトの名無しさん:02/05/25 01:07
>>466
中途半端なコードじゃなくその関数を丸ごと書いてみたら?
どうも他の部分に間違いがあるような気がする

470 :466:02/05/25 01:28
>>467
>>469
お騒がせしました。
with Form1 do の中で実施していたのですが、
Form1の中にs(TMenuItem)というメンバーがあったのが原因でした。
レスありがとうございました。

471 :デフォルトの名無しさん :02/05/25 02:07
TBrush.Assignって実はAssignToなんでしょうか?
----Delphi ヘルプより-----
Assign メソッドは,ブラシの内容を別のブラシにコピーします。
procedure Assign(Source: TPersistent); override;
説明
Assign メソッドは,ブラシのプロパティを別の TBrush インスタンスにコピーします。
-----
ソース見てもそんな感じなんですが、TResourceManagerってぇのがよく分からん。
お願いします。

472 :デフォルトの名無しさん:02/05/25 02:26
>>471
Dist.Assign(Source) = Source.AssignTo(Dist)

473 :デフォルトの名無しさん:02/05/25 02:32
>>472
Dist → Dest


474 :デフォルトの名無しさん:02/05/25 02:46
>>472と考えてもいいと思いますが、使う時はAssignだけにするべきです。

Assignは内容をコピーするメソッドですが、自分が新しくクラスを作った時、
Assignだけだと、自分のクラスのAssignは定義できても、他のクラスのAssignを書き換えるわけに行かないので
「自作←他」方向のコピーしか実装できないことになります。
そのためにAssignToはあります。
他のクラスのAssignで、有効な組み合わせが見つからなかった時は、自作クラスのAssignToを呼んでくれるので、
「他←自作」方向のコピーが実装できます。

475 :471:02/05/25 02:56
TResourceManager.AssignResourceをよく読めてませんでした。
普通にAssignでしたね。お騒がせして済みません。
それにしてもヘルプの文はややこしい・・・。

476 :デフォルトの名無しさん:02/05/25 22:47
TStringList.Delete( Count );
とすると、行が削除されるのですか?

たとえば、







が、あるとすると、
TStringList.Delete( 1 );
を実行したら






となるんですか?
または、







となるんですか?

477 :デフォルトの名無しさん:02/05/25 22:49
自分で試せアフォ

478 :デフォルトの名無しさん:02/05/25 22:49
>>476
Memo1.Assign(aStringList)とかして
自分で実験して見れば〜

479 :デフォルトの名無しさん:02/05/25 22:51
>>476

質問する前に、どうして実験しないのか、のほうが不思議です。

procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Clear;
Memo1.Lines.Add('あ');
Memo1.Lines.Add('い');
Memo1.Lines.Add('う');
Memo1.Lines.Delete(1);
end;


480 :476:02/05/25 22:52
め  ん  ど  く  さ  い  か  ら  で  す

481 :デフォルトの名無しさん:02/05/25 22:53
Σ(゚Д゚)

482 :デフォルトの名無しさん:02/05/25 22:54
>476
とっととしねよ

483 :デフォルトの名無しさん:02/05/25 22:55
>>476

476 の書き込みをするより、479 のコードを書くほうが簡単だと思うが?

あぁ、そうか、質問の内容からすると、コードを書けなかったのね。


484 :476:02/05/25 22:56
こ  れ  ぐ  ら  い  で  死  に  ま  せ  ん

485 :デフォルトの名無しさん:02/05/25 22:56
Σ(゚Д゚)

486 :476:02/05/25 22:57
484は
476じゃ あ り ま せ ん

487 :デフォルトの名無しさん:02/05/25 22:57
Σ(´Д`ズガーン

488 :476:02/05/25 22:58
488は
476じゃ あ り ま せ ん

489 :476:02/05/25 23:00
476は
476じゃ あ り ま せ ん

490 :476:02/05/25 23:01
すいません。自分で実験すればよいことをわざわざ質問してしまいました。
申し訳ありません。
もう476を名乗る書き込みはやめてください。

491 :デフォルトの名無しさん:02/05/25 23:03
神様、どうして>>488をコンパイルエラーとなさらなかったのですか?
彼は人間としての仕様を十分に満たしてはおりません。
停まるだけならまだかわいいものですが>>488は自身のバグにより
人々に多大な迷惑をかけております。
せめて、せめてリンクエラーにして下さっていれば・・・。
おお、神よ・・・。

492 :476:02/05/25 23:03
ただし結局どっちなのかだけは答えてください。

493 :デフォルトの名無しさん:02/05/25 23:05
----------------- 沈静 -----------------

494 :デフォルトの名無しさん:02/05/26 00:20
もうわかったから。おやすみね

495 :デフォルトの名無しさん:02/05/26 02:57
[エラー] >>476:未定義の識別子 : '手抜き野郎'
[致命的エラー] project.dpr(476): '>>476' ユニットは自助努力できませんでした。


496 :デフォルトの名無しさん:02/05/26 05:31
おはようございます。
特定の他のアプリのエディットボックスに、
文字列を自動的に入力するようなアプリを作ろうとしています。
これが初めて作るプログラムというレベルです。

Googleしながら一晩試行錯誤した結果、
FindWindowExで、狙ったエディットボックスのウィンドウハンドルを取得する事はできた…はずなんですが、
それから先がどういう関数を使っていいのかさっぱりわかりません。
どうかご教授ください。
お願いします。

497 :デフォルトの名無しさん:02/05/26 05:40
>>496
SendMessage

498 :496:02/05/26 05:49
>>497
ありがとうございます。
早速こんな感じで書いてみたのですが、
コンパイルエラーがでます。
どこをどう直すべきでしょうか…?

procedure TForm1.Button2Click(Sender: TObject);
var
hForm,
hEdit: HWND;
begin
hForm:=FindWindow(nil,'Form1');
hEdit:=FindWindowEx(hFrom,0,'Edit',0);
SendMessage(hEdit,'あいうえお',0,0)
end;


499 :Delフサギコ ◆zE1iiRdQ :02/05/26 05:55

           _____________
   ∧,,∧    /
  ミ,,゚Д゚彡 < >>63みてよし
   U  つ∀ \____________
 〜ミ  ミ ┴
   ∪''∪

500 :496:02/05/26 06:00
>>499
できた、できました!
ありがとうございましたm(_ _)m


501 :デフォルトの名無しさん:02/05/26 10:14
 4GBクラスのファイルをオープンしてファイルサイズを取得したいんですが、
FileSize()関数では正しい値が得られません。
API関数のGetFileSize()を使わずに正しい値を得る方法はありますか?

 また、構造体のフィールドにpCharを使用した場合に、
何か不具合が起こることはありますか?

502 :デフォルトの名無しさん:02/05/26 10:40
>501
ttp://www.nifty.ne.jp/forum/fdelphi/samples/01358.html

後半の質問は意味不明なので回答不可。

503 :501:02/05/26 10:48
>>502
 ありがとうございます。
後半の方は、メモリにゴミがたまりやすくならないか、ということです。
でもキチンと破棄すれば大丈夫ですよね。

504 :デフォルトの名無しさん:02/05/26 13:03
>>503
>ゴミがたまりやすくならないか

???

CPUが確率論的にどうさしてるならともかく、そんなの貴方次第。


505 :デフォルトの名無しさん:02/05/26 13:08
溜まるんじゃなくて、溜めてるの


506 : :02/05/26 23:39
Delphi のプロジェクトを CVS でバージョン管理している人いる?

507 :デフォルトの名無しさん:02/05/26 23:54
たくさんいる。
http://sourceforge.net/softwaremap/trove_list.php?form_cat=265

508 :デフォルトの名無しさん:02/05/27 02:09
ttp://sourceforge.jp/
こっちは利用者少ないね。まだ開設して間もないからかな?

509 :デフォルトの名無しさん:02/05/27 02:12
>>508
そもそもなんで.jpなんて作る必要があるの?
本家sourceforgeでいいじゃん

510 :デフォルトの名無しさん:02/05/27 02:12
http://sourceforge.jp/softwaremap/trove_list.php?form_cat=265

511 :デフォルトの名無しさん:02/05/27 05:26
>>509
こういうのを本家から隔離するため。
http://sourceforge.jp/projects/nxt/

512 :デフォルトの名無しさん:02/05/27 05:28
>>511
隔離所だったのか。納得(笑)

513 :デフォルトの名無しさん:02/05/27 09:23
>>511
Σ( ゜Д゜)

514 :デフォルトの名無しさん:02/05/27 10:33
StringGridで行数を動的に増やしていくのって
どうすればいいんでしょうか…

最後の行に入力されたら一行増やすってのをやりたいんですが

515 :Delフサギコ ◆zE1iiRdQ :02/05/27 10:36
ミ ゚Д゚彡,,,RowのCountを増やす。

516 :514:02/05/27 10:49
あ、やっぱり自分で書くしかないんですね
プロパティにあるかと探してました
失礼しますた

517 :デフォルトの名無しさん:02/05/27 11:45
>>506
WinCVSつかってまふ。

518 :デフォルトの名無しさん:02/05/27 17:49
CVS の使い方がいまいちわからん。
IDE で開くと、書き込み禁止になっていて更新できないじゃん。

519 :デフォルトの名無しさん:02/05/27 20:21
CVSってな〜に...?^^);・・)?ロ_ロ)?

520 :デフォルトの名無しさん:02/05/27 20:21
>>519
検索しようね。
後、PC-UNIXに興味を持ってもおもしろい。

521 :デフォルトの名無しさん:02/05/27 20:22
>>519
ぐぐりなさい。
http://www.google.com

522 :デフォルトの名無しさん:02/05/27 22:18
>>518
いま、ちょっとVSS使っているから、あたまがごっちゃになっているんだけど。。。
ちゃんとチェックアウトしてる?
チェックアウトすると書き込み可能な状態になるはずだよ。
なんかオプションもあったかも。
つか、WinCVSを日本語化して使うと楽チンかもよ。


523 :デフォルトの名無しさん:02/05/28 00:02
そういやCVSのスレってないね。
ありそうなもんだけどね。

524 :デフォルトの名無しさん:02/05/28 00:09
CVSを使ってファイル管理
http://pc.2ch.net/test/read.cgi/unix/997434642/
彼女をCVSで管理したい
http://pc.2ch.net/test/read.cgi/unix/999837578/

525 :デフォルトの名無しさん:02/05/28 07:20
CVS を使う時に、まずマスターのフォルダからリポジトリにインポートしますよね?
で、作業フォルダにチェックアウトして更新していくと思うんだけど、
最初のマスターファルダのファイルはどうすればいいの?
削除してしまってOK?

526 :デフォルトの名無しさん:02/05/28 07:45
>>525
削除してもいいし、その上からチェックアウトしてもよい。

527 :デフォルトの名無しさん:02/05/28 07:57
>>518
書込み禁止にしないオプションがあるよ

528 :518:02/05/28 09:11
>>522
>>527
見落としてました、どうもありがとう( ● ´ ー ` ● )

529 :デフォルトの名無しさん:02/05/28 09:43
誰か WinCVS を使い倒すスレ立ててくれ。

530 :デフォルトの名無しさん:02/05/28 09:43
アドベンチャーゲームのようなシステムを作ろうと思っているのですが、
DirectXを使わずにFormをフルスクリーンにする方法が分からず困っています。
EnumDisplaySettings, ChangeDisplaySettingsとSetWindowPosなどで
出来るかと思ったのですが、画面の解像度は切り替えることが出来ても
Formがフルスクリーンになりません。
どのようにしたらフルスクリーンにできますか?

531 :デフォルトの名無しさん:02/05/28 09:46
>>530
BorderStyle := bsNone;
WindowState := wsMaximized;

にすればフルスクリーンになります。

532 :デフォルトの名無しさん:02/05/28 09:58
>>531
ありがとうございます。さっそく試してほぼ思い通りの動作ができましたが、
フルスクリーンにしたときだけMainMenuを消すためには、
全てのMenuItemに対してVisibleをFalseにするしかないでしょうか。

533 :デフォルトの名無しさん:02/05/28 10:01
>>532
メインメニューの名前が MainMenu1 とした場合、

消したい時、
Self.MainMenu := nil;

表示したい時、
Self.MainMenu := MainMenu1;

534 :デフォルトの名無しさん:02/05/28 10:14
>>533
そうか、nil入れれば消えるんですね。ありがとうございました。

535 :デフォルトの名無しさん:02/05/28 10:30
アドベンチャーゲームができるには先が長そうだな・・・
まぁ、がんがれ (´ー`)y-~~~

536 :デフォルトの名無しさん:02/05/28 10:33
nil って何?
nullと同じ意味?


537 :デフォルトの名無しさん:02/05/28 10:41
>>536 Cから入った人?
なら ttp://hp.vector.co.jp/authors/VA014436/prg_memo/delphi/c_d.html


538 :デフォルトの名無しさん:02/05/28 10:51
Caption := IntToHex( Integer(Pointer(nil)) ,8);

539 :デフォルトの名無しさん:02/05/28 12:41
先ほどフルスクリーンについて質問した者ですが、
解像度の変更で分からないことがあります。
元の解像度に戻すとき、
ChangeDisplaySettings( nil, 0);
とすると、「変数実パラメータと変数仮パラメータとは同一の型でなければなりません」
と言われます。
それで、
ChangeDisplaySettings( DEVMODE(nil), 0);

type PDEVMODE=^DEVMODE
ChangeDisplaySettings(PDEVMODE(nil),0);
などを試したのですが、どれもうまくいきません。
nilを渡すにはどうすればいいでしょうか。

また、EnumDisplaySettingsの2番目の引数に
ENUM_CURRENT_SETTINGSが渡せない(定義されていないと言われる)のですが、
この方法で現在の設定を取得することはできないのでしょうか。

>>535
がんがります

540 :無責任だが:02/05/28 12:54
>>539
 第一パラメータは参照を渡しますから
ChangeDisplaySettings(PDEVMODE(nil)^ , 0);

でも、解像度の変更はそれでやらない方がいいよ。
だってディスクトップに整列されたアイコン崩れてしまうでしょ?

541 :デフォルトの名無しさん:02/05/28 13:02
>>540
自分がデスクトップのアイコンを自動整列にしてるんで、その辺無頓着でした。
ただ、そういうのが気になる人ならアイコン整列用ソフト入れてるんじゃないかとも
思います。
…それ以前に解像度変更するための他の方法知らなかったりしますが。
過去ログで昔見かけたような気がするので検索してみようと思います。

542 :無責任だが:02/05/28 13:14
解像度を変更しなくとも、アドベンチャーゲームなら 640x480のオフスクリーン画面を
画面改造度にあわせて拡大して描画した方が良いのでは?

というような意味です。 


543 :デフォルトの名無しさん:02/05/28 13:25
>>541
・遅くなる
・画像が多少汚くなる
この2点が気にならない程度に収まるならそれでもいいんですけど…
実際にその方法でやってるゲームを見たことが無いので、
やはり何か問題があるのではないでしょうか。
ただ、その方法もアリだとは思うので、いちおう実験してみようと思います。
問題なければその方法でやるかも。

544 :デフォルトの名無しさん:02/05/28 13:37
アクションゲームなら、それほど画面の更新頻度も高くないのだから
時間がかかるけど綺麗な拡大ルーチンを使って
例 ttp://hp.vector.co.jp/authors/VA015850/program.html

バックグランドで必要なビットマップを作ればいいのでは?
それに、解像度の高い方が文字はずっと読みやすいし

545 :デフォルトの名無しさん:02/05/28 13:49
http://game.2ch.net/test/read.cgi/gamedev/1013170036/236-237

546 :543:02/05/28 14:16
とりあえず次のレス書く前に>>545のスレを熟読しようと思いました。

547 :デフォルトの名無しさん:02/05/29 02:26
スレ違いでごめん。
CVSの本を見てたら、開発側の人たちがゴタゴタしているようなんだけど、
今は大丈夫なの?


548 :デフォルトの名無しさん:02/05/29 14:37
DirectXで申し訳ないのですが、
DXImageList1.Items.Items[0].Draw(DXDraw1.Surface,100,100,0);
と、本当は書きたいのに、なぜか何も描画されず、
DXDraw1.Surface.Canvas.Draw(100,100,DXImageList1.Items.Items[0].Picture.Graphic);
と、この一行のみ置き換えたら描画されるようになりました。
しかし、色抜きをしたいので是非もとの方法を使いたいと思っています。
どうしてしたの方法では描画でき、上の方法では描画できないのでしょうか?
わからない方教えてください。

549 :デフォルトの名無しさん:02/05/29 15:06
それDirectX?
何かのラッパーライブラリ?

550 :通報しますた。:02/05/29 17:46
Object Pascal 言語ガイドをHTML形式のヘルプにしてみました。
それほど使う機会はないと思われますが、とりあえずどうぞ。
リッチテキスト形式に比べ、特に使いやすいわけではありませんが、
スタイルシートを使うことで、お好みの表示に設定できます。
(注意:このヘルプは2ちゃんねら仕様になっています)
ttp://www36.tok2.com/home/morgue36/OPLG.LZH


551 :デフォルトの名無しさん:02/05/29 18:10
ヽ(`Д´)ノ戻るよ!ウワァァン

552 :デフォルトの名無しさん:02/05/29 18:19
>>550
使いやすい。サンクス。

553 :デフォルトの名無しさん:02/05/29 18:24
windowsのエクスプローラの左側のようにフォルダを表示するコンポーネント
どっかにないですか?

554 :デフォルトの名無しさん:02/05/29 18:27
Del6使え

555 :デフォルトの名無しさん:02/05/29 18:50
Del5じゃ無理?

556 :デフォルトの名無しさん:02/05/29 19:00
>>553
SHBrowseForFolder ではダメ? 使い方は小さな実行ファイルを作ろうスレに


557 :デフォルトの名無しさん:02/05/29 19:14
>>556
それはモーダルダイアログじゃ?

558 :デフォルトの名無しさん:02/05/29 19:18
>>548 わからない方教えてください。

ぜんぜんわかりませんが。

559 :デフォルトの名無しさん:02/05/29 19:19
>556 ごめんなさい15レス目あたりでチンプンカンプン>小さな実行スレ

560 :デフォルトの名無しさん:02/05/29 19:26
僕も全然わかりません

561 :デフォルトの名無しさん:02/05/29 19:35
わたしも分かりません。

562 :デフォルトの名無しさん:02/05/29 19:37
拙者も如何とも解せぬなり。

563 :デフォルトの名無しさん:02/05/29 19:37
よかったね。

564 :(@´ー`@):02/05/29 19:46
(@´ー`@)なっちもわからんべさ。

565 :ひろゆき:02/05/29 19:56
おいらもサッパリわかりませんです。。。

566 :デフォルトの名無しさん:02/05/29 21:05
ファイルをゴミ箱に移すときSHFileOperationをつかいますが、
windowsの設定でゴミ箱に移すとき確認するようにしてる場合、
SHFileOperationが実行されると「ゴミ箱に移しますか?」と出るのですが
これをwindowsの設定関係なしで出ないようにする方法か、出ても
ユーザが「はい」「いいえ」のどちらを選択したか知る方法はないでしょうか?

567 :デフォルトの名無しさん:02/05/29 21:19
FOF_NOCONFIRMATION指定しても駄目?

568 :566:02/05/29 21:20
FOF_NOCONFIRMATIONをflagに追加すれば全て許可されると分かりました
申し訳ない..

569 :デフォルトの名無しさん:02/05/29 21:27
>>553
Shell Component Library

570 :デフォルトの名無しさん:02/05/29 23:28
>550
いただいたよ.サンクスコ.
てか、これ全部自分で打ったの?がんばったねえ.

571 :デフォルトの名無しさん:02/05/29 23:43
>>553 有難うございます!! 恐らく探していたのはこれのような気がします!
...
......リンク切れてた...

572 :550:02/05/30 07:52
ヘルプファイルですが、いくつかミスってるので、折を見て修正します。

本当はプログラマーズガイドをやろうと思ったのですが、
目次を眺めただけで圧倒されてあきらめてしまいました・・・
Borlandは一生WinHelpのままなのだろうか?


573 :548:02/05/30 09:33
結局出来なかったのですが大変参考になりました。
ありがとうございました。

574 :343:02/05/30 11:38
ヘルプミーです!
間違えてDelphiをゴミ箱に捨ててから、元に戻したら、
コンポーネントパレットがFramesとSamplesタグの物しかなくなってしまいました!
どうしたら元に戻りますか?
コンポーネントをインストールとかですかね、やり方わからないんですが。
詳しい方々、どうか助けてください。

575 :デフォルトの名無しさん:02/05/30 12:08
>>574
そーゆーときゃ素直に再インストールしようよ

576 :343:02/05/30 12:14
>>575
そうですか…DLすると4時間くらいかかるので、かなり鬱です。。。
ま、仕方ないか…。
ありがとうございました。

577 :デフォルトの名無しさん:02/05/30 12:20
>>576 次にダウンロードしたら、ダウンロードした時のインストーラは残しておけよ

ついでに忠告しとくと、レジストリもD6の部分のバックアップを取っとけ
ただし、どうやったらいい? とか聞くようなレベルならそれは辞めとけ!

578 :デフォルトの名無しさん:02/05/30 12:20
捨ててみたけど再現しないぞ(゚Д゚) ゴルァ
パッケージ一覧のチェックが外れてるか、パッケージ一覧から消えてるか、
パレットの設定で非表示になってるとか、そもそもbplファイルを捨てて戻してないとか、
とかとか・・・

579 :343:02/05/30 12:40
>>578
もう消しちゃいましたけど、いつもゴミ箱は清潔に保っているので、bplがゴミ箱に残っていた事は無いです。
これから寝るんで、その間にDLが終わっている事でしょう。

580 :デフォルトの名無しさん:02/05/30 12:43
昼寝か…

581 :通りすがり:02/05/30 14:15
>>424
>>429
参考にさせていただきました。

この、ソースに、'\'記号対策を
盛り込むとしたら、どんな感じ
にすればいいでしょうか?

試してみたところ、名や山、小など
の文字がある部分で、化けるので
バイナリエディタで確認すると
\が入っていたので。


582 :デフォルトの名無しさん:02/05/30 14:47
function LoadUniBi(const titleName: string; nagasa1: Longint): string;
var
wk:string;
Sz, n,m: integer;
begin
Result := '';
sz := length(titleName);
 SetLength(wk,sz);
 try
  begin
   n := 0;    m := 0;
   while n < sz do
   begin
   if (titleName[n+1]='\')and(titleName[n+2])='\') then begin Inc(n);continue;end;
    wk[m+1+0] := titleName[n+1+1];
    wk[m+1+1] := titleName[n+1 ] ;
    Inc(n, 2); Inc(m, 2);
   end;
  Result := WideCharToString(PWideChar(PChar(wk)+2));//先頭2byteをカット
  end;
 except
  raise Exception.Create('メモリを確保出来ませんでした.');
 end;
end;

583 :デフォルトの名無しさん:02/05/30 16:09
Delphiにて正規表現コンポーネントを作成中ですが需要ありますか?

584 :デフォルトの名無しさん:02/05/30 16:21
既にそこそこ良いのがあるのでどうだろ?
ttp://homepage1.nifty.com/bmonkey/delphi/delphi.html


585 :デフォルトの名無しさん:02/05/30 16:51
>>583
Perl互換で外部DLL必要無しなら需要あります。
awk互換なら>>584のがいい出来なので需要ありません。

586 :デフォルトの名無しさん:02/05/30 16:59
>>582 ありがとうございます。 試させていただきました。 山や小などは良いのですが 輸や名、館などはまだ化けました 作は屏に、木は杜に、酒は岑に化け ました。 一筋縄では逝かないってことでしょうか。

587 :デフォルトの名無しさん:02/05/30 17:31
>>586 じゃ、文字化するコードの16進ダンプを取ってみて


588 :デフォルトの名無しさん:02/05/30 17:38
>>583
名前が2ちゃんねる風ならぜひホスイ

589 :586:02/05/30 18:42
>>587

文字化けは、たとえば
元の文字列を
横浜作業所(現場名)とすると
16進は
FE FF 6A 2A 6D 5C 5C 4F 5C 5C 69 6D 62 40 FF 08 73 FE 58 34 54 5C 72 FF 09

で、化け方は
横浜屏???????)
16進は
89 A1 95 6C 9B A0 3F 3F 3F 3F 3F 3F 3F 81

こんな感じです。


590 :586:02/05/30 18:52
他の文字の16進は
木は67 5C
輸は 5C 8F
酒は5C 91

こんな感じでした。

591 :デフォルトの名無しさん:02/05/30 19:27
>>583
TComponentを継承しておらずVCL非依存ならほすぃ

592 :デフォルトの名無しさん:02/05/30 19:49
>>591
同意。


593 :デフォルトの名無しさん:02/05/30 20:13
どうやら文字2バイト目の5Cを忘れてたみたい こんな感じでどう?

function LoadUniBi(const titleName: string; nagasa1: Longint): string;
var
wk:string;
Sz, n,m: integer;
begin
Result := '';
sz := length(titleName);
 SetLength(wk,sz);
 try
  begin
   n := 0;    m := 0;
   while n < sz do
   begin
   if (titleName[n+1]='\')and(titleName[n+2])='\') then begin Inc(n);continue;end;
    wk[m+1+0] := titleName[n+1+1];
    wk[m+1+1] := titleName[n+1 ] ;
   if (titleName[n+2]='\')and(titleName[n+3])='\') then Inc(n);
    Inc(n, 2); Inc(m, 2);
   end;
    wk[m+1+0] := 0;
    wk[m+1+1] := 0;
  Result := WideCharToString(PWideChar(PChar(wk)+2));//先頭2byteをカット
  end;
 except
  raise Exception.Create('何かエラー');
 end;
end;


594 :Del子:02/05/30 22:48
書式付きテキストと画像を表示したいのですが、とりあえず下のような方法を思いつきました。

 ・RichEdit2.0 のラッパーコンポーネント(TRichEdit98 など)を利用する
 ・IE コンポーネントを利用する
 ・独自コンポーネントを作成する

Delphi 6 Personal の環境で一番簡単に実現できる方法はどれでしょうか?
また、何か他によいコンポーネントなどをご存じでしたら、教えてください。

595 :デフォルトの名無しさん:02/05/30 22:57
>>550
ちらっと見たけど凄くよさげ。今度じっくり読ませてもらうよー
  ありがとう

596 :デフォルトの名無しさん:02/05/30 23:06
>>594
書式付きテキストってRichTextだよね?
だったらTRichEditだね。
IEはHTMLだから関係ないよ。

597 :Del子:02/05/30 23:11
>>596
レスありがとうございます!

> 書式付きテキストってRichTextだよね?

言葉足らずで申し訳ありません・・・
フォントの書体や色などの装飾を指定して表示できればフォーマットはなんでもいいのです。
RichEdit が簡単そうなのですが、文章中に画像を表示する方法がネックになっていて、困っています。
何かよい方法はないでしょうか?

598 :デフォルトの名無しさん:02/05/30 23:13
>>597
Labelでもいいわけだ。

599 :デフォルトの名無しさん:02/05/30 23:15
>>596
頭弱そう・・・

600 :Del子:02/05/30 23:16
>>598
部分的に文字の色を変えたりしたいので、Labelはちょっと・・・

601 :デフォルトの名無しさん:02/05/30 23:17
HTMLにしる

602 :Del子:02/05/30 23:23
>>601
HTML を表示するには IE コンポーネントを利用することになりそうですが、
Delphi で IE コンポーネントを利用するとメモリリークすると聞いたのですが、本当ですか?

他の軽いコントロールでHTMLを表示できれば一番いいんですけど・・・

603 :デフォルトの名無しさん:02/05/30 23:26
Σ(゚Д゚ )y-~~ ソウナノ!?

604 :デフォルトの名無しさん:02/05/30 23:28
>他の軽いコントロール
自作しる!

605 :Del子:02/05/30 23:47
(ノД`。)

606 :デフォルトの名無しさん:02/05/31 00:09
>Delphi 6 Personal の環境で一番簡単に実現できる方法はどれでしょうか?
答え:諦める

607 :デフォルトの名無しさん:02/05/31 01:25
>>599
なんで?書式付きテキストといったらリッチテキストが最初に思い浮かぶけど。

608 :デフォルトの名無しさん:02/05/31 01:27
> IEはHTMLだから関係ないよ。
ここの事だと予想。

609 :デフォルトの名無しさん:02/05/31 01:29
>>602
RichEditとブラウザなら、ブラウザの方が表示速度は断然速い。
メモリリークの話はしらないけど、Windowsに付いてるモニタツール
使ってメモリを解放してるかしれ調べればよい。

610 :デフォルトの名無しさん:02/05/31 01:33
>>608
なんでそこがひっかかるのか全く分からん。
書式付きテキスト=リッチテキストを表示するならRichEditだから、
IEコンポーネントを使っても意味がない、IEはHTMLを表示するために使うべき
と言う意味なんだけど。

611 :デフォルトの名無しさん:02/05/31 01:35
RichEditやIEコンポが嫌なら自前でTextOutするコンポ作れよ。

612 :デフォルトの名無しさん:02/05/31 02:03
>>610
あのな、HTMLってのは書式付きテキストを包括してるっつー話なんだよ。

613 :デフォルトの名無しさん:02/05/31 03:17
>>609

>RichEditとブラウザなら、ブラウザの方が表示速度は断然速い。

そうなの?WinHelp>>>HTMLHelpなので、RichEditのほうが速いと思てたヨ。

614 :Delフサギコ ◆zE1iiRdQ :02/05/31 08:15
            _____________
    ∧,,∧    / RichEditの方が早いに
  _ ミ,,゚Д゚彡_<  きまっとる。。。と思われなんだけど。。。
.=| |==U==U=| |= \
 | |@ミ  ミ .| |     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 | | ∪''∪ | |
 | |      | |

615 :デフォルトの名無しさん:02/05/31 09:06
リッチエディットは埋込OLEを使えば絵でも埋め込めるそうですが
Delphiから使うにはそれなりの努力が必要なようです

616 :デフォルトの名無しさん:02/05/31 09:52
>>613
RTFを独自形式にコンパイルしてるからでしょ。


617 :586:02/05/31 12:32
>>593
ありがとうございます。
ただ
    wk[m+1+0] := 0;
    wk[m+1+1] := 0;
この部分で
Charとintegerには互換性が
ありません。
と出てしまうのですが。

618 :読まずにカキコ:02/05/31 12:35
wk[m+1+0]:=#0かな

619 :デフォルトの名無しさん:02/05/31 12:50
とりあえず、ニフテイのTRichEditに OLE 機能を追加するから
http://www.nifty.ne.jp/forum/fdelphi/samples/00383.html


620 :586:02/05/31 13:46
>>618
コンパイル通りました。

しかし、実行させると
ページ違反が出てしまうのですが。



621 :デフォルトの名無しさん:02/05/31 14:00
>>582
>>593
それから
多かった')'は取りました。
(titleName[n+2])='\')を
(titleName[n+2]='\')
としてみました。



622 :デフォルトの名無しさん:02/05/31 14:01
>>620
2つめの wk[m+1+1] := 0; を消すとか  SetLength(wk,sz+2);  とか 
もう少し自分で考えてみるとか


623 :デフォルトの名無しさん:02/05/31 14:33
>>622
ふたつとも、試させていただきましたが、やはり、ページ違反が出て
しまいました。

624 :デフォルトの名無しさん:02/05/31 15:02
>>622
ヘルプにWideCharToStrVar手続きがあったので、

Result := WideCharToString(PWideChar(PChar(wk)+2));//先頭2byteをカット
の部分を、
WideCharToStrVar(PWideChar(PChar(wk)+2),dest1);
Result := dest1;
としてみたのですが
ページ違反は変わりませんでした。

どのように直していけば良いのでしょうか?

625 :デフォルトの名無しさん:02/05/31 15:16
>>624
エンコード方式が良く判らない
//   横  浜   作   業  所  (   現 場  名   )
//   6A2A 6D5C  4F5C  696D 6240 0028 73FE 5834 540D  0029
//FE FF 6A2A 6D5C5C 4F5C5C 696D 6240 FF08 73FE 5834 545C72 FF09

\ (#$5C)が2つ入ると \ 一つという約束の他にも \が絡んだ別の規則がありそう

それと#0が入った場合の対策もある様子


626 :デフォルトの名無しさん:02/05/31 15:24
という事で、どういうエンコード名なのかそれだけ調べてみて

627 :デフォルトの名無しさん:02/05/31 15:33
Delphiのフォームファイル .dfm を Delphiで作ったプログラムから読込むと

 object Label1: TLabel
  Left = 12
  Top = 12
  Width = 38
  Height = 12
  Caption = #12418#12376#12418#12376
 end

こんな感じで日本語の部分が #〜のように変換されています、これを
漢字として表示させるにはどのようにいたすればよろしいでしょうか?

628 :デフォルトの名無しさん:02/05/31 15:36
>>627
フォントを変更してみたらどだろ

629 :627:02/05/31 15:42
>>628
早々にお返事ありがとうございます。
それは、ちょっと違うと思うのですが・・・。困った・・・。説明が下手で申し訳ありません。

1.
Delphiで新規にフォームを作成して、ラベルでも貼り付けてから
Captionへ'日本語'とか設定して保存して下さい。

2.
保存した Form1.dfm を メモ帳等で開いても同様に日本語が #nnnnnに変換されて
いることが確認できると思います。

これを メモ帳でなくて、自分で作成したプログラムから開いて#nnnnnではなく、
日本語として見たいと言うことなのです。


630 :デフォルトの名無しさん:02/05/31 15:47
>>626
ありがとうございます。

utf-16のbig endianの様です。

631 :デフォルトの名無しさん:02/05/31 15:50
>>629
ついでに、オマエもエンコード名調べろや

632 :Delフサギコ ◆zE1iiRdQ :02/05/31 15:51
ミ ゚Д゚彡

テキストで以下のようなものを
XXX.regと名前をつけて保存、実行というか[結合]をしてミレ


----
REGEDIT4

[HKEY_CURRENT_USER\Software\Borland\Delphi\6.0\FileFormat]
"DFMFormat"=dword:00000000
----


633 :Delフサギコ ◆zE1iiRdQ :02/05/31 15:55
ミ ゚Д゚彡

あと、純粋に変換したいなら
ここのソースみるといいんじゃない?>>629
http://homepage1.nifty.com/wizman/app/bt5/index.html

634 :デフォルトの名無しさん:02/05/31 15:59
>>630
いや、だから UTF-16を8bit文字に収まるようにエンコードしてるようだけど
そのエンコード方式を調べてみてって意味です。

635 :デフォルトの名無しさん:02/05/31 16:06
>>632-633
ありがとうございました、解決しそうです


636 :デフォルトの名無しさん:02/05/31 16:14
>>634
ソースを良く見て、何をしてるのか読みとって下さいって事ですね。

うーん、難しそう。


637 :デフォルトの名無しさん:02/05/31 16:20
>>634
 >>625 を見る限りは

UTF16に変換して、
上位バイトが 00 なら $0029->$FF09 $0028->$FF08

そして、C言語の \ エスケープを加えたようです


たとえば $002D はどうなる? というのが判らないのです。




638 :無責任だが:02/05/31 17:00
とりあえず >>625 だけは変換出来る事を確認
(なお WideStringはAnsiStringに代入すれば自動的にUnicode->ShiftJisされます)

function WEcvt(const s:String): WideString;
var Sz, n,m: integer;
var Endian:boolean;
var p:pChar;
function getb:Char;
var w:string;
begin
 Result:=p^;
 if Result=#0 then exit;
 inc(p);
 if Result='\' then begin
  case p^ of
   'b': Result:=#$08;
   'a': Result:=#$07;
   'f': Result:=#$0C;
   'r': Result:=#$0D;
   't': Result:=#$09;
   'v': Result:=#$0B;
   'n': Result:=#13;
   end;
  inc(p);
  end;
end;
function getw:WideChar;
var c1,c2:Char;
begin
Result:=#0;
 c1:=getb;if c1=#0 then exit;
 c2:=getb;if c2=#0 then exit;
 if Endian then Result:=WideChar((ord(c1) shl 8)+ord(c2))
      else Result:=WideChar((ord(c2) shl 8)+ord(c1));
 if Result=#$FFFE then begin Endian:=not Endian;
 Result:=#$FEFF;
 end;
end;
var i:Integer;
var w:WideChar;
begin
 i:=0;
 Endian:=false;
 p:=PChar(s);
 Setlength(Result,Length(s));
 repeat
 w:=getw;
 if w=#$FEFF then continue;
  inc(i);
  Result[i]:=w;
 until w=#0;
SetLength(Result,i);
end;

639 :Del子:02/05/31 17:56
>>619
ありがとうございます!
HTML は便利なのですが、IE コンポーネントの評判があまりよくないようなので、
とりあえず TRichEdit に OLE 機能を追加したコンポーネントを作成してみたいです。

Delphi の RichEdit は 1.0(?) らしいので ついでに RichEdit2.0 に対応させたいのですが、
どこかに適当なサンプルなどはないでしょうか?
RichEdit98 のソースを見たのですが、膨大すぎてさっぱり分かりませんでした・・・
なにしろ Delphi 使うの初めてなので (ノД`。)

640 :デフォルトの名無しさん:02/05/31 19:44
>>638
ありがとうございます。

しかし、まだ一部の文字で失敗しています。

東神田一丁目ビル(現場名)
FE FF 67 71 79 5E 75 30 4E 00 4E 01 76 EE 30 D3 30 EB FF 08 73 FE 58 34 54 5C 72 FF 09

東神田
93 8C 90 5F 93 63
と'一'のところで切れました。

それから、
鹿児島市立図書館(現場名)
FE FF 9E 7F 51 50 5C 5C F6 5E 02 7A CB 56 F3 66 F8 99 5C 28 FF 08 73 FE 58 34 54 5C 72 FF 09

鹿児島市立図書? (現場名)
8E AD 8E 99 93 87 8E 73 97 A7 90 7D 8F 91 3F 81 69 8C BB 8F EA 96 BC 81 6A
となり、館の文字が化けました。

また、半角英字が、含まれると
その文字含め、以降が切り捨てられました。

という状態でした。

641 :ななし:02/05/31 20:10

はじめまして。

(1) Delphiでは、VBのようなシステム予約定数はないのでしょうか。
  (VBの例)
  vbCrLf → 改行復帰 (文字コード定数)
  vbKeyF1 → [F1]キー (キーコード定数)
  vbBlack → 黒    (色定数)

(2) Delphiでは、複数行まとめてのインデント変更はできないのでしょうか?
  (VBのIDEの[Tab]/[Shift] + [Tab] に相当する機能)

(3) VBでは、定数の配列は作れません(変数として生成することは当然可能)が、
  Delphiでは可能でしょうか?

(4) VBでは、オブジェクトの「型」名のプリフィクスを付ける命名(いわゆる、
  「ハンガリアンスタイル」)が推奨されますが、Delphiで推奨される命名
  規約は何かありますか?
  (この質問、袋叩きにされそうで、ちょっとコワイ・・・)

以上、よろしくお願い致します。m(_ _)m


642 :デフォルトの名無しさん:02/05/31 20:19
>>641
(1) ある
(2) できる
(3) できる
(4) VCLに合わせる感じにはなってる

643 :デフォルトの名無しさん:02/05/31 20:35
>>641
ヘルプを調べれば全て解決します。

644 :無責任だが:02/05/31 20:52
>>640 その 東神田一丁目ビル(現場名) と鹿児島市立図書館(現場名) に対応しました
しかし、これはどういう変換なんでしょう? \エスケープかと思ったら #0を平気で含んでるし


function WEcvt(const s: AnsiString): WideString;
var Sz, n: integer;
var Endian:boolean;
var p:pChar;
function getb:Char;
begin
 Result:=p^;
 if n>=Sz then
  exit;
 inc(p); inc(n);
 if Result='\' then begin
   Result:=p^;
  case p^ of
   'b': Result:=#$08;
   'a': Result:=#$07;
   'f': Result:=#$0C;
   'r': Result:=#$0D;
   't': Result:=#$09;
   'v': Result:=#$0B;
   'n': Result:=#13;
   end;
  inc(p);inc(n);
  end;
end;
function getw:WideChar;
var c1,c2:Char;
begin
 c1:=getb; c2:=getb;
 if Endian then Result:=WideChar((ord(c1) shl 8)+ord(c2))
      else Result:=WideChar((ord(c2) shl 8)+ord(c1));
 if Result=#$FFFE then begin Endian:=not Endian;
 Result:=#$FEFF;
 end;
end;
var i:Integer;
var w:WideChar;
begin
 Sz:=Length(s);
 i:=0;
 n:=0;
 Endian:=false;
 p:=PChar(s);
 Setlength(Result,Sz);
 repeat
 w:=getw;
 if w=#$FEFF then continue;
  inc(i);
  Result[i]:=w;
 until w=#0;
 SetLength(Result,i);
end;

645 :デフォルトの名無しさん:02/05/31 22:39
プロシージャや関数から途中で抜けるにはどうしたらいいですか?
C言語のreturnやBASICのexit subみたいな動作です。


646 :デフォルトの名無しさん:02/05/31 22:45
>>645
Exit;

ヘルプ読め!

647 :デフォルトの名無しさん:02/05/31 22:50
645が関数でExitを使ったとき
Resultへの代入を忘れてまた質問してくるのに500ウォン

648 :デフォルトの名無しさん:02/05/31 23:37
>>641
(1)
vbCrLf: Sockets.pasかIBUtils.pasにCRLFが定義されている
vbKeyF1: VK_F1
vbBlack: clBlack

(2)
デフォルトの配置だとCtrl+Shift+I, Ctrl+Shift+U

(3)
ヘルプの「配列型定数」参照

(4)
VCLのソースを参照。


649 :デフォルトの名無しさん:02/05/31 23:44
>>648
sLineBreak じゃだめなの?

650 :デフォルトの名無しさん:02/05/31 23:46
>>Del子
つーか、いきなり大風呂敷広げてricheditだの言ってるくらいなら、
メモ帳あたりから始めろって思うのはオレだけ?
「初心者だから分からないんです」って堂々と、ここでほざくことに
なんの意味があるの?
構って系の人ですか?

651 :デフォルトの名無しさん:02/05/31 23:49
  ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ( ´∀`)<. Delモナーがどんな厨房疑問でもやさしく答えます。
 (    ) .| Delモナーは時に私であり、時には別の人。
 | | |  | 他のスレに書き込んで罵倒される前に、まずここで質問しよう。
 (__)_)  \_________________________


652 :デフォルトの名無しさん:02/05/31 23:50
>>650はなんでそんな熱くなってるの?って思うの俺だけ?

653 :650:02/05/31 23:55
>>652
熱くなってるように見える?ふーん。

654 :デフォルトの名無しさん:02/05/31 23:57
ウワー ダサ・・・

655 :デフォルトの名無しさん:02/06/01 00:00
とりあえず、どうでもいい書き込みはsageろよ禿

656 :デフォルトの名無しさん:02/06/01 00:04
(4)
VCLを見た感じ

メンバ変数は全部F〜、ローカル変数はプレフィクスなしの分かりやすい名前、
列挙型にはプレフィクスつけるって感じ?

コンポーネントの名前ってどうしてる?
Del4プログラミング技法には、Label→lbl、Edit→edって感じで
プレフィクスつけるのが標準みたいに書いてあって、俺ずっとそうやってるけど。
lblHogeとか、pnlHogeとか。

だから、Button1とかのまま書いてる人のソースってすげえ読みづらい・・・。

657 :デフォルトの名無しさん:02/06/01 00:05
>>649
sLineBreak の方が、プラットフォームに依存しないからなおよい。
標準で System に定義されてるしね。

でも確実に CR + LF にしたい場合には #13#10 が無難。

658 :デフォルトの名無しさん:02/06/01 00:07
>>656
香ばしく同意。

659 :デフォルトの名無しさん:02/06/01 00:07
GExpertsのソースだとFを大文字じゃなくて小文字で書いていて(fHandle←みたいな感じ)
わりと見やすいと思った。

660 :デフォルトの名無しさん:02/06/01 00:09
コンポーネントにプレフィックスは付けたことないなぁ。
みんな付けてるのだろうか。
lblHogeならHogeLabelにするな。

661 :デフォルトの名無しさん:02/06/01 00:10
>>644 \エスケープかと思ったら #0を平気で含んでるし

まえの話のながれからすると pdf ファイルの文字列だと思われ。
#0 はなくて、ファイルイメージは '0' という文字のアスキー
コード $30 が入っていると思われ

pdf ファイルの仕様書に、文字エンコ―ディングときの backslash の
エスケープ文字としての使用法にすべて書いてある。

function pdfStrToStr(s:string):string;
var
 ss:WideString;
 rs,s1,s2:string;
 i:integer;
begin
 i := 1;rs := '';ss := '';
 while i <= (Length(s) div 2) do begin
  s1 := UpperCase(s[i*2-1]+s[i*2]);
  if s1 = '5C' then begin
   s2 := UpperCase(s[i*2+1]+s[i*2+2]);
   if s2 = '5C' then begin
    rs := rs+'5C';
    inc(i);
   end else
   if StrToInt('$'+S2) > $65 then begin
    rs := rs+IntToHex(StrToInt('$'+S2)-$65,2);
    inc(i);
   end;
  end else
   rs := rs+s1;
  inc(i);
 end;
 for i := 1 to (Length(rs) div 4) do
  ss := ss + WideChar(StrToInt('$'+rs[i*4-3]+rs[i*4-2]+rs[i*4-1]+rs[i*4]));
 result := ss;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 s:string;
begin
 //s := '9E7F51505C5CF65E027ACB56F366F8995C28FF0873FE5834545C72FF09';
 s := '6771795E75304E004E0176EE30D330EBFF0873FE5834545C72FF09';
 s := pdfStrToStr(s);
 Memo1.Lines.Add(s);
end;


662 :デフォルトの名無しさん:02/06/01 00:11
私もコンポーネントにはプレフィックス付けますね。
Edit→edt だけど。

663 :デフォルトの名無しさん:02/06/01 00:54
俺はつけないなぁ。
プレフィックスは列挙型につけるだけ。

664 :デフォルトの名無しさん:02/06/01 01:27
変数名は間違えればコンパイラが怒ってくれるので付けない
列挙型には付ける。コンポは名前が重複しやすいので、付ける。
"住所"というキャプションのラベルと住所の入力欄なら
edt_Addressと lbl_Address とか。


665 :デフォルトの名無しさん:02/06/01 02:16
命名法の議論は不毛なり ← これ定説

666 :デフォルトの名無しさん:02/06/01 02:20
>>665
別に議論じゃないと思うけど。
各々が「自分はこうしてる」って言ってるだけ。

667 :デフォルトの名無しさん:02/06/01 02:39
>>665-666
命名法の議論は不毛なり ← これ定説
   ↓
命名法の議論は不毛な争いに発展することが多い ← これ定説



668 :いまさら:02/06/01 02:50
あれはサイババの勝手なんですよー。定説ですよー← これ定説

669 :当たって砕けろ:02/06/01 03:07
Delphi挑戦します。目標シミュレーションゲームです。
スキルは0。鬱。
とりあえず絵を表示させてキー入力で動かしてみたいと思います。
スレ違いでしたらすいません。

670 :デフォルトの名無しさん:02/06/01 03:13
>>669
おうっ、頑張れや。途中でやめるなよ。
まぁ質問とかあったら、↓のスレを再利用すればいいと思う。

Delphiでアクションゲームが作りたい!!
http://pc.2ch.net/test/read.cgi/tech/1019654975/


671 :当たって砕けろ:02/06/01 03:19
>>670
ありがとうございます。
俺RPGツクールやってたんですが、いろいろ兆戦したいということで
Delphiいじってみようと。

それではそのスレにこっそり移ります。

672 :VB→Delphiです:02/06/01 03:26
VBには、テキストファイル(中身はCSV)をデータベースとして接続できる
みたいですが、DelphiはCSVをデータベースとして、SQLを利用するみたいな
事は出来るんでしょうか???
もしかしたら、超恥ずかしい質問をしているのかもしれませんけど…
今、EXCELで作成したどでかいCSVファイルがあって、VBAだとめたくそに重く
VBでオンメモリで全部読み込んでしまって、検索は二分木法とか、1番目から
シーケンシャルに比較していくという、旧タイプのコードを書いてたんです
が…
時代遅れが!と笑わず、このCSVをDelphiでDB的に扱うにはどうしたらいい
ものか、お知恵を拝借させて下さい。

673 :デフォルトの名無しさん:02/06/01 04:44
DELPHIで作ったアプリって最小化の動作がなんかおかしいよ。
あほなの?

674 :デフォルトの名無しさん:02/06/01 06:29
おまえがね

675 :無責任だが:02/06/01 07:28
>>672
1、CSVファイルをBDEに取り込む・・・・・・・・・SQLも使用可
2、CSVのまま扱うdbコンポーネントを探す・・SQLは無理
3、ExcelをADOで・・・・遅いしVBAがマシかも

676 :デフォルトの名無しさん:02/06/01 07:36
>>673
俺のVCLなしで作ったアプリ見ても同じことが言えるかな(ゲラゲラ

677 :デフォルトの名無しさん:02/06/01 08:39
>>676
Delphiでそんなもん作ってる時点でDQN。
素直にC使えや。

678 :デフォルトの名無しさん:02/06/01 08:48
APIだけで書くならどの言語だって同じように手間かかる。
なら別に好きな言語で書いていいやん。
そのせいで誰かが迷惑するんでなきゃね。

679 :デフォルトの名無しさん:02/06/01 09:09
>>677
今時、CでOOPできるかよ(ゲラゲラ

680 :デフォルトの名無しさん:02/06/01 09:31
各スレで「〜してる時点でDQN」って書いてる人は同一人物とおもわれ


681 :デフォルトの名無しさん:02/06/01 10:42
人物特定したがってる時点でDON

682 :アタシは677だけ。:02/06/01 10:49
>>680
しかも間違ってる時点でDQN

683 :デフォルトの名無しさん:02/06/01 11:23
>>679
過去から永劫未来まで無理だと思うのだが。

    だ が そ れ が い い 。

684 :デフォルトの名無しさん:02/06/01 12:15
>>679
OOP=クラス

って言うのも早計だけどな。

685 :ななし@641です:02/06/01 12:42

>>642-643
>>648

コメントを頂いた方々、ありがとうございました。m(_ _)m

実は、(3)だけ(定数の配列)は「たぶんできるんだろうな」と思いながら
聞いてみました。
残念だったのは、(1), (2), (4)を結局、ヘルプで見付けられなかったこと
です。キーワードが悪いのでしょうか?

# まさか、PersonalとProfessional, Enterpriseでヘルプが違う、なんて
# ことはないですよね?(^^;


686 :デフォルトの名無しさん:02/06/01 16:23
>>672
検索程度の機能があればいいならTStringListやTStringsの
CommaTextプロパティを活用すれば簡単に作れると思う。

>>673,676 最小化はDelphi 4以前の話でしょ。

687 :デフォルトの名無しさん:02/06/01 16:54
>>686
Del5移行でも、微妙におかしいよ。
例えば、「デスクトップの表示」で最小化させた状態から復帰させるときなんか。
あと、Appウィンドウの関係、Win2000移行のモーダルダイアログのタイトルの
点滅機能が働かないね。VCL使いつつ回避してるソフトもあるけど。

688 :デフォルトの名無しさん:02/06/01 16:56
CommaTextはスペース入っててクォートで囲まれてないと悲しい事になります。

689 :デフォルトの名無しさん:02/06/01 17:14
あのですね、昨日Delphi6PersonalをDLしたんですよ
まあ、Delphi入門ページとか見てやっていたわけですよ
んで、今日も朝からやっていたんですよ
ちょっとサンプルばかりじゃなんだから簡単なものを作ろうと思ったわけです
まあいろいろと弄りながらね
で、ききたいことがあるんですよ
オブジェクトのサンプルにShellTreeViewがあるじゃないですか
あれで選択したフォルダのパスはどうやったらわかりますか?
誰かお願いします

690 :デフォルトの名無しさん:02/06/01 17:18
つーかなんでDelphiで作ったプログラムはあんなに重いんだ?!

691 :デフォルトの名無しさん:02/06/01 17:22
>>690
組み方が下手だから。

692 :デフォルトの名無しさん:02/06/01 17:31
>>690
Borlandの最適化がヘボいから。

693 :デフォルトの名無しさん:02/06/01 17:32
>>690
あんたのPCが遅いから。

694 :デフォルトの名無しさん :02/06/01 17:37
二つ質問です。

1)
TWinControlのInvalidateはコントロール全体を再描画するそうですが、
RepaintはInvalidateのあとUpdateを呼び出すそうですね。
Invalidateがある以上Repaintは必要ないように感じるのですが、
一体Repaintにはどんな意味があるのでしょうか。

2)
また、TControlのRefreshは何に使うのでしょうか。
単にRepaintを呼び出しているようなので、
下位オブジェクトがRepaintに一定の動作を与えて、
なお且つRepaintと区別する必要がある場合に使うのかとも思ったのですが、
virtualでもdynamicでもないので、不思議です。

宜しくお願いします。


695 :デフォルトの名無しさん:02/06/01 17:38
>>689
ShellTreeView1.Path
\Delphi6\Demos\ShellControls にソースがあると思うから、見てみるといいかも。

696 :デフォルトの名無しさん:02/06/01 17:38
>>694
1) すぐに描画したいとき。

697 :694:02/06/01 17:48
>>696
ああ、なるほど!
「すぐに」がポイントなんですね。
理解できました。
大変ありがとう御座います。

引き続き2)もどなたかお願いします。

698 :689:02/06/01 17:54
>>695
出来たよ、ありがとう
サンプルソースも結構使えそうだった

699 :ななし:02/06/01 19:54
>>689

一瞬、吉牛のコピペかと思った。(^^;
(ことば遣いが似てたから)

700 :デフォルトの名無しさん:02/06/01 21:30
>>689
昨日初めて上達早いな。
がんがれ。

701 :デフォルトの名無しさん:02/06/01 21:35
>>690
具体例も上げられなきゃネタにもならんわ(ゲラゲラ

702 :デフォルトの名無しさん:02/06/01 22:30
>>690
exe単体で動くから、いらない部分も含んでるからとかじゃないの?

703 :デフォルトの名無しさん:02/06/01 23:00
>>700
>昨日初めて上達早いな。
Delphiなんて、VBやってた奴ならすぐコンポーネントは使えるだろうし、
他のオブジェクト指向言語やってたなら、Delphiもすぐにできるようになるだろ。
あとはVCLさえマスターすればいいだけの話。
Delphiが初めてのプログラミングなら上達早いと思うが。

704 :デフォルトの名無しさん:02/06/01 23:01
RichEditをOLE対応にしたのですが、実行時にビットマップなどを挿入するにはどうすればいいのですか?

705 :デフォルトの名無しさん:02/06/01 23:34
>>704
まずゴム付けてください。ゴム。

706 :デフォルトの名無しさん:02/06/01 23:40
プログラムって何グラム?

707 :デフォルトの名無しさん:02/06/01 23:48
>>706
半袖。

708 :デフォルトの名無しさん:02/06/01 23:57
DelphiなんかやめてSHARPポケコンPC-G850の内蔵BASICにしたほうがいいですよ。

709 :デフォルトの名無しさん:02/06/01 23:58
>>708
いや、もっともな意見だね
ところで PC-G850 ではどんなDBが使えるの?

710 :ここはひとつマニアックに:02/06/02 00:01
ソードのM5で手をうとうじゃないか。

711 :デフォルトの名無しさん:02/06/02 00:02
>>709
PC-G850ではInterBase、DB2、Oracle、MySQL、PostgreSQLが使えます。

712 :デフォルトの名無しさん:02/06/02 00:24
selectして返事が返ってくるまで無茶苦茶かかりそうだな。

713 :デフォルトの名無しさん:02/06/02 08:34
パーソナル使ってるんだけどTHTTPはプロフェッショナル以上ですよね
HTTPでファイルをダウンロードしたいんですけどパーソナルじゃやはり無理ですかね?
なにか他の使ってできるとか、そういうの無いですか?

714 :デフォルトの名無しさん:02/06/02 09:13
Socket使うとかいろいろあるだろ。

715 :ななし:02/06/02 09:19
>>705

溜まってるなら、風俗逝きなさい。

716 :デフォルトの名無しさん:02/06/02 14:09
>>713
WinInet 使えば楽勝だろ。

717 :デフォルトの名無しさん:02/06/02 14:11
>>713
WinInet.Dllの APIを使うとか

http://www.nifty.ne.jp/forum/fdelphi/samples/01085.html


iriaをOLEオートメーションで使うとか
http://www.tees.ne.jp/~rdat32lp/compo/iriaapi.html


uses節に ActiveX, Comobj を追加

procedure TForm1.Button1Click(Sender: TObject);
var
Iria, Url: OleVariant;
begin
Url := 'http://www6.ocn.ne.jp/~boyakkie/tech.gif';
CoInitialize(nil);
try
Iria := CreateOleObject( 'Iria.IriaApi' );
Iria.Download( Url,0 );
finally
CoUninitialize;
end;
end;


718 :デフォルトの名無しさん:02/06/02 14:44
Delphi で 複数言語に対応したアプリを開発するにはどうすればいいのでしょうか?
メニューやボタンのキャプションを、簡単に切り替えたいのですが・・・

719 :デフォルトの名無しさん:02/06/02 15:04
>>718
ヘルプで国際化対応を検索

720 :デフォルトの名無しさん:02/06/02 17:29
TMediaPlayer以外で、Waveファイルに音声を録音する
記述を教えて(´Д`;)

721 :デフォルトの名無しさん:02/06/02 17:35
>>713
なぜ誰もIndyを挙げないのだ
http://www.nevrona.com/Indy/

722 :デフォルトの名無しさん:02/06/02 17:56
>>720
waveIn〜 APIを調べれ

723 :デフォルトの名無しさん:02/06/02 18:15
OnClickでSenderのメソッドを使いたいのですが、
C++Builderではdynamic_cast<T>->methodですが、
Delphiではどうするの?
お願い教えて!

724 :デフォルトの名無しさん:02/06/02 18:20
(Sender as T).methodがダイナミックキャスト

725 :デフォルトの名無しさん:02/06/02 18:20
>>722
英語ばかりでサパーリです。

726 :デフォルトの名無しさん:02/06/02 18:21
>>723
THogeHoge(Sender).HogeMethod(uma,mazu);
キャストしる。

727 :デフォルトの名無しさん:02/06/02 18:23
>>720>>725
DelphianWorldあたりにwaveIn叩くコンポがあったと思ふ。

728 :デフォルトの名無しさん:02/06/02 18:26
>>726
それはdynamic_castではなく、C style castに相当するね。
>>724がdynamic_cast相当

729 :デフォルトの名無しさん:02/06/02 18:28
>>724,>>726
た、たすかったー、どうもです!

730 :デフォルトの名無しさん:02/06/02 18:47
>>729
as で変換すればキチンと(?)例外吐いてくれるけどさ。
cast する前に is 演算子で型チェックするのを忘れずに。

731 :デフォルトの名無しさん:02/06/02 18:54
できれば、WaveInの解説文キボーン。

732 :デフォルトの名無しさん:02/06/02 19:02
>>731
英語くらい気合で嫁。
http://jupiter.nttrd.com/

733 :デフォルトの名無しさん:02/06/02 20:23
TMediaPlayerを使って、録音ソフトを作ろうとしたのですが〜
「MCIデバイスがありません」と〜
叩かれて、TMediaPlayerを使えませんでした〜
どのように修正したらよいですか〜

734 :デフォルトの名無しさん:02/06/02 20:51
思ったんだけどDelphiとVBってIDEの仕様が似てない?
どっちの方がいいのかな?

735 :デフォルトの名無しさん:02/06/02 21:03
>734
スレ違い

736 :デフォルトの名無しさん:02/06/02 21:16
>>733
たぶん他のソフトでMCIデバイス使用中だと思われ

737 :デフォルトの名無しさん:02/06/02 21:28
>>736
どこも使っていないように思われ・・・。

738 :蝶初心者:02/06/02 21:31
>>733
MediaPlayerで同じファイルを開いていませんか?


739 :デフォルトの名無しさん:02/06/02 21:45
>>731

http://www.sm.rim.or.jp/~shishido/waver.html


740 :デフォルトの名無しさん:02/06/02 22:16
フォーム上に既存のコントロールを、あとから作ったパネルなどの上に乗っけることって出来ますか?

一度一枚のフォームとして作ったものを、やっぱページコントロールをつけてそこに乗っけたいんです

741 :デフォルトの名無しさん:02/06/02 22:21
>>740
Frameを使うかPanelFormというコンポがあったと思う。
(フォームをパネルみたいに張り付けれるやつ)

742 :デフォルトの名無しさん:02/06/02 22:23
>>740
コピペすれ

743 :デフォルトの名無しさん:02/06/02 22:35
OutOpenをTrueにしたら解決しますた!!
ありがとう。これでネレル。

744 :740:02/06/02 22:39
>>741-742
早速レスありがとうございました
すこし言いにくいのですがコピペで解決してしまいました。
一度試してはいたのですが、カットした後に乗っけたい(パネル)コントロールを選択してから
ペーストしなきゃいけなかったんですね・・・失礼しました〜

745 :713:02/06/02 23:16
>>714,>>716,>>717,>>721
みなさんありがとうございます
いろいろ試してみましたがWinInetを使うことにしました

746 :デフォルトの名無しさん:02/06/03 01:43
Edit1 Edit2 Edit3 があったとします。

Edit1から Edit2へ [TAB]で移動した場合と
Edit3から Edit2へ [TAB]で移動して来た場合の違いを
Edit2のイベント内(例えば OnEnter等)で知ることは出来ないのでしょうか?
良い方法があれば教えて下さい。よろしくお願い致します。

747 :746:02/06/03 01:45
書き間違ってました、ごめんなさい。

誤) Edit3から Edit2へ [TAB]で移動して来た場合の違いを
   ↓
正) Edit3から Edit2へ [Shift]+[TAB]で移動して来た場合の違い

748 :デフォルトの名無しさん:02/06/03 02:05
>>746

グローバルのフラグを作って
Edit3 とEdit1 の OnExitで値をセットするぐらいかなぁ?

749 :デフォルトの名無しさん:02/06/03 05:37
>>746
自前でキーイベントを拾って処理。

750 :デフォルトの名無しさん:02/06/03 12:44
>>748-749
そーですか。
APIか何かで取得出来るか?と色々とやっていたのですが、やはり
その辺りで処理するしかなさそうですね。
有難う御座いました。


751 :751:02/06/03 16:44
MediaPlayerの表示の大きさを変えるのはどうしたらいいですか?

begin
MediaPlayer1.FileName := GikoMovie;
MediaPlayer1.Open();
 MediaPlayer1.Display:= Panel1;
end;


752 :デフォルトの名無しさん:02/06/03 16:57
コンポーネントのTListBoxとかの'T'って何の略ですか?

753 :デフォルトの名無しさん:02/06/03 16:58
>>752
テーブル。タイプ。など諸説あったり。

754 :デフォルトの名無しさん:02/06/03 17:10
コンポーネントのソースを開いてみるとメッセージハンドラってのでしょうか?

CMTextChanged(var Message: TMessage); message CM_TEXTCHANGED;

こんなのですが、これって、イベントとかが発生した時にWindows上でメッセージが流れる
それを捕まえる為のものだって認識しているのですが僕の認識は正しいでしょうか?
厨房である僕にご指導くださいませ

755 :デフォルトの名無しさん:02/06/03 17:24
>>754 あってるよ
メッセージディスパッチという仕掛け。
具体的には Dispatch(var Message); メソッドで
メッセージIDで自動的に必要なメソッドが自動的に呼ばれる。


756 :754:02/06/03 17:41
>>755
なるほど、そうですか、ご指導有難うございます。

CMTextChanged(var Message: TMessage); message CM_TEXTCHANGED;
この場合だと、後半の部分のCM_TEXTCHANGEDがメッセージIDの種類を
判断する部分だと考えて宜しいのですね。

メッセージIDは、unit Controls;の上の方で定義してあるのは判ったのですが
ここに定義していない物があれば、独自に定義した物を利用しても良いので
しょうか、それとも、それは互換性とかで問題になる可能性があるのでしょうか?

(そもそも、未定義のメッセージIDがあるのかも知らないのですが・・・^^;)


757 :デフォルトの名無しさん:02/06/03 17:46
mybaseってソースないのでしょうか?

758 :デフォルトの名無しさん:02/06/03 17:52
>>754-756
長いことDelphi使ってきたけど、オマエ達の言ってる意味がサーーパリ判らん俺はなんなんだ?逝った方がいいってこと?



759 :デフォルトの名無しさん:02/06/03 17:58
>>757
具体的になんのこと?

760 :デフォルトの名無しさん:02/06/03 18:00
>>756
 理論的には自由に使ってよい。 
 未定義というかユーザー用の領域WM_USERがある。
 これはアプリ内で閉じたメッセージに使える。
TControl継承でなければ、もちろん好きに使っていい。


残念なのは動的に メッセージIDを指定出来ない事。
これが出来ればRegisterWindowMessage で割り当てたIDもディスパッチ出来るのだけど

761 :デフォルトの名無しさん:02/06/03 18:09
>>756
Q&Aにもでてるね。

http://www.borland.co.jp/qanda/delphi/d0002327.html

762 :761:02/06/03 18:25
Delphi 6 付属の Win32 HELPより

Range Meaning
0 through WM_USER - 1 Messages reserved for use by Windows.
WM_USER through 0x7FFF Integer messages for use by private window classes.
0x8000 through 0xBFFF Messages reserved for future use by Windows.
0xC000 through 0xFFFF String messages for use by applications.
Greater than 0xFFFF Reserved by Windows for future use.

763 :761:02/06/03 18:40
762はちょっと古すぎた

下のリンクを参照
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/winui/messques_5180.asp

764 :デフォルトの名無しさん:02/06/03 18:59
結局 0x8000〜0xBFFF は以前は Windows予約だったけど,今はここがユーザ用になった

逆に WM_USER領域はユーザ領域だったが、ここをWindowsがアチコチ使ってしまっている
使ってはダメという事

昔も今も、一番安全なのは RegisterWindowMessage  を使う事


なおDelphiは
CM_BASE = $B000;
CN_BASE = $BC00;

を使っているので注意


765 :754 :02/06/03 19:56
>>760-764
凄く勉強になりました!!
今までモヤモヤしていた部分が晴れてきたみたいな気がします(たぶん気のせいでしょうが)
本当にありがとうございました。

766 :デフォルトの名無しさん:02/06/03 19:58
>>764 一番安全なのは RegisterWindowMessage  を使う事

まぁそうなんだけど、定数せんへんできないのが難点

ユーザ定義メッセージを100個も宣言することもないので、
事実上、メッセージID の使用領域はスカスカですよ。
Dispatch() するクラスをちゃんと調べれば、まず足りないということは
ありえません。神経質になる必要はありません。

>>758

まぁ、「ウィンドウズについては何も知らない」ということですね。


767 :766:02/06/03 20:00
定数せんへん → 定数宣言 スマヌ

768 :デフォルトの名無しさん:02/06/03 20:08
>>766
>まぁ、「ウィンドウズについては何も知らない」ということですね。
ちょっと言い過ぎ
Object Pascal の記法が奇異に感じられるだけかも知れんし

>>758
TPWで拡張された流儀を引き継いでるって感じなんだけど
メッセージループそのものも知らないのならやっぱ勉強しておいた方が吉

769 :デフォルトの名無しさん:02/06/03 20:16
久しぶりにTPWのコードを見たけど
Delphiのライブラリ内部のコードはTPWとあまり変わっていないことに気が付いた

770 :デフォルトの名無しさん:02/06/03 20:56
>>768
>>まぁ、「ウィンドウズについては何も知らない」ということですね。
>ちょっと言い過ぎ
>Object Pascal の記法が奇異に感じられるだけかも知れんし

758 は Delphi を長いこと使ってきたっていってるじゃん。
メッセージIDを知らないってことは、Windows の仕組みについて
何も知らないって言ってもいいと思ふ




771 :デフォルトの名無しさん:02/06/03 20:56
TEdit内の文字数を調べるには?
おしえてください〜。

772 :デフォルトの名無しさん:02/06/03 20:58
Length(Edit1.Text)

773 :デフォルトの名無しさん:02/06/03 20:59
>>771

Length(Edit1.Text) なんかだと、文字数というよりバイト数か

774 :デフォルトの名無しさん:02/06/03 21:03
なら
w: WideString;
w := Edit1.Text;
Length(w);

775 :デフォルトの名無しさん:02/06/03 21:07
>>774

一行で Length(WideString(Edit1.Text))

776 :デフォルトの名無しさん:02/06/03 21:19
ありがとうございました!!

777 :751:02/06/03 21:26
誰もわかりませんか?

778 :デフォルトの名無しさん:02/06/03 21:32
>>777
HelpみたらDisplayRectっぽいけどそれじゃダメ?
つかHelpは探した上でやってるよなあ・・・。
自力でAPI使ってやるしかないかも。

779 :751:02/06/03 21:34
>>778
helpは全部見ましたよ
DisplayRectには値を入れることはできません。


780 :デフォルトの名無しさん:02/06/03 21:48
(´-`).。oO(じゃあ俺が今見てるエロ動画は幻か・・・DisplayRectで伸縮自在なんだが

781 :デフォルトの名無しさん:02/06/03 21:48
>>779
最後の一文読んだ?

注意 DisplayRect プロパティは,メディアデバイスを開いた後でのみ設定できます。


782 :デフォルトの名無しさん:02/06/03 21:51
>>779
( ´,_ゝ`)プッ

783 :751:02/06/03 21:54
>>780-782
ハァ?
今やってみるから待ってろよ

784 :デフォルトの名無しさん:02/06/03 22:03
(*´д`)

785 :758:02/06/03 22:10
そーなのだよ、Windowsの仕組みについては、何もどころか全くわからんよ。
VCLの囲みの中でしかも、独自にコンポーネントも作ることもなく他人の作ったコンポの
ちょっとした直し程度しかせずにやってきた、正直言って、今日は自分がVB使いとなんら
変わりないと感じた1日でした。(マジ)

786 :751:02/06/03 22:11
デキター━━━(゚∀゚)━━━!!!!
デキター━━━(゚∀゚)━━━!!!!
ばんざーい!ばんざーい!ばんざーい!
>>778さん
>>780-782さん
ありがとうございますた(;´Д`) ハァハァ

787 :傍観者:02/06/03 22:13
よかったよかった。

788 :デフォルトの名無しさん:02/06/03 22:15
>>785
自己啓発情できたすばらしい1日でしたね

789 :デフォルトの名無しさん :02/06/03 23:00
そーなのだよ、Delphiの仕組みについては、何もどころか全くわからんよ。
サンプルの囲みの中でしかも、独自にアプリも作ることもなく他人の作ったアプリの
ちょっとした直し程度しかせずにやってきた、正直言って、今日は自分がガキの使いとなんら
変わりないと感じた1日でした。(ネタ)


790 :デフォルトの名無しさん:02/06/03 23:06
>>789
発情しまくり

791 :pgp:02/06/03 23:11
エロファイルにpgpってあるんだけどなに?

暗号化してあるってのはわかるんだけど
パスもわかる
PGPのソフトは何使えば複合化できるの?

792 :デフォルトの名無しさん:02/06/03 23:18
>>791
スレ違いというより板違い

793 :デフォルトの名無しさん:02/06/03 23:39
>>791
というよりチャンネル違い

794 :デフォルトの名無しさん:02/06/03 23:41
デルファイやってたら将来C言語とかに移るときに役に立つような
知識が身につきますかね?

795 :デフォルトの名無しさん:02/06/03 23:49
>>794
身につく人は身につくし、だめな人は何をやってもだめ。

796 :デフォルトの名無しさん:02/06/03 23:58
>>795
箕も蓋もない(w

797 :当たって砕けろ:02/06/04 00:04
作ったプログラムをexeにするにはどうしたらいいんでしょうか?
ヘルプにexeで検索かけてもでません。鬱。
探し方悪いのか。鬱鬱。

798 :デフォルトの名無しさん:02/06/04 00:08
>>797
0点。

799 :デフォルトの名無しさん:02/06/04 00:13
┏┓
┃┗┓
┃  ┗┓ 押せ
┃  ┏┛
┃┏┛
┗┛

800 :デフォルトの名無しさん:02/06/04 00:15
CM_〜〜、CN_〜〜系のメッセージって、プログラム書くとき
使うことってあるんですか?

WM系はよくメッセージ横取りしたりするのに使うし
自分でフォーム間のやりとりにWM_USERに数値足したメッセージを
使うことはあるけど、CM系とかCN系のメッセージって今まで
何にもいじったこと無いなあ。

801 :デフォルトの名無しさん:02/06/04 00:17
コンポーネント作るときよく使う

802 :当たって砕けろ:02/06/04 00:20
l>押します。鬱。すいませんでした。

803 :タモさん:02/06/04 00:20
CMで〜す

804 :デフォルトの名無しさん:02/06/04 00:24
http://www.ylw.mmtr.or.jp/~akky/mfc/message.html

WM_USERよりWM_APPを使うほうがいいらしい。

805 :デフォルトの名無しさん:02/06/04 00:26
っていうか、WMとCMの違いってなんだ
TFrom内にもWM_ACTIVATEとCM_ACTIVATEとあったりして
わけわかんねー

806 :当たって砕けろ:02/06/04 00:36
できました。
どうやら単にドコにexeが保存されてるかわからなかっただけの模様。鬱。

807 :デフォルトの名無しさん:02/06/04 00:38
え!?マジだったの?>>806
君、「ひまわり」から始めた方がいいよ。
マジで。

808 :デフォルトの名無しさん:02/06/04 00:38
このスレは、たんなるバカとDelphiバカが混在していて楽しいズラ

809 :デフォルトの名無しさん:02/06/04 00:39
>>794
C言語に必要な知識はほぼ身につくけど、いざ移行するとCのバルキーな
言語仕様に鬱になる罠。
C++には若干不足もあるけど、やっぱり役立つ。でもCの時と同じ罠が・・・

最近ではC#がいーみたいです。漏れは良く知らないけど。
まぁそんなこと心配してるよりDelphiの勉強を始めた方が良い事は確か。
杏より梅が安し、ってやつです。

810 :当たって砕けろ:02/06/04 00:45
本気でバカですいません。鬱。

811 :デフォルトの名無しさん:02/06/04 00:53
>>808
お前みたいなホームラン級のバカもいるしな(藁

812 :傍観者:02/06/04 01:10
Cのコードは読めるが書けない。

漢字読めるけど書けないのと同じかな?

813 :デフォルトの名無しさん:02/06/04 01:11
>>812
単に必要がないからでしょ
必要になったら書けるよ

814 :三村3:02/06/04 02:54
>>740 Parent変更するだけだろ!!

 with Form2 do
 begin
   BorderStyle:=bsNone;
   Top:=0;
   Left:=0;
   Parent:=Self.TabSheet1;
   Show;
 end;

>>791 複合かよ!!
>>793 1chかよ!!
>>798 点数があんのかよ!!
>>799 押してーよ!! でも、押せねーよ!!みないな。
>>807 ぴゅー太かよ!!
>>808 空手バカかよ!!
>>809 果実かよ!!
>>810 本気かよ!!
>>811 ホームラン級かよ!!
>>812 漢字とは違うだろ!!

815 :もじもじ:02/06/04 12:42
質問です。
var
L,S,T:Strings;

で、関数をいろいろ使用した後に

L := S+T;
とした時に
LにSの文字列しか入りません。

L := T+S;
とすると、今度は
LにTの文字列しか入りません。
これは、どのような可能性が
考えられるのでしょうか?

816 :デフォルトの名無しさん:02/06/04 12:46
>>815
そもそもオブジェクトなのに足せるのか

817 :もじもじ:02/06/04 12:51
訂正です。
L,S,T:Strings; 誤

L,S,T:String; 正




818 :もじもじ:02/06/04 13:17
それから
末尾にへんなものでも付いてる?
と思い

delete(t,length(t)-1,1);
L := t+s;
showmeseage(L);
としても、末尾の')'が'・'と表示され
ただけでした。

819 :無責任だが:02/06/04 13:18
>>815 一番に 考えられるのは S,Tに#0 が含まれいるという事です。

820 :無責任だが:02/06/04 13:27
>>818
delete(t,length(t)-1,1);
は t:='123' とすると結果は '13'が残るように思います

#0を消すには
S:=PChar(S);
T:=PChar(T);
L:=S+T;
としてみて下さい。


821 :デフォルトの名無しさん:02/06/04 14:08
おそらく厨房な質問で申し訳ありませんが・・・

TData = class
Data : array[1..8,1..1100] of Integer;

procedure TForm1.button1Click(Sender: TObject);
begin
for i:=1 to n do Data[i]:=Data.create; //nは数百ぐらいの任意の数
// 処理
end;

procedure TForm1.button2Click(Sender: TObject);
begin
for i:=1 to n do Data[i].Free;
close;
end;

ヘルプなぞみてここまではできました.
処理はうまくいきます.
しかしアプリを終了するときにエラーが出てしまいます.
メモリーが開放されていないようなのです.
何が足りないのが教えてください.

822 :もじもじ:02/06/04 14:11
>>820
できました。

ただ、何故この方法で、#0が
消えるのかが、まだ理解できて
ませんが・・・、
ありがとうございました。

deleteに関してはたしかにそうですね。


823 :デフォルトの名無しさん:02/06/04 14:23
>>821
  書き間違いが多くて判りません。 ちゃんと書きなおしてみて下され

Dataは整数の配列なの? それとも TDataの配列なの?

そして2次元配列ではないの? さらに、Data.Create はTData.Createの間違い?

824 :デフォルトの名無しさん:02/06/04 14:26
>>821 何もかもオカシイよ!!


825 :デフォルトの名無しさん:02/06/04 14:35
デルファイでつくったプログラム、面白いゲームとかが
沢山DLできるページがあったら教えてください。

826 :デフォルトの名無しさん:02/06/04 15:35
>>825
意味不明。

827 :デフォルトの名無しさん:02/06/04 15:44
Extended型の変数の値をString型に変換して代入する方法を教えてください。
低レベルな質問ですいませんが、よろしくお願いします。

828 :827:02/06/04 16:08
FloatToStrでできました。どうもありがとうございました。

829 :A:02/06/04 18:14
>>821
Data : array[1..8,1..1100] of Integer;
と定義しているのだから、そもそも、
Data[i]:=Data.create;
なんていう代入は出来ないのでは?

てか、このままだと、コンパイルとおらないと思うから
実際に書いたのはこうじゃないはず・・・。
元のソースから、コピペで抜き出してみれ。

830 :デフォルトの名無しさん:02/06/04 18:34
>>825
http://www.vector.co.jp/

831 :デフォルトの名無しさん:02/06/04 20:04
>>828
自己解決してるのに何がありがたいんだYO!

832 :821:02/06/04 20:09
あまり長くなっては思いはしょりました
すいません

type
TData = class
Data : array[1..8,1..1100] of Integer;
var data1: array of Tdata;

procedure TForm1.button1Click(Sender: TObject);
var i: intger;
begin
for i:=1 to n do Data[i]:=Data.create; //nは数百ぐらいの任意の数
// 代入
// 処理
// 保存
end;

procedure TForm1.button2Click(Sender: TObject);
var i: intger;
begin
for i:=1 to n do Data[i].Free;
close;
end;

です.
よろしくお願いします

833 :821:02/06/04 20:11
type
TData = class
Data : array[1..8,1..1100] of Integer;
var data1: array of Tdata;

procedure TForm1.button1Click(Sender: TObject);
var i: intger;
begin
for i:=1 to n do Data1[i]:=Data.create; //nは数百ぐらいの任意の数
// 代入
// 処理
// 保存
end;

procedure TForm1.button2Click(Sender: TObject);
var i: intger;
begin
for i:=1 to n do Data1[i].Free;
close;
end;

また間違えてましたすいません

834 :821:02/06/04 20:15
for i:=1 to n do Data1[i]:=Data.create; //nは数百ぐらいの任意の数

for i:=1 to n do Data1[i]:=TData.create; //nは数百ぐらいの任意の数
              ----
の間違いでした
たびたびすいません


835 :821:02/06/04 20:27
ちなみに
エラーは終了ボタンを押したときに以下のように出ます
”プロジェクト*.exeがEInvalidPointerクラスの例外を生成しました
無効なポインタ操作”
と出ます
どこがいけないのでしょうか?
厨房でスマソ

836 :デフォルトの名無しさん:02/06/04 20:54
どこが違うって言われてもなあ…
とりあえずData1の大きさをsetlengthで指定しる。

837 :821:02/06/04 20:59
えーとそれはやってます
入れとくべきでした


838 :Delフサギコ ◆zE1iiRdQ :02/06/04 22:35
                   _____________
    ∬   ∧,,∧      /
     ~━っミ ゚Д゚彡,,    <  ソース自体むちゃくちゃで
    ∀._(,,,~  ,,,~⊃_   \しかも小出しだしなー...
━┳┷ |. ,(~ヽ,,,ミ.         ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ┃...| ̄ ̄し'J.  ̄ ̄ ̄ しんどいぞ....
  ┻ ヽ ̄ ̄ ̄ ̄ ̄ ̄ ̄

最小限の再現ソースをかくといいかも。
>>それを書くことで自分の理解も深まって
  結果的にバグが取れるかもね。

839 :821:02/06/04 22:38
仰せのおうり
再現ソース書いてみます.
すれ汚してすまそ

840 :デフォルトの名無しさん:02/06/04 22:43
バグは821の頭の中にあるようです

841 :821:02/06/04 22:52
どこがむちゃくちゃかどうかも分からない厨房なので
はずかしいのですが・・・
以下のようにを書いて見ました
ボタン1を押してボタン2を押すだけでエラーが出ます.
エラーは835と一緒です.
どこがだめなのかヒントでも教えてください
お願いします

****************
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private 宣言 }
public
{ Public 宣言 }
end;
TData= class
data: array[1..8,1..1100] of Integer;
end;

var
Form1: TForm1;
Data1 : Array of TData ;
n : integer;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var i: integer;
begin
n:=120;
SetLength(Data1,n);
for i:=1 to n do Data1[i]:=TData.create;
end;

procedure TForm1.Button2Click(Sender: TObject);
var i: integer;
begin
for i:=1 to n do Data1[i].Free;
close;
end;

end.


842 :デフォルトの名無しさん:02/06/04 22:52
>>825
付属のもう1枚のCDに。

843 :デフォルトの名無しさん:02/06/04 23:05
>841
SetLengthした後で Low(Data1) と High(Data1) を見てみれ。

844 :デフォルトの名無しさん:02/06/04 23:06
>>821
Delphi ヘルプより。
>動的配列の添字は常に整数であり,0 から始まります。
つまり Data1[n] にはアクセスしちゃ駄目ー


845 :821:02/06/04 23:08
843様,844様
ありがとうございます.
そんな基本的なことに気がつかないなんて・・・
これだから初心者から抜け出せないのですね.
精進します

846 :デフォルトの名無しさん:02/06/04 23:16
>>841-845
つーか、このソースが動いたとして何がしたいの?
根本から何か間違っていると思うのはおれだけなのか?


847 :デフォルトの名無しさん:02/06/04 23:17
何処かに連想配列コンポとかありませんか?

848 :805:02/06/04 23:38
誰か知らない?

849 :デフォルトの名無しさん:02/06/04 23:45
>>806
って、他の掲示板でもexeがどーのこーのって質問してない?

850 :デフォルトの名無しさん:02/06/04 23:52
>>848,805
>っていうか、WMとCMの違いってなんだ
>TFrom内にもWM_ACTIVATEとCM_ACTIVATEとあったりして
>わけわかんねー

851 :デフォルトの名無しさん:02/06/05 00:31
WMは正式なWindowsメッセージ。
CMはVCLが内部的に使ってる裏メッセージ。

852 :Delフサギコ ◆zE1iiRdQ :02/06/05 00:50
   ∧,,∧   / ̄
@,,,ミ,,゚Д゚彡 < とりあえず>>841のソースでうごきますた。
⊂,,,,,,,,,つつ.   \_
 LowとHighあたりは間違いの元だけどね。

853 :デフォルトの名無しさん:02/06/05 13:33
nに寒気を感じたのは俺だけですか?

854 :デフォルトの名無しさん:02/06/05 18:43
MIDI音源を制御するコンポーネントとかありませんか??

855 :デフォルトの名無しさん:02/06/05 20:29
>>854
Delphian World へ行って MIDI で検索する。
MIDI音源を制御するコンポーネントとかがあります。

856 :デフォルトの名無しさん:02/06/05 20:46
>>847
TStringList.Objects[]使えばできる。

857 :デフォルトの名無しさん:02/06/05 21:29
Delphiで作ったアプリを「左右に並べて表示」をすると、
画面半分の大きさで表示されるんですけど
正しく表示させるにはどうすればいいですか?

858 :デフォルトの名無しさん:02/06/05 22:05
>>857
http://www2.big.or.jp/~osamu/Delphi/delphi-browse.cgi?index=051302


859 :857:02/06/05 23:08
>>858 さんありがとうございます。

この修正、結構厄介なんですね(^^;

860 :Delフサギコ ◆zE1iiRdQ :02/06/05 23:11
   _____     __________
 /:\._____\  /
 |: ̄\ ミ,,゚Д゚ミ  < こちらのに含まれているのを
 |:   :|: ̄U U ̄:|  \使ってみるのはどうかしら。
 マダ シゴトチウ..........

http://pc.2ch.net/test/read.cgi/tech/1022921598/63


861 :デルファイマスター@一週間:02/06/05 23:30
いつになったらDelphi 7は発売されますか?

862 :デフォルトの名無しさん:02/06/05 23:31
>>861
そういう言い回し流行ってるの?

863 :857:02/06/05 23:52
>>860
ありがとうございます。

ただ、sample見ないで貼り付けて実行したら、
フォームが消えました(^^;

もう少しsample読みます。

864 :デフォルトの名無しさん:02/06/06 00:15
>>861
今年の年末です

865 :デフォルトの名無しさん:02/06/06 01:14
>>861
いい子にしてたらサンタさんが(略)

866 :デフォルトの名無しさん:02/06/06 01:41
Delphi6 personalバージョンについて質問です
Delphiを起動するときってかならずForm1とUnit1.pasが表示されますよね。

Delphiを起動したときに、コンソールアプリを作成するようにしたいんですが
いちいち新規作成→コンソールアプリケーションを選ぶのも面倒なので
起動直後からコンソールアプリを作成するにはどうしたらいいでしょうか?

あと
{ TODO -oUser -cConsole Main : ここにプログラムコードを書いてください }
ってのが激しくいらないんですが、消すことはできますか?やり方を教えてください

867 :デフォルトの名無しさん:02/06/06 01:58
>>866
DCC32使えば?

868 :デフォルトの名無しさん:02/06/06 02:00
>>866
メモ帳でも開けば?

869 :デフォルトの名無しさん:02/06/06 03:22
DCC32って何ですか?

870 :デフォルトの名無しさん:02/06/06 03:36
>>869
「検索」って知ってる?

871 :デフォルトの名無しさん:02/06/06 03:56
私の辞書に、検索という文字はない。
故に辞書も検索できない。

872 :デフォルトの名無しさん:02/06/06 06:27
1点

873 :デフォルトの名無しさん :02/06/06 10:53
>>869
コマンドラインコンパイラのこと。

874 :デフォルトの名無しさん:02/06/06 11:07
>>866
あらかじめコンソールアプリの雛型をどこかに作っておいて
そのショートカットをスタートメニューに入れればいいんじゃない?

875 :デフォルトの名無しさん :02/06/06 11:25
バージョン番号が大きいほど優れていると錯覚してる初心者が多いから
Delphiの次製品はコンパイラのバージョンのDelphi 15 にすればいいかも。

876 :デフォルトの名無しさん:02/06/06 12:15
>>866
新規作成にコンソールアプリってのがなかった?

877 :デフォルトの名無しさん:02/06/06 12:24
>>876
それが面倒なんだと( ´∀`)

878 :デフォルトの名無しさん:02/06/06 13:37
>>866
どっちもリポジトリ使ったらできた。でも、余計な作業も増えた。

879 :デフォルトの名無しさん:02/06/06 14:25
>>875
P-RateだとかAthlonXPのほにゃらら+とかみたいで、
なんか嫌。

880 :デフォルトの名無しさん:02/06/06 18:26
Delphi6でExcelをOLE埋め込みすると、一部分しか表示できないのですが、
全体を表示させる方法はありませんか?
(スクロールさせても下のほうが切れてます)

881 :デフォルトの名無しさん:02/06/06 19:05
インターネットに接続しているかどうか判定する方法はありますか?


882 :デフォルトの名無しさん:02/06/06 19:06
>>881
電話がつかえなかったらインターネット中です。

883 :デフォルトの名無しさん:02/06/06 19:08
ダイヤルアップ ユーザー ハッケソ

884 :881:02/06/06 19:10
>>882
(;´д⊂ イジワルしないで教えてください

885 :デフォルトの名無しさん:02/06/06 19:13
>>881
どっかにpingしてみる。

(ルータ経由だと実際に通信してみるしか確実な方法は無い)

886 :デフォルトの名無しさん:02/06/06 19:18
>>885
ping先の鯖が落ちていたら確実じゃない罠

887 :881:02/06/06 19:22
確実な方法はないということですか?
あまり確実だなくてもいいので、一般的にはどういうほうほうでネット接続を検知しているのでしょうか?

888 :デフォルトの名無しさん:02/06/06 19:27
>>887
ルータなしに限るなら(ダイアルアップなら)方法はあるが、ユーザーにあらかじめ
そうなのかを聞いておかないとね。

889 :デフォルトの名無しさん:02/06/06 19:34
uses WinInet;

function IsInternetConnected: boolean;
var
ConnectType : DWORD;
begin
ConnectType := INTERNET_CONNECTION_MODEM + INTERNET_CONNECTION_LAN +
INTERNET_CONNECTION_PROXY;
Result := InternetGetConnectedState(@ConnectType, 0);
end;


890 :881:02/06/06 19:40
>>888
どういう方法でしょうか?
よかったら教えてください・・・

>>889
ありがとうございます、試してみます!

891 :デフォルトの名無しさん:02/06/06 19:52
Delphi6でAccessデータを取得するには
BDEしか手段がないのですか?
BDEはEnterpriseかProfessionalには付属してるとのことなので
それを購入したらいいのかな・・・
DOAでも可能?


892 :デフォルトの名無しさん:02/06/06 20:03
DOAってなんだよ…
DAOのつもりなのかADOのつもりなのか…

893 :名無し@891:02/06/06 20:07
>>892
あぁぁ・・・
すんませんすんませんすんません・・・
DOAなんてないんですね・・・
DAOとかADOってのもわかってないんですが
DAOってOraclとかのエンジン?



894 :デフォルトの名無しさん:02/06/06 20:12
>>891
ADOコンポーネントで可能。
BDEでもできるけど、AccessはメインじゃないからADOがよい。
ADOならAccessの入ってないパソコンでもMDBを操作できる。

895 :デフォルトの名無しさん:02/06/06 20:14
ODA 政府間開発援助・・・

896 :デフォルトの名無しさん:02/06/06 20:14
ポケコンにDelphiをインストールしようとしましたがなかなかうまくいきません。
どうすればよいですか?
機種はPC-G850Sです。

897 :デフォルトの名無しさん:02/06/06 20:15
>>896

ネタはマ板でやっとくれ。

898 :名無し@891:02/06/06 20:15
>>894
おぉ!ありがとうございます
BDEは端末にいちいちインストールしないといかんのですね
ADO 調べてきます
多謝です

899 :デフォルトの名無しさん:02/06/06 20:15
DOA: テクモが出してる格闘ゲーを装ったギャルゲー

900 :名無し@891:02/06/06 20:18
アフォ晒しついでに思い切って聞いてしまおう
MDBって・・・なんですか?(泣

901 :デフォルトの名無しさん:02/06/06 20:24
891が取得したいデータが入っているファイルの拡張子。

902 :894:02/06/06 20:27
>>898
ここが本家サイトだから読むといいよ。
http://www.microsoft.com/japan/msdn/data/default.asp

簡単に言うと、マイクロソフトのデータベース戦略が「Universal Data Access」
これは、データベースに限らず、すべてのデータを一元管理しようという思想。
で、この思想を支える技術が「OLEDB」。データの種類ごとにCOMを用意して
すべてのデータにアクセス出来るようにしようとする技術。
で、このCOMを汎用的に操作できるクラスライブラリが「Active Database Objects」
すなわちADO。ActiveXだから、これに対応した開発環境ならばADOが使える。

我々が作る場合は、まず、どのデータを操作するか、適したOLEDBプロバイダを
選択する。んで、ADOのライブラリを使って操作する。

Delphiの場合は、ADOのライブラリも使えるけど、BDEやその他のDBコンポーネントと
互換性を持たせるためにTDataSetから派生させたADOコンポーネントを使う。
だから、Delphiで使う場合は、ADOのライブラリよりもTDataSetのプロパティや
メソッドを中心に使うとよい。Delphiとの親和性が高くなる。

903 :名無し@891:02/06/06 20:31
>>901
あぁぁ
ありがとうございます
そっか(W

>>902
うわーい
ご丁寧にありがとうございます
とっかかりがわからなくてさんざん調べていたのですが
これだけ糸口をいただけるなら
しばらく勉強しつついろいろと調べてみます
VB6ならprofessionalがあるのですが
Delphiでやってみたくて 購入する版から苦悩ちうなんです

3文字やら4文字のアルファベットの羅列で
頭が混乱してるので とてもありがたいです
ありがとうございます

904 :894:02/06/06 20:40
>>903
がんばってね。ADOだけならProfessionalで十分活用できるよ。

905 :名無し@891:02/06/06 21:02
>>904
がんばります!

906 :デフォルトの名無しさん:02/06/06 21:09
Delphi Personal箔"闌gq"逐÷・摩・・・Aインストールk"・摩・_メs"・B
t項準・・・・lw"・・・・÷楳÷摩・・・Ha・・・ム逐・準・・BOSw"vibр盾翌唐les"・B

907 :デフォルトの名無しさん:02/06/06 21:13
>>906
お名前と国籍を教えてください。

908 :デフォルトの名無しさん:02/06/06 22:24
>>906
Japanese OK?

909 :デフォルトの名無しさん:02/06/06 22:42
listviewにイベントを作成しようと、オブジェクトインスペクタの
イベントのOnClickをダブルクリックしたら、エラー「メソッドlistviewClick
を追加すべき場所が見つかりません。"END"またはINITIALIZATIONがユニットソース
からみつけられませんでした」
とでます。解決方法を教えてください。

910 :デフォルトの名無しさん:02/06/06 22:48
>>906-908
warata

911 :素人:02/06/06 23:52
>>909
全くの「素」の状態から、ソレやっても同じ状態になるかい?
質問するときは環境とかいろいろ書けれ!

912 :素人:02/06/06 23:57
>>909
予想としては、1個「end;」が無いとか…。違うかな…。

913 :デフォルトの名無しさん:02/06/07 00:18
>>909
end. が無いと見た。

914 :素人:02/06/07 00:23
>>913
そうだ「end.」だ…(今確かめた)。トホホ…。

915 :デフォルトの名無しさん:02/06/07 10:05
TFileListBoxにユーザのPCで表示可能な形式の画像ファイルだけを表示させたいです。
Maskプロパティを使って、制限するという所まではわかるのですが、
PCから表示可能な画像の拡張子が必要です。
それを取得する方法を教えてください。

916 :デフォルトの名無しさん:02/06/07 10:19
まず「表示可能な画像」の定義をきめないといかんな。

917 :デフォルトの名無しさん:02/06/07 10:29
>>916
あ、「Delphiで表示可能」or「PC本体の能力で表示可能」ってことでしょうか?
DelphiではBMPかJPGかアイコンしか表示できないんでしたっけ…?
ピクチャービューアを作ろうと思ったのにぃ…。鬱出汁脳。

918 :デフォルトの名無しさん:02/06/07 10:37
>>917
Delphi「に付属するライブラリ」ではjpegとかまでだね。
でもそれをもって「Delphiで表示可能」をくくらないでくれ。
作ることも、探してくることもできるだろ。

919 :デフォルトの名無しさん:02/06/07 11:01
>>918
くくってるつもりは無いのですが、どこまでをDelphiと捉えるかの問題じゃないですか?
俺には作れないので探してきます。ありがとうございました。

920 :デフォルトの名無しさん:02/06/07 12:32
Susieプラグインに対応。これで完璧

921 :デフォルトの名無しさん:02/06/07 17:27
アプリケーションにフォーカスが当たっている状態での
動作で何かキー(例えば’A’)を押したとすると
OnKeyPressメソッドを呼び出し、ShowMessageで
Aの表示されたダイアログを呼び出すことができるというプログラムで、
フォーカスの当たっていない状態でもAを押した時この動作をしたいと思うのですが
どうやるのかが解かりません。
どうか教えてください。お願いします。

922 :デフォルトの名無しさん:02/06/07 17:28
>>921
キーボードフックで検索すればいくつか引っかかるかと。

923 :デフォルトの名無しさん:02/06/07 17:32
>>922
ありがとうございます

924 :無責任だが:02/06/07 19:04
>>921
A は無理だけど
 別のアプリ使ってて Shift+Ctrl+A とかなら ホットキーを使うといい

1) フォームのOnCreateで
const MyId= 1234;
procedure TForm1.FormCreate(Sender: TObject);
var Key,Modifiers: Word; Shift: TShiftState;
begin
ShortCutToKey(TextToShortCut('Shift+Ctrl+A'),Key,Shift);
Modifiers:=ord( ssAlt in Shift )* MOD_ALT ;
Modifiers:=ord( ssCtrl in Shift )* MOD_CONTROL +Modifiers ;
Modifiers:=ord( ssShift in Shift )* MOD_SHIFT +Modifiers ;

UnRegisterHotKey(Handle, MyId);
RegisterHotKey(Handle, MyId,Modifiers ,Key) ;
end;

2) OnDestroyで
procedure TForm1.FormDestroy(Sender: TObject);
begin
UnRegisterHotKey(Handle, MyId);
end;

3) フォームにメッセージハンドラを追加
procedure WMHotKey(var Msg: TWMHotKey); message WM_HOTKEY;


925 :デフォルトの名無しさん:02/06/07 19:09
>>924

>>922

926 :デフォルトの名無しさん:02/06/07 21:18
適当な文字列の最後の\以降の文字列の、最後の.以降の文字(拡張子です)を獲得したいのですが、
正規表現コンポーネントを使用せずに獲得する方法ってあるでしょうか?

927 : :02/06/07 21:19
>>926
ExtractFileExt

928 :A:02/06/07 21:23
>>926
ファイル名から拡張子を抜き出したいだけなら、ExtractFileExt じゃだめ?
任意の文字列から、だと上手く動くか判らんが・・・・・

929 :デフォルトの名無しさん:02/06/07 21:23
スクリーンセーバーのように、ユーザの入力が一定時間無かった時に特定の動作をする
プログラムを作りたいのですが、DLLを作ってグローバルなマウス入力やキー入力をフックするしか
方法はないのでしょうか?

930 :デフォルトの名無しさん:02/06/07 21:27
すいません、出来ました。

931 :930:02/06/07 21:28
すいません、930=926です。

932 :デフォルトの名無しさん:02/06/07 21:28
>>929
Delphiじゃそんなことできねーよ(藁

933 :デフォルトの名無しさん:02/06/07 21:47
DelphiってC++Builder6のMasksはないんでしったけ?
Masks::MatchesMask(filename, "*.txt")


934 : :02/06/07 21:49
>>932
いやできるだろ・・・

935 :929:02/06/07 21:52
>>932 >>934
どっちなんでしょう?
できるのならば、どのようにすればいいのでしょうか?

936 :デフォルトの名無しさん:02/06/07 21:56
>>933
Personal には無いみたい。
Pro版には付いてるようです。

937 :デフォルトの名無しさん:02/06/07 22:10
>>935
もうちょい具体的に言わないと何とも言えぬ。
バックグラウンドで動作するのか、アクティブなのか、とかね。

938 :デフォルトの名無しさん:02/06/07 23:21
次スレ

http://pc.2ch.net/test/read.cgi/tech/1021262086/l50

939 :909です:02/06/08 00:42
911,913さん
   ごめなさい〜ほんと、endがなかったです。申し訳ありません
   ほんとの素人とは私です......

940 :デフォルトの名無しさん:02/06/08 01:19
D6proからADOでmdbファイルを使ってプログラムしようとしているのですが、
私の認識としては mdbを使う場合、Access自体かAccessのランタイムが必要になる
であろうと考えておりました、実験してみると、やはりAccessが入っていないPCでは
mdbへアクセス出来ませんでした。
ここまでは予想していた通りだったのですが、実はOfficeのDeveloper版を購入してあり、
AccessRTのセットアップでAccessのランタイムをインストールすると見事にD6で作成
したプログラムが実行できましたが、Accessのランタイムをアンインストールした後も
実行出来る事が判りました。D6からmdbを使う場合にはAccessのランタイムをインストール
しなくても何かDLLをコピーするだけで使えるのでしょうか?
mdb(Access)側でVBAを使うでもなく、単にDelphiのISAMファイルとしてmdbを
利用したいだけなのですが・・・。



941 :素人:02/06/08 01:19
>>939
今時珍しい心の清らかな人アルネ。あやまらんでもいいアルヨ。

942 :940:02/06/08 02:41
MDAC_TYP.EXE と Jet40Sp3_Comp.exe を
http://www.microsoft.com/japan/msdn/data/download.asp
ここから取ってきてインストールするだけでした、

これを再配布して良いのか悪いのかイマイチ不明ですが、とりあえずAccessランタイム無くても解決しました。
この構成でmdbの最適化(サイズを小さくするやつ)ができるのか不明ですが、これから試してみます。

943 :デフォルトの名無しさん:02/06/08 03:12
>>940
DBをアプリで使う&配布を簡単に済ませたい場合は
MyBaseしかないかなーと思いこんでいたからAccess+ADOは
盲点だった&ちょっと注目してる。
この方法だとAccessさえ持ってればアプリで作成したデータを
Accessで好きなように加工/メンテ/他形式への変換ができるから
作り込むアプリの機能を最低限で済ませられるメリットがあるのが
良いね。
もしよかったら今後も経過報告してくれるとうれしい。

944 :デフォルトの名無しさん:02/06/08 08:38
サブルーチンを作って呼び出すにはどうすれば良いんでしょうか?

945 :デフォルトの名無しさん:02/06/08 09:11
>>944
procedure sub(var x:Integer);
begin
x:= x*x;
end;

と、どこかに書きます。 コンパイルしてエラーが出るなら書く場所が違うので移動



946 :デフォルトの名無しさん:02/06/08 09:25
サブルーチンでなく、"関数"あるいは"手続き"でヘルプをお探しなさい

947 :デフォルトの名無しさん:02/06/08 09:29
>>945
それを呼び出すにはどうすれば良いんでしょうか?
sub(nil);だとエラーが出ます。

948 :デフォルトの名無しさん:02/06/08 10:23
>>947
Integerにnilを渡しちゃだめ。
変数パラメータに定数を渡しちゃだめ。

procedure sub(x: Integer); とすれば、

sub(0); で呼び出し可能。でも計算結果は戻ってこない。

てか、これはマジな質問なのか?


949 :デフォルトの名無しさん:02/06/08 11:06
>>942
ライセンス
http://www.microsoft.com/JAPAN/msdn/data/download/mdac/26/26eula.htm


950 :デフォルトの名無しさん:02/06/08 11:52
ねたに一票。
そもそもnilを渡すことなど思いつくことがおかしい・・・。

951 :デフォルトの名無しさん:02/06/08 12:18
サブルーチンとか言ってるし、ブビ厨か?
nilを代入したのも、新しく覚えた言葉を使いたがってるだけとか。

952 :929:02/06/08 12:39
>>937
アプリがアクティブかどうかは問いません。
どちらかで動作していて、ユーザがパソコンに触れていない時間が続いたら、
自動的に終了するようにしたいのですが、どうすればできるのか見当も付きません・・・

953 :945:02/06/08 13:25
有難う御座いました 出来ました。
nil=null=空で使えるかと思ってました。

954 :953:02/06/08 13:30
×945 ○947

955 :948:02/06/08 13:36
>>953
ネタじゃないらしいので一言。

nilは空のポインタだが、数値に空という概念はない(必ず何かの値が入っている)。

Delphiに限定した話ではないが、0とnil(null)を混同しているなら整理が必要。


956 :デフォルトの名無しさん:02/06/08 21:49
>>952
「ユーザがパソコンに触れていない時間」を取得できればいいわけか。
昔メーリングリストでそんなのあったな・・・

957 :デフォルトの名無しさん:02/06/08 21:55
>>952
アプリの外で何か作業をしているかを確認しないといけないならフックが必要だと思いますよ。

958 :デフォルトの名無しさん:02/06/09 08:14
>「ユーザがパソコンに触れていない」
なら、スクリーンセーバを登録して、スクリーンセーバからメッセージを貰ったら?

959 :デフォルトの名無しさん:02/06/09 09:53
>>958
ユーザのスクリーンセーバーの設定を強引に変更するのはスマートじゃないよねぇ

960 :間違って誤爆してしまた:02/06/09 11:02
 pCharをファイルに書き込む際、
var
p: pChar;
f: file;
begin
(略)
BlockWrite(f, p, StrLen(p)+1);
(略)
end;
としているのですが、読みとり方が分かりません。
#0が出るまで1Byteずつ調べていかねばならないのですか?

961 :デフォルトの名無しさん:02/06/09 12:09
>>960
後方シークが許されるなら、適当な長さずつまとめて読み込んで、メモリ上で
#$00を探す、という手が使えますが、出来ないなら1Byteずつ、ってなりますね。

特に既存のファイルフォーマットに制約されないなら、文字列の直前に
文字列長を書き込んどけば楽でっせ。

var
 s: String;
 len: Byte;

//書き込むとき
 len := Length(s);
 BlockWrite(f,len,1);
 BlockWrite(f,PChar(s)^,len);

//読み込むとき
 BlockRead(f,len,1);
 SetLength(s,len);
 BlockRead(f,PChar(s)^,len);

これだとByte型の制約から255文字までだけど・・・

962 :デフォルトの名無しさん:02/06/09 12:19
>>961
 なるほど、やはり直前にサイズを書いておくべきですね。
ファイルのパスを保存するので、ShortIntを用いれば十分ですね。

963 :962:02/06/09 12:20
ミスった…。ShortIntじゃなくてSmallIntです。

964 :デフォルトの名無しさん:02/06/09 14:44
>>956
それ、やっぱDLL作ってシステムフックでやるの?

ちょっと面倒だなぁ…
いろいろと…

965 :962:02/06/09 15:32
 あるプロシージャでpCharのメモリをStrAllocを用いて確保したのを、
別のプロシージャ(Destroy)でStrDisposeを用いて解放しようとすると
無効なポインタ操作と言われます。
 解放するにはどうしたらいいのでしょうか?

966 :デフォルトの名無しさん:02/06/09 17:19
>>965
方法は間違ってない。なにか変なことやってるだろ。
ソース晒してみたら?

967 :デフォルトの名無しさん:02/06/09 18:08
>>965
…ローカル変数じゃねーの?

968 :デフォルトの名無しさん:02/06/09 18:53
>>965-967
ローカル変数だったら「未定義の識別子」だろ。
やっぱソース晒すしか無さそうだね。

あとString使って、SetLengthで代用できるなら、そっちの方が
なにかと安全かな。

969 :デフォルトの名無しさん:02/06/09 18:55
>>968 ローカル変数だったら「未定義の識別子」だろ。
違うプロシージャで同じ名前のローカル変数っていう可能性もある

970 :965=962:02/06/09 19:20
PDataSという、TDataS構造体へのポインタがありまして…。
Name: pCharといふフィールドを持っています。(他にもありますが)
これをTListを継承したリストに格納(StrAllocとStrPLCopyで。)
して、Destroyするときに
for i := 0 to Count-1 do
begin
StrDispose(PDataS(Items[i])^.Name);
  Dispose(Items[i]);
end;
としているんですが、どこが違うでしょうか?

971 :デフォルトの名無しさん:02/06/09 19:32
>>970
StrDisposeじゃなくてDisposeのほうじゃない?

972 :965=962:02/06/09 19:36
>>971
 StrDisposeの方をコメントアウトすると例外が生成されないんですが…。

973 :デフォルトの名無しさん:02/06/09 19:42
>>972
StrAllocの方はどうやってる?

974 :デフォルトの名無しさん:02/06/09 19:42
こういう場合どうするんでしょうか


str := ''';



975 :965=962:02/06/09 19:48
>>973
procedure AddData(bs: String;...);
var
ps: PDatas;
(略)
New(ps);
ps^.Name := StrAlloc(Length(bs)+1);
StrPLCopy(ps^.Name, bs, Length(bs));
(略)
Add(ps);
としています。
>>974
str := #$27;
で良いと思います。

976 :デフォルトの名無しさん:02/06/09 20:00
>>972
Disposeの方をコメントアウトしても例外が生成されないだろ、多分。
とりあえず、
> Dispose(Items[i]);

Dispose(PDataS(Items[i]));
だと思われ。

977 :974:02/06/09 20:03


>975

アリガトウ



978 :デフォルトの名無しさん:02/06/09 20:04
>>974
str := '''';

979 :965=962:02/06/09 20:06
>>976
 Dispose(PDataS(Items[i]));
に書き換えましたが、やはり例外が発生します。

980 :デフォルトの名無しさん:02/06/09 20:17
>>979
ここに上がってるソースには問題ない。
どこかほかの個所でメモリを破壊してるんだろ。

ちなみに↓はうまくいくコードだ。

procedure TForm1.Button1Click(Sender: TObject);
type
 PDatas = ^TDataS;
 TDataS = record
  Name: PChar;
 end;
var
 ps: PDatas;
 bs: String;
 list: TList;
 i: Integer;
begin
 list := TList.Create;
 bs := '( ´∀`)';
 for i := 0 to 999 do begin
  New(ps);
  ps^.Name := StrAlloc(Length(bs)+1);
  StrPLCopy(ps^.Name, bs, Length(bs));
  list.Add(ps);
 end;

 for i := 0 to list.Count - 1 do begin
  StrDispose(PDataS(list.Items[i])^.Name);
  Dispose(PDataS(list.Items[i]));
 end;
 list.Free;
end;

981 :デフォルトの名無しさん:02/06/09 20:19
DataSの他のメンバは?Nameを上書きしていない?

982 :965=962:02/06/09 21:31
>>980-981
 う〜ん、色々と見たんですが何せソースが膨らみすぎてて…。
印刷して色々と調べてみます。

983 :デフォルトの名無しさん:02/06/09 22:30

  ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ( ´∀`)<. 次スレはこちら(重複スレを再利用)。
 (    ) .| モナーの *やさしい* Delphi質問スレ Ver.7
 | | |  | http://pc.2ch.net/test/read.cgi/tech/1021262086/l50
 (__)_)  \_________________________

984 :デフォルトの名無しさん:02/06/11 09:26
>>983 整理しにくくなるじゃねーかよ! 新しいの立てろゴルァ!


985 :デフォルトの名無しさん:02/06/11 13:35
>>984
あっちを残しておくとまた厨がageて
ごっちゃになるのであっち使おうぜ。

986 :984:02/06/11 17:59
>>985
しゃーねーな、削除依頼出して消してもらえんのかな。

987 :デフォルトの名無しさん:02/06/11 18:22
>>984
スレのタイトルが気に食わないんだったら
.idxファイルを直接いじって変えられるけど?

的外れなレスだったらスマソ

988 :デフォルトの名無しさん:02/06/11 18:23
あ、かちゅ〜しゃ使ってるんだったらだけどね


240 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.02 2018/11/22 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)