Форум: "Основная";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];
ВнизПомогите разобраться с порядком выполнения проги. pls! Найти похожие ветки
← →
cvg (2004-12-01 11:02) [0]Hi All! Есть у меня некая программка, которую я уже довольно давно ковыряю, но исходник которой писан не мной. Теперь для выявления некой ошибки я свял самый простенький проект, в который включил интересующую меня ситуацию. Но теперь не могу понять: в исходной проге, насколько я понимаю, сначала выполняется то, что записано в файле .dpr, потом -- по команде Run -- управление переходит к юниту. В том же, что я накидал, управления иде сразу на Unit1.pas, в Project1.dpr вообще не заглядывает. Почему это может быть так? Ниже привожу Project1.dpr:
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.
и Unit1.pas:
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;
private
{ Private declarations }
// procedure Main_cycle(FN:string;ob:Boolean);
public
{ Public declarations }
end;
var
Form1: TForm1; n:integer;
implementation
{$R *.dfm}
begin
n := 0;
repeat
n := n + 1;
Form1.Series1.AddXY(10,10,"qq",clRed);
Application.ProcessMessages;
Application.ProcessMessages;
until n > 300;
end.
← →
TUser © (2004-12-01 11:06) [1]При Initialize - происходит исполнение кода инициализации каждого модуля, в т.ч. Unit1.
PS. Нафига так много в uses"е написано?
← →
cvg (2004-12-01 11:11) [2]В uses"е много того, что бездумно из той, большой, проги перетянул. Да и не важно это сейчас. А по основному вопросу: так я же даже на Initialize точку останова ставлю -- все равно затыкается на строке Form1.Series1.AddXY(10,10,"qq",clRed);, говорит, что Access Violation.
← →
TUser © (2004-12-01 11:13) [3]Так правильно - Form1 пока еще не существует. Appliucation.CreateForm - еще не выполнился
← →
Алхимик © (2004-12-01 11:17) [4]Form1.Series1.AddXY(10,10,"qq",clRed); и прочее вставь в обработчик OnShow твоей формы.
И почитай хоть раздел "Введение" в любой книге по Delphi.
← →
cvg (2004-12-01 11:18) [5]То есть, типа, по Initialize выполняется все, что записано в основном теле юнита между begin и end, а потом уж идет CreateForm?
← →
cvg (2004-12-01 11:31) [6]А, вот, обнаружит в той исходной проге, что в Events"ах на OnCreate стоит FormCreate. Видомо, в этом дело...
← →
Алхимик © (2004-12-01 11:32) [7]
> на OnCreate стоит FormCreate
Дичь какая то...
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.037 c