Недавно добавленные исходники

•  TDictionary Custom Sort  3 199

•  Fast Watermark Sources  2 960

•  3D Designer  4 726

•  Sik Screen Capture  3 231

•  Patch Maker  3 445

•  Айболит (remote control)  3 511

•  ListBox Drag & Drop  2 883

•  Доска для игры Реверси  80 260

•  Графические эффекты  3 822

•  Рисование по маске  3 152

•  Перетаскивание изображений  2 519

•  Canvas Drawing  2 646

•  Рисование Луны  2 474

•  Поворот изображения  2 067

•  Рисование стержней  2 101

•  Paint on Shape  1 507

•  Генератор кроссвордов  2 159

•  Головоломка Paletto  1 713

•  Теорема Монжа об окружностях  2 143

•  Пазл Numbrix  1 638

•  Заборы и коммивояжеры  1 993

•  Игра HIP  1 255

•  Игра Go (Го)  1 192

•  Симулятор лифта  1 409

•  Программа укладки плитки  1 153

•  Генератор лабиринта  1 490

•  Проверка числового ввода  1 280

•  HEX View  1 451

•  Физический маятник  1 311

•  Задача коммивояжера  1 349

 
скрыть


Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

Показать TRadioButtons в TListView



Оформил: DeeCo

unit Unit1;

 interface

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

 type
   TMain = class(TForm)
     ListView1: TListView;
     Button1: TButton;
     Button2: TButton;
     procedure FormCreate(Sender : TObject);
     procedure FormDestroy(Sender : TObject);
     procedure Button1Click(Sender : TObject);
     procedure Button2Click(Sender : TObject);
   private
     ListViewRadioList: TList;
     procedure ListViewRadioCreate(List : TListView; R : TRect);
     procedure ListViewRadioClear(List : TListView; Liste : TList);
     procedure ListViewRadioFree(List : TListView; Liste : TList);
     procedure ListViewListSelected(Item : integer; List : TListView);
     procedure ListViewRadioClick(Sender : TObject);
   public
     { Public-Deklarationen }
   end;

 var
   Main : TMain;

 implementation

 {$R *.DFM}

 procedure TMain.FormCreate(Sender : TObject);
 begin
   ListViewRadioList := TList.Create;
 end;

 procedure TMain.FormDestroy(Sender : TObject);
 begin
   ListViewRadioFree(ListView1, ListViewRadioList);
 end;

 procedure TMain.Button1Click(Sender : TObject);
 var
   R : TRect;
   NewColumn : TListColumn;
   ListItem : TListItem;
   I : integer;
 begin
   with ListView1 do
   begin
     ViewStyle := vsReport;
     Align := alLeft;
     RowSelect := True;
     ReadOnly := True;
     ShowColumnHeaders := False;
     NewColumn := Columns.Add;
     NewColumn.Width := 15;
     NewColumn := Columns.Add;
     NewColumn.Width := Width - 15 - 19; // - breite Button - breite vom Scrollbalken 
    Items.BeginUpdate;

     for I := 0 to 9 do
     begin
       ListItem := Items.Add;
       R := Items[I].DisplayRect(drBounds);
       R.Left := 1;
       R.Right := Columns[0].Width;
       ListViewRadioCreate(ListView1, R);
       Items[I].Data := TRadioButton(ListViewRadioList[I]);
       ListItem.SubItems.Add('Test' + IntToStr(I));
     end;
     Items.EndUpdate;
   end;
 end;

 procedure TMain.Button2Click(Sender : TObject);
 begin
   ListViewRadioClear(ListView1, ListViewRadioList);
 end;
 //------------------------------------------------------------------------------ 

procedure TMain.ListViewRadioCreate(List : TListView; R : TRect);
   function NewViewRadio: TRadioButton;
   begin
     Result := TRadioButton.Create(Self);
     Result.Parent := List;
     Result.BoundsRect := R;
     Result.OnClick := ListViewRadioClick;
   end;
 begin
   ListViewRadioList.Add(NewViewRadio);
 end;
 //------------------------------------------------------------------------------ 

procedure TMain.ListViewRadioFree(List : TListView; Liste : TList);
 var
   I : integer;
 begin
   if Liste.Count - 1 < 0 then exit;
   for I := 0 to Liste.Count - 1 do TRadioButton(Liste[I]).Free;
   Liste.Free;
 end;
 //------------------------------------------------------------------------------ 

procedure TMain.ListViewRadioClear(List : TListView; Liste : TList);
 var
   I : integer;
 begin
   if Liste.Count - 1 < 0 then exit;
   List.Items.BeginUpdate;
   for I := 0 to Liste.Count - 1 do TRadioButton(Liste[I]).Free;
   List.Items.Clear;
   Liste.Clear;
   List.Items.EndUpdate;
 end;
 //------------------------------------------------------------------------------ 

procedure TMain.ListViewListSelected(Item : integer; List : TListView);
 begin
   with List do
   begin
     try
       SetFocus;
     except
     end;
     Selected := Items[Item];
     ItemFocused := Selected;
   end;
 end;

 //------------------------------------------------------------------------------ 
procedure TMain.ListViewRadioClick(Sender : TObject);
 var
   I : integer;
 begin
   for I := 0 to ListViewRadioList.Count - 1 do
     if TRadioButton(ListViewRadioList[I]).Checked then
     begin
       ListViewListSelected(I, ListView1);
       break;
     end;
 end;

 end.







Copyright © 2004-2024 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

Группа ВКонтакте