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

解決


ウォレス  2022-09-05 10:57:10  No: 150425

ごめんなさい。質問じゃないです。
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 14:47:12  No: 150426

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


Mr.XRAY  2022-09-06 07:56:33  No: 150428

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

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

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

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


ウォレス  2022-09-07 10:54:41  No: 150429

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 13:10:24  No: 150430

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

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


※返信する前に利用規約をご確認ください。








  このエントリーをはてなブックマークに追加