喫茶XRAYトップページ

[スレッド全体
]

[13130] Delphi 雑感返信 削除
2019/11/11 (月) 15:11:56 Mr.XRAY
ポインタ関係と TList の記事とサンプルをかなり修正変更しました.

もしかしたら C とか C++ の経験がないと実感てきないのかも知れませんが,
Delphi というのは実によくできています.
スゴイですわ.今更ですが.
業務アプリの開発に集中している時は気にもしなかったのですが.

気にもしなかった言えば,思い出したことがあります.
昔,ML だか Nifty のフォーラムで TOpenDialog の質問がありました.
Delphi 6 / 7 の時代の頃です.
レスした方が,
「ヘルプに書いてありますよ」
質問された方の反応
「私のヘルプには OpenDialog がないんですよ」

その後の経過は知りません.
当時はそういうことに興味が全くと言っていいほどありませんでしたから.


[13137] Re:Delphi 雑感返信 削除
2019/11/15 (金) 18:55:52 Mr.XRAY
▼ Mr.XRAYさん
> ポインタ関係と TList の記事とサンプルをかなり修正変更しました.

まだまだ続いています.

[ なんでポインタ演算ができないのよ(しくしく) ]
https://hp.vector.co.jp/authors/VA015850/delphi/tips/etc04.html

こういうことなのかな ?
よくわからんけど.
C のようにはいきませんね.ポインタを移動してから代入となるでしょう.

C の char がポインタ型だからと,Delphi で
   var
     P : ^Char;
とすると Char 型 (1 文字の文字型) のポインタ型の変数になってしまいます.


procedure TForm1.Button1Click(Sender: TObject);
var
  P : PChar;    // char *p 相当
  S : array[0..999] of Char;
begin
  StrCopy(S, 'Hello World');

  p := @S;
  Memo1.Lines.Add(P);

  P[5] := 'W';
  Inc(P, 5);
  Memo1.Lines.Add(P);
end;



[13138] Re2:Delphi 雑感返信 削除
2019/11/16 (土) 10:02:57 福士

[13139] Re3:Delphi 雑感返信 削除
2019/11/16 (土) 14:20:08 Mr.XRAY
▼ 福士さん
> {$POINTERMATH ON} でCっぽくできますね。
> http://docwiki.embarcadero.com/RADStudio/Rio/ja/Pointer_Math_%EF%BC%88Delphi%EF%BC%89


へぇー,こんなのがあるんですね.
知りませんでした.
PChar 型だとこんなことができるんですが.


procedure TForm1.Button1Click(Sender: TObject);
var
  LPChar : PChar;
begin
  Memo1.Lines.Clear;

  LPChar := '日本語テスト文字列';
  LPChar := LPChar + 6;

  Memo1.Lines.Add(LPChar);
end;



[▼次のスレッド]
INCM/CMT
Cyclamen v3.82