delphi listview " />

扫描二维码下载沐宇APP

沐宇

微信扫码使用沐宇小程序

沐宇

delphi鐨凩istView鍒嗛〉鏄剧ず鎬庝箞瀹炵幇

扬州沐宇科技
2023-11-10 01:02:30
delphi listview

瑕佸疄鐜癉elphi鐨凩istView鍒嗛〉鏄剧ず锛屽彲浠ユ寜鐓т互涓嬫楠よ繘琛屾搷浣滐細

  1. 鍦―elphi鐨勭獥浣撲笂鏀剧疆涓€涓狶istView鎺т欢锛岀敤浜庢樉绀烘暟鎹€?/li>
  2. 璁剧疆ListView鐨刅iewStyle灞炴€т负vsReport锛岃繖鏍峰彲浠ヤ互鎶ヨ〃褰㈠紡鏄剧ず鏁版嵁銆?/li>
  3. 鍦ㄧ獥浣撲笂鏀剧疆涓€涓狢omboBox鎺т欢锛岀敤浜庨€夋嫨姣忛〉鏄剧ず鐨勬暟鎹潯鏁般€?/li>
  4. 鍦ㄧ獥浣撲笂鏀剧疆涓€涓狟utton鎺т欢锛岀敤浜庡垏鎹㈠埌涓婁竴椤点€?/li>
  5. 鍦ㄧ獥浣撲笂鏀剧疆涓€涓狟utton鎺т欢锛岀敤浜庡垏鎹㈠埌涓嬩竴椤点€?/li>
  6. 鍦ㄧ獥浣撶殑FormCreate浜嬩欢涓紝鍒濆鍖朙istView鐨勫垪鏍囬鍜屾暟鎹€?/li>
  7. 鍦–omboBox鐨凮nChange浜嬩欢涓紝鏇存柊姣忛〉鏄剧ず鐨勬暟鎹潯鏁帮紝骞堕噸鏂拌绠楁€婚〉鏁般€?/li>
  8. 鍦ㄤ笂涓€椤垫寜閽殑OnClick浜嬩欢涓紝璁$畻褰撳墠椤电殑璧峰绱㈠紩鍜岀粨鏉熺储寮曪紝骞舵洿鏂癓istView鐨勬樉绀烘暟鎹€?/li>
  9. 鍦ㄤ笅涓€椤垫寜閽殑OnClick浜嬩欢涓紝璁$畻褰撳墠椤电殑璧峰绱㈠紩鍜岀粨鏉熺储寮曪紝骞舵洿鏂癓istView鐨勬樉绀烘暟鎹€?/li>
  10. 鍦ㄧ獥浣撶殑UpdateListView鏂规硶涓紝鏍规嵁褰撳墠椤电殑璧峰绱㈠紩鍜岀粨鏉熺储寮曪紝浠庢暟鎹簮涓彇鍑哄搴旂殑鏁版嵁锛屽苟鏇存柊鍒癓istView涓€?/li>
  11. 鍦ㄧ獥浣撶殑UpdatePager鏂规硶涓紝鏍规嵁鎬婚〉鏁板拰褰撳墠椤垫暟锛屾洿鏂颁笂涓€椤垫寜閽拰涓嬩竴椤垫寜閽殑Enabled灞炴€с€?/li>

涓嬮潰鏄竴涓畝鍗曠殑绀轰緥浠g爜锛?/p>

unit MainForm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, StdCtrls;

type
  TMainForm = class(TForm)
    ListView1: TListView;
    ComboBox1: TComboBox;
    ButtonPrev: TButton;
    ButtonNext: TButton;
    procedure FormCreate(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
    procedure ButtonPrevClick(Sender: TObject);
    procedure ButtonNextClick(Sender: TObject);
  private
    FData: TStringList;
    FPageSize: Integer;
    FTotalPages: Integer;
    FCurrentPage: Integer;
    procedure UpdateListView;
    procedure UpdatePager;
  public
    { Public declarations }
  end;

var
  MainForm: TMainForm;

implementation

{$R *.dfm}

procedure TMainForm.FormCreate(Sender: TObject);
var
  I: Integer;
begin
  FPageSize := 10;
  FCurrentPage := 1;

  FData := TStringList.Create;
  for I := 1 to 100 do
    FData.Add('Item ' + IntToStr(I));

  ListView1.Columns.Add.Caption := 'Items';

  UpdateListView;
  UpdatePager;
end;

procedure TMainForm.ComboBox1Change(Sender: TObject);
begin
  FPageSize := StrToIntDef(ComboBox1.Text, 10);
  FCurrentPage := 1;

  UpdateListView;
  UpdatePager;
end;

procedure TMainForm.ButtonPrevClick(Sender: TObject);
begin
  if FCurrentPage > 1 then
  begin
    Dec(FCurrentPage);
    UpdateListView;
    UpdatePager;
  end;
end;

procedure TMainForm.ButtonNextClick(Sender: TObject);
begin
  if FCurrentPage < FTotalPages then
  begin
    Inc(FCurrentPage);
    UpdateListView;
    UpdatePager;
  end;
end;

procedure TMainForm.UpdateListView;
var
  I, StartIndex, EndIndex: Integer;
begin
  ListView1.Clear;

  StartIndex := (FCurrentPage - 1) * FPageSize;
  EndIndex := StartIndex + FPageSize - 1;
  if EndIndex >= FData.Count then
    EndIndex := FData.Count - 1;

  for I := StartIndex to EndIndex do
  begin
    with ListView1.Items.Add do
    begin
      Caption := FData[I];
    end;
  end;
end;

procedure TMainForm.UpdatePager;
begin
  FTotalPages := Ceil(FData.Count / FPageSize);

  ButtonPrev.Enabled := FCurrentPage > 1;
  ButtonNext.Enabled := FCurrentPage < FTotalPages;
end;

end.

浠ヤ笂浠g爜瀹炵幇浜嗕竴涓畝鍗曠殑ListView鍒嗛〉鏄剧ず鐨凞elphi绋嬪簭銆傞€氳繃ComboBox閫夋嫨姣忛〉鏄剧ず鐨勬暟鎹潯鏁帮紝閫氳繃鎸夐挳鍒囨崲涓婁竴椤靛拰涓嬩竴椤点€傛牴鎹綋鍓嶉〉鐨勮捣濮嬬储寮曞拰缁撴潫绱㈠紩锛屼粠鏁版嵁婧愪腑鍙栧嚭瀵瑰簲鐨勬暟鎹紝骞舵洿鏂板埌ListView涓€傚悓鏃讹紝鏍规嵁鎬婚〉鏁板拰褰撳墠椤垫暟锛屾洿鏂颁笂涓€椤垫寜閽拰涓嬩竴椤垫寜閽殑Enabled灞炴€с€?/p>

扫码添加客服微信