Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 30.05.2010, 20:47
sheffdop sheffdop вне форума
Прохожий
 
Регистрация: 30.05.2010
Сообщения: 10
Репутация: 10
По умолчанию создание процедуры

всем привет! у меня есть код для выбора панели рандомно из нескольких, и его надо использовать при нажатии на многие кнопки, так вот опишите мне, пожалуйста, по шагам (т.е. че и куда писать), как все это дело оформить в процедуру или функцию) за ранее спасибо!
Код:
var
r,i: Integer;
ArPanel: array of TControl;
Vis: boolean;
begin
 for i := 0 to Form2.ControlCount -1 do
  if Form2.Controls[i] is TPanel then
    begin
      SetLength(ArPanel, High(ArPanel) + 2);  //Установка размера массива большего на 1
      ArPanel[High(ArPanel)] := Form2.Controls[i];
    end;

Randomize;

  //Фрагмент нужен для того, чтобы не показывать панел второй раз
  Repeat
    r := Random(High(ArPanel) - Low(ArPanel) +1);
    Vis := ArPanel[r].Visible;
    ArPanel[r].Show;
  Until not Vis ;
end;
Ответить с цитированием
  #2  
Старый 30.05.2010, 21:09
dimsog dimsog вне форума
Прохожий
 
Регистрация: 13.04.2010
Адрес: В России
Сообщения: 26
Репутация: 10
По умолчанию

Код:
unit Unit3;

interface

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

type
  TForm3 = class(TForm)
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    procedure Proc1; //Объявляем процедуру
  public
    { Public declarations }
  end;

var
  Form3: TForm3;

implementation

{$R *.dfm}

procedure TForm3.Button1Click(Sender: TObject);
begin
 proc1; //Используем в обработчике onClick
end;

procedure TForm3.Proc1;
var
r,i: Integer;
ArPanel: array of TControl;
Vis: boolean;
begin
 for i := 0 to Form2.ControlCount -1 do
  if Form2.Controls[i] is TPanel then
    begin
      SetLength(ArPanel, High(ArPanel) + 2);  //Установка размера массива большего на 1
      ArPanel[High(ArPanel)] := Form2.Controls[i];
    end;

Randomize;

  //Фрагмент нужен для того, чтобы не показывать панел второй раз
  Repeat
    r := Random(High(ArPanel) - Low(ArPanel) +1);
    Vis := ArPanel[r].Visible;
    ArPanel[r].Show;
  Until not Vis ;
end;
end;

end.
Ответить с цитированием
  #3  
Старый 30.05.2010, 21:35
sheffdop sheffdop вне форума
Прохожий
 
Регистрация: 30.05.2010
Сообщения: 10
Репутация: 10
По умолчанию

спасибо! все работает!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 19:16.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025