掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
上位5つを抽出するには (ID:18532)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
例を挙げます。 新規で Form1 に Memo1、Button1、Button2 をセットし、uses に Contnrs を加えて以下のようにします。 uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Contnrs; type TForm1 = class(TForm) Memo1: TMemo; Button1: TButton; Button2: TButton; procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private 宣言 } public list: TObjectList; // ここは手で書く procedure Display; // ここは手で書く end; var Form1: TForm1; implementation {$R *.dfm} type // ここは手で書く TTestRecord = class(TObject) public bango : integer; tokuten: integer; end; procedure TForm1.FormCreate(Sender: TObject); var i: integer; tr: TTestRecord; begin list := TObjectList.Create(true); Randomize; for i := 0 to 9 do begin tr := TTestRecord.Create; tr.bango := i; tr.tokuten := Random(101); list.Add(tr); end; end; procedure TForm1.FormDestroy(Sender: TObject); begin list.Free; end; procedure TForm1.Display; // ここは手で書く var i: integer; tr: TTestRecord; begin Memo1.Clear; for i := 0 to list.Count-1 do begin tr := TTestRecord(list[i]); Memo1.Lines.Add(Format('bango: %.2d tokuten: %.3d',[tr.Bango, tr.tokuten])) end; end; procedure TForm1.Button1Click(Sender: TObject); begin Display; end; function Koujun(Item1, Item2: Pointer): Integer; // ここは手で書く begin result := TTestRecord(Item2).tokuten - TTestRecord(Item1).tokuten; end; procedure TForm1.Button2Click(Sender: TObject); begin list.Sort(Koujun); Display; end; end. Button1 を押すと10人分の番号と得点を Memo1 に表示します。 Button2 を押すと得点の高い方から並べて表示します。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.