Delphi相談室その2

このエントリーをはてなブックマークに追加
>>941
procedure = 手続き じゃないっけ?
945941:01/12/27 01:44
そうれす。ぷろしじゃーれす。でも「手続き」と言うのれす。
ぷろしじゃーと言えばいいかもしれないれすが、
やっぱり正式に日本語だと手続きなのれす。
なんかイヤれす。
てへ★
procedureも関数これ最強。
947  :01/12/27 02:16
ボーランドのC++スイートって奴
15000円なんだけど買っても損しない?
ってスレ違いか、、、
>>947
そんではないかは、自分次第。
俺はきっとTASMしか使わないだろうから、\15kだと微妙。
C++スイートって何?
旧製品の廉価版たたき売り
>938 ほんとだ! wsprintf って使えたよ!
>>952 ウ ソ ツ キ !
954952:01/12/27 09:55
>>953 ウソじゃないぞ 試してみ

function wsprintf(var Output ; Format: PChar): Integer;
cdecl; varargs; external user32 name 'wsprintfA';

procedure TForm1.FormCreate(Sender: TObject);
var s:string;
begin
setlength(s,1000);
wsprintf(pchar(s)^,'%5d %5d', 1,100);
Caption:=PChar(s);
end;
ワオ。知らなかった。

>>953
Helpに書いてあるぞ
956953:01/12/27 17:06
いや、いいわけすると、windowsユニットのをそのまま使っても使えないんだよ
957デフォルトの名無しさん:01/12/28 09:04
もしかして
 Caption:=PChar(s);
 ってやると ゼロ終端探して長さ調整してくれるの? それは仕様?
PChar(s)はゼロ終端文字列として扱われるから仕様。(string→PCharへのキャスト)
途中に\0があるとLength(s)とLength(PChar(s))の結果も違う。
ヘルプに記述あったかな?
959957:01/12/28 09:30
そうか、堅い言語だと思ってたけど案外なんでもありって面もあるんだな

pchar(s)^ もなんだか驚き
960ねこま:01/12/28 11:55
var
 s: string;
 p: PChar;
begin
 p := PChar(s);
 while (p^ <> #0) do
 begin
  Inc(p)^;
 end;
end;
961デフォルトの名無しさん:01/12/28 13:07
>>960 s に対する setlength を忘れてる 危険
962ねこま:01/12/28 16:18
いやまあそうだけど (w

> while (p^ <> #0) do
これが言いたかっただけ
963デフォルトの名無しさん:01/12/28 23:37
string型はポインタでないのに、ポインタ型であるPCharにキャストできるのって、
変じゃない?
@(string+1)=PChar(string)だから変だとは思わないけど・・・・・・
>>963
var S: String;
begin
S[1] := '1';
とか出来る所を見るとSはオブジェクト参照型の一種のように
見える。オブジェクト参照型はポインタ型と同じアドレス格納型
だからキャスト出来て問題無い。(でもnilは代入出来ないな・・)

まあ、コンパイラからはかなり特別扱い受けてる型だかバリアント
に比べれば・・・
@string にはもしかして、参照数が書き込まれてるのか。
PChar(@S[1])を使えばいいのか。

S[1]:='1';
が出来るのは、以前のバージョンとの互換性を持たせたからですよね。
短い文字列型ではSは配列になるから・・・。
>966
参照数は Integer(@string) - 8 では?
長さが -4?
@stringから文字列が始まるの?
そのくせ文字列はs[1]から始まるんですよね。
短い文字列の仕様に合わせてですよね
>>969
CとPascal文字列両方との互換性を持たせるため。
長い文字列型は実際にはポインタ型だね。
[言語ガイド]-[メモリ管理]-[長い文字列型]参照。
stringの内部構造は旧バージョンの構造引きずってるんだよな。
たまに[1]で始まるの忘れててバグ作っちまうときがあるよ。
でも最初、ポインタの前のアドレスに文字列数なんかのデータあるってのが、
びっくりした。
短い文字列は、0byte目に長さ、1byte目以降に文字列が入ってて
長い文字列は、-8byte目に参照数、-4byte目に長さ、0byte目以降に
文字列が入ってるんだっけ?よくよく考えてみると訳ワカメだな。
stringは内部ではクラス扱いに近いとかって中村師言ってなかった?
確か参照カウンタで管理されてて、
他の文字列に代入してもすぐにはコピーされず、
変更したときに初めてコピーされるんだっけ?
TBitmapなんかもこんな感じだよな
>>974
「コピーオンライト」だね。
9761:02/01/03 11:55
スレッドたてすぎらしくて たてられません・・・どなたかお願いします
---以下テンプレート----------------------------------------
Delphi関連のTips Q&A はこちらです。

気楽な雰囲気がよければこちら
モナーの *やさしい* Delphi質問スレ
http://pc.2ch.net/test/read.cgi/tech/1003113413/

希望や夢はこちらに
★クライアントサイド最強の Delphi に物申す★
http://pc.2ch.net/test/read.cgi/tech/1001442200/

メーリングリストのウオッチすれはこちら
Delphi/Kylix Tech 2nd
http://pc.2ch.net/test/read.cgi/tech/993005709/

つづく >>2-3 あたり


キャラ系雑談はこちらで
ミ,,゚Д゚彡DelフサギコのフサフサDelphi談話室A
http://pc.2ch.net/test/read.cgi/tech/1006602102/

APIで直接な漢な人はこちら
Delphiで小さな実行ファイルを作ろう
http://pc.2ch.net/test/read.cgi/tech/1009080085/

ギコBASIC拡張計画
http://pc.2ch.net/test/read.cgi/prog/961558082/

前の Delphi相談室2
http://pc.2ch.net/test/read.cgi/tech/995950803/

前の  Delphi相談室
http://piza.2ch.net/tech/kako/971/971261573.html
977 :02/01/04 18:30
Delphi相談室を統一してほしい、
と、思うのは私だけ?
978デフォルトの名無しさん:02/01/04 18:49
もっとあってもいいくらいだとおもふ。

入らんコンポーネントを述べるスレとか
DEL6 perでプロを越えるためのツール探しのすれとか
979デフォルトの名無しさん:02/01/04 19:05
Delphi 6 いいかげんに XP スタイルに対応してくれ
980デフォルトの名無しさん:02/01/04 19:40
D6Pro起動するまで、やたら時間が掛かる。
要らないコンポーネントを削除したりすれば、起動時間短縮は可能?
てか、要らないコンポーネントて言っても、どれが要らないものやら・・・・・
パッケはロード/アンロード自由だから、とりあえず全部外してみたら?
982デフォルトの名無しさん:02/01/04 20:23
試してみたけど、実感できるような違いはなかった・・・・・
起動時間と登録されてるコンポーネントの数は関係ないらしい。
D5と何が違うんだろ?
漏れはD6の起動に16秒かかるんだが、試しにすべてのパッケージを
デフォルトでアンロードに設定したら1秒で起動したYO!

でも、コンポーネントが TFrame しかない Delphi なんて・・・
984デフォルトの名無しさん:02/01/04 21:56
TActionManagerと、TActionMainMenuBar, TActionToolBar使って
UIを作っているのですが、ツールバーの方のキャプションを変更
しても、実行時に反映されないのですが、何か間違っているんでしょうか?
ツールバーのボタンをクリックすると、オブジェクトインスペクタに
TActionClients[n](nはクリックしたボタンによる)が出てきますよね?
そこのCaptionを消去しても、実行時にはキャプションが復活してる
んです。
>>983
ごめん、パッケージのアンロードってどうやったらいいんでしょう?
「コンポーネント→パッケージのインストール」で、設計時パッケージの
チェックを外すだけじゃ駄目?これだと殆ど変化なしです。何故だ〜
986デフォルトの名無しさん:02/01/04 23:12
>>985 [デフォルト] にチェックしわすれたとか
988デフォルトの名無しさん:02/01/05 09:31
どこかDelphi6の初心者向け講座とかありませんか?
webで入門はやめとけ。書籍買え。
990デフォルトの名無しさん:02/01/05 11:00
>>989
どういう本がお勧めですかね?
Delphi6 開発者ガイド
992デフォルトの名無しさん:02/01/05 11:43
サルでも分かるDelphi
1000