Текущий архив: 2004.12.19;
Скачать: CL | DM;
Вниз
Почему показывает график только после выхода из проги??? Найти похожие ветки
← →
cvg (2004-12-01 16:02) [0]Hi All! Тут недавно я задавал вопрос. Это его продолжение. Короче, простенький каркас проги, но график выводится на экран все только по завершении программы, а по моему разумению вывод на экран должен происходить каждый цикл по команде Application.ProcessMessages;... Почему???
Ниже -- тексты файлов Project1.dpr и Unit1.pas:
program Project1;
uses
Forms, SysUtils, Dialogs,
Windows, Messages, Variants, Classes, Graphics, Controls,
StdCtrls, ExtCtrls, OleServer, ClipBrd, StrUtils,
Unit1 in "Unit1.pas" {Form1};
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
// TForm1.Width := Screen.Width;
Application.Run;
end.
и
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, OleServer, ClipBrd, StrUtils, math,
DateUtils, TeeProcs, TeEngine, Chart, Series, BubbleCh, Qt;
type
TForm1 = class(TForm)
Chart1: TChart;
Series1: TLineSeries;
procedure Showing(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1; n:integer;
implementation
{$R *.dfm}
procedure TForm1.Showing(Sender: TObject);
var n:integer;
begin
n := 0;
repeat
n := n + 1;
Series1.AddXY(n,n/2,"qq",clRed);
Application.ProcessMessages;
until n > 300;
end;
end.
← →
MBo © (2004-12-01 16:16) [1]график выводится на экран все только по завершении программы
это как???
← →
cvg (2004-12-01 16:23) [2]Ну, в смысле, когда в отладчике прога доходит до последнего энда (который с точкой).
← →
olookin © (2004-12-01 16:25) [3]Chart1.Update?
← →
cvg (2004-12-01 16:45) [4]Хмм, я воообще обнаружл, что и сама форма выводится на экран только в конце программы. Как сделать, чтобы это было в начале?
← →
Amoeba © (2004-12-01 17:01) [5]А где в программе происходит вызов этого метода?
procedure TForm1.Showing(Sender: TObject);
← →
cvg (2004-12-01 17:17) [6]А, да, забыл сказать, что в Events для Form1 стоит OnCreate - Showing.
← →
Amadey (2004-12-01 17:38) [7]А отображение формы происходит только после выполнения OnCreate().
Поэтому тебе необходимо делать прорисовку либо при нажатии кнопки либо из запускающей формы, например
GraphicForm := TGraphicForm.Create(Aplication);
GraphicForm.Show;
GraphicForm.Showing(Self);
...
Если нехочешь делать кнопку или использовать другую форму, тогда можно попробовать при событии OnActivate(). Это событие вызывается уже после прорисовки самого окна формы.
← →
cvg (2004-12-01 17:49) [8]Во, блин, спасибо огромное -- по OnActivate спаботало!!!
Страницы: 1 вся ветка
Текущий архив: 2004.12.19;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.024 c