Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.12.12;
Скачать: CL | DM;

Вниз

Помогите разобраться с порядком выполнения проги. 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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.023 c
1-1101876703
zunder
2004-12-01 07:51
2004.12.12
plug-in


1-1101710156
maxistent
2004-11-29 09:35
2004.12.12
кард-ридеры


1-1101368057
Дядя
2004-11-25 10:34
2004.12.12
TwordApplication для разных версий Worda


4-1098942649
Гость
2004-10-28 09:50
2004.12.12
Как сделать чтобы программа получала админские права при запуске


3-1100508020
Stanislav
2004-11-15 11:40
2004.12.12
Где взять TDBTREEVIEW ?