Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.02.2011, 15:10   #1
Tokko1
Пользователь
 
Регистрация: 19.02.2011
Сообщений: 11
По умолчанию отобразить историю нажатия Button и RadioButton

Дана задача: Пусть имеется форма,на ней размещены 5 RadioButton,причем пронумерованных по свойству Tag, и 5 Button. Требуется отобразить историю нажатия Button и RadioButton, как по отдельности, так и совместно.
Вот мой исходник, только он не выводить..... Помогите найти проблемму!!!( это на Delphi)
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, XPMan;
const CountHistory=10;
type
  TActions=class
     ComponentNames:string;
     constructor Create(CN:string);
     function Print:string;virtual;
  end;
  TRB=class(TActions)
    NumRB:integer;
    constructor Create(NRB:integer);
    function Print:string;override;
  end;
  TB=class(TActions)
    NameB:string;
    constructor Create(NB:string);
    function Print:string;override;
  end;
  TForm1 = class(TForm)
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    RadioButton3: TRadioButton;
    RadioButton4: TRadioButton;
    RadioButton5: TRadioButton;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Panel1: TPanel;
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    Button6: TButton;
    Button7: TButton;
    XPManifest1: TXPManifest;
    procedure Button6Click(Sender: TObject);
    procedure RadioButton2Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  List:array[1..CountHistory] of TActions;
implementation

{$R *.dfm}
constructor TActions.Create(CN:string);
begin
  ComponentNames:=CN;
end;
constructor TRB.Create(NRB: Integer);
begin
  inherited Create('TRadioButton');NumRB:=NRB;
end;
constructor TB.Create(NB: string);
begin
 inherited create('TButton');NameB:=NB;
end;
function TActions.Print:string;
begin
  Result:=ComponentNames;
end;
function TRB.Print:string;
begin
   Result:=ComponentNames+'=>' +IntToStr(NumRB);
end;
function TB.Print:string;
begin
    Result:=ComponentNames+'=>' + NameB;
end;
procedure TForm1.Button6Click(Sender: TObject);
var
    i:integer;
    st:string;
begin
 if CheckBox1.Checked or CheckBox2.Checked then begin
   for i:=1 to CountHistory do
     if List[i]<>NIL then
       if (CheckBox1.Checked and (List[i].ComponentNames=CheckBox1.Caption))
       or (CheckBox2.Checked and (List[i].ComponentNames=CheckBox2.Caption)) then
          st:=st+IntToStr(i)+':'+List[i].Print+#13;
           ShowMessage('Spisok'+ #13+st);
            end else  ShowMessage('Parametri ne opredeleni');
end;

procedure TForm1.RadioButton2Click(Sender: TObject);
var n:integer;
begin
   inc(n);
   if n<CountHistory then
      if Sender is TRadioButton then
           List[n]:=TRB.Create(TRadioButton(Self).Tag)
      else
           List[n]:=TB.Create(TButton(Sender).Name);
end;

procedure TForm1.Button7Click(Sender: TObject);
begin
close;
end;

end.

Последний раз редактировалось Tokko1; 19.02.2011 в 15:14.
Tokko1 вне форума Ответить с цитированием
Старый 19.02.2011, 15:26   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А зачем ты хранишь список Действий?
может тебе проще при нажатии в TStringList вносить имя нажатого контрола?
Код:
procedure TForm1.RadioButton2Click(Sender: TObject);
begin
 ListA.Add(Sender.Name+' : '+TimeTostr(time));
end;
А потом просто выводить в цикле то что в списке поместилось, учитывая что ListA - TStringList
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.02.2011, 16:21   #3
Tokko1
Пользователь
 
Регистрация: 19.02.2011
Сообщений: 11
По умолчанию

Я бы с радостью, тока у нас препод идиот,ему надо именно так..... Прога у меня просто не выводит историю сообщений....я не могу понять почему!!!
Tokko1 вне форума Ответить с цитированием
Старый 19.02.2011, 16:42   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Отлаживай пошаговкой.... Только это тебя спасет.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.02.2011, 18:14   #5
Tokko1
Пользователь
 
Регистрация: 19.02.2011
Сообщений: 11
По умолчанию

Блин...все вроде идет нормально! И все равно не выводит! Жесть!
Tokko1 вне форума Ответить с цитированием
Старый 19.02.2011, 19:14   #6
Tokko1
Пользователь
 
Регистрация: 19.02.2011
Сообщений: 11
По умолчанию

Помогите Плиз!
Tokko1 вне форума Ответить с цитированием
Старый 20.02.2011, 03:25   #7
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Код:
procedure TForm1.RadioButton2Click(Sender: TObject);
var n:integer; //убери вот это 
begin
   inc(n);
используй глобальную переменную.
Код:
var
  Form1: TForm1;
  List:array[1..CountHistory] of TActions;
var n:integer; //добавь сюда
и не забудь где-то (например OnCreate) задать начальное значение
n:=0;
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 20.02.2011 в 03:28.
evg_m вне форума Ответить с цитированием
Старый 21.02.2011, 17:11   #8
Tokko1
Пользователь
 
Регистрация: 19.02.2011
Сообщений: 11
По умолчанию

Все равно выводит пустое сообщение....Бред!
Tokko1 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как "повесить " передачу данных из формы на событие нажатия кнопки типа "button" ? vedro-compota JavaScript, Ajax 10 14.12.2010 21:05
Событие нажатия клавиши с помощью button lehius89 Общие вопросы Delphi 1 24.11.2009 00:10
Узнать историю WebBrowser SibBear Общие вопросы Delphi 5 20.03.2009 11:24
Как удалить историю IP SeRhy Безопасность, Шифрование 3 12.03.2009 02:48