>>941 procedure = 手続き じゃないっけ?
そうれす。ぷろしじゃーれす。でも「手続き」と言うのれす。
ぷろしじゃーと言えばいいかもしれないれすが、
やっぱり正式に日本語だと手続きなのれす。
なんかイヤれす。
てへ★
procedureも関数これ最強。
ボーランドのC++スイートって奴
15000円なんだけど買っても損しない?
ってスレ違いか、、、
>>947 そんではないかは、自分次第。
俺はきっとTASMしか使わないだろうから、\15kだと微妙。
C++スイートって何?
旧製品の廉価版たたき売り
>938 ほんとだ! wsprintf って使えたよ!
>>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に書いてあるぞ
いや、いいわけすると、windowsユニットのをそのまま使っても使えないんだよ
957 :
デフォルトの名無しさん:01/12/28 09:04
もしかして
Caption:=PChar(s);
ってやると ゼロ終端探して長さ調整してくれるの? それは仕様?
PChar(s)はゼロ終端文字列として扱われるから仕様。(string→PCharへのキャスト)
途中に\0があるとLength(s)とLength(PChar(s))の結果も違う。
ヘルプに記述あったかな?
そうか、堅い言語だと思ってたけど案外なんでもありって面もあるんだな
pchar(s)^ もなんだか驚き
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 を忘れてる 危険
いやまあそうだけど (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なんかもこんな感じだよな
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
Delphi6 開発者ガイド
992 :
デフォルトの名無しさん:02/01/05 11:43
サルでも分かるDelphi
1000