For S in ['Aa', 'Bb', 'Cc', 'Zz'] do {序数型が必要です}

解決


ウォレス  2022-09-05 01:57:10  No: 150425  IP: 192.*.*.*

ごめんなさい。質問じゃないです。
Delphi 10.3 までは使えなかった下記構文が 10.4 以降使えるようになってます。地味に便利。
管理者様、問題があるようなら削除ください

procedure TForm1.FormCreate(Sender: TObject);
var
  C: integer;
  S: string;
begin

  Form1.Caption := '';

  for C in [1 .. 4, 15, 16] do //これはずっと以前からOK
  begin
    Form1.Caption := Form1.Caption + IntToStr(C);
  end;

  for S in ['Aa', 'Bb', 'Cc', 'Zz'] do // ----10.3では 「序数型が必要です」エラー
  begin
    Form1.Caption := Form1.Caption + S;
  end;

end;

編集 削除
HFUKUSHI  2022-09-05 05:47:12  No: 150426  IP: 192.*.*.*

これは知らなかったです。
[]の扱いがバージョンアップ毎に少しずつ改善されてるのが面白いですよね(集合型、動的配列型のどっちとも取れる構文なので)

編集 削除
Mr.XRAY  2022-09-05 22:56:33  No: 150428  IP: 192.*.*.*

>  for C in [1 .. 4, 15, 16] do //これはずっと以前からOK 

for in do の構文は Delphi 2005 からですね.
バージョンがあがる度に地味に便利になっていきますよね.

> 管理者様、問題があるようなら削除ください

では,ハイ削除 !!
この掲示板は,数少ない貴重な掲示板です.
いろいろな情報は,この掲示板を利用する方には便利だと思います.
私なんか,質問者を押しのけて,余計なお世話の書き込みをしています.

編集 削除
ウォレス  2022-09-07 01:54:41  No: 150429  IP: 192.*.*.*

DEKOさんや 
https://www.petitmonte.com/bbs/answers?question_id=29982
この方
https://lyna.hateblo.jp/entry/20100319/1269001703
によると、以前は

for s in TArray<string>.Create('Aa','Bb', 'Cc') do 

っていう変態構文(ごめんなさい)を使っていたみたいですね。

編集 削除
ウォレス  2022-09-07 04:10:24  No: 150430  IP: 192.*.*.*

Mr.XRAY さま、
>この掲示板は,数少ない貴重な掲示板です.

ここが 「Delphi Q&A 掲示板」 だったころから利用していたので、てっきり質問サイトと思っておりましたが、
いつの間にか Q&A という文言はなくなって 掲示板(サロン?)になっていますね。
安堵しました。 

編集 削除