Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как отобразить ProgressBar в ОТДЕЛЬНОМ ОКНЕ? [D7, XP]


Чайник ©   (2008-12-22 23:13:00) 

На главной форме в цикле выполняется некий расчет. Надо показать процент выполнения. НО! Требуется разместить ProgressBar  в отдельном окошке и кнопкой Cancel. Как это можно сделать?


  (2009-01-26 00:34:00) [1]

Удалено модератором


{RASkov}   (2008-12-23 11:24:00) [2]

> [3] Германн ©   (23.12.08 01:14)
> Может автору был нужен не код

Ну я же не заставляю пользоватся именно моим кодом :)

Кто их поймет что нужно этим авторам.... а ведь я спросил сначало, но ответа не было, а делать действительно было нечего)


Чайник   (2008-12-23 01:27:00) [3]

Спасибо!
Я примерно так и делал, только вместо Show залупил ShowModal - оно и зависало...


Германн   (2008-12-23 01:14:00) [4]


> {RASkov} ©   (23.12.08 00:29) [2]

Опять маешься от того, что делать больше нечего?
Может автору был нужен не код, а справка по секциям USES pas-файла?


{RASkov}   (2008-12-23 00:29:00) [5]

unit Unit1;
interface

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

type
 TForm1 = class(TForm)
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
 private { Private declarations }
   procedure BbClick(Sender: TObject);
 public { Public declarations }
 end;

var Form1: TForm1;

implementation
{$R *.dfm}

var CancelCikle: Boolean;
procedure TForm1.BbClick(Sender: TObject);
begin
 CancelCikle:=True;
end;

procedure TForm1.Button1Click(Sender: TObject);
var F: TForm; PB: TProgressBar; N: Integer;
begin
 F:=TForm.Create(nil);
 with F do try
  Height:=100;
  Width:=350;
  Position:=poMainFormCenter;
  BorderStyle:=bsDialog;
  Caption:='Нажмите "Отмена" для отмены :)';
  with TButton.Create(F) do begin
   Left:=(F.ClientWidth-Width) div 2;
   Top:=35;
   Caption:='Отмена';
   OnClick:=BbClick;
   Parent:=F;
  end;
  PB:=TProgressBar.Create(F);
  with PB do begin
   Left:=10;
   Top:=10;
   Step:=1;
   Width:=F.ClientWidth-20;
   Parent:=F;
  end;
  CancelCikle:=False;
  Show;
  //Циклические вычисления
  for N:=0 to PB.Max do begin
   PB.StepIt;
   Sleep(50);
   Application.ProcessMessages;
   if CancelCikle then Break;
  end;
 finally
  Free;
 end;
end;

end.


{RASkov}   (2008-12-23 00:03:00) [6]

> [0] Чайник ©   (22.12.08 23:13)

Что именно не получается?


Наверх

Титульная страница Поиск, карта сайта Написать письмо