powered by simpleCommunicator - 2.0.37     © 2025 Programmizd 02
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Область видимости
42 сообщений из 42, показаны все 2 страниц
Область видимости
    #40096942
patrick1968
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день. Сразу прошу меня извинить за сильно банальную тему, но столкнулся с непонятной для меня ситуацией. Итак есть проект, в нем два модуля - модуль данных (DataModule) и главная форма приложения (MainForm). В MainForm в разделе public помещаю процедуру Proc1, в раздел USES DataModule прописываю MainForm. Но если где-либо в модуле DataModule стоит написать вызов MainForm.Proc1, то возникает ошибка, что Proc1 не объявлена - просто ума не приложу в чем косяк случился? Заранее спасибо.
...
Рейтинг: 0 / 0
Область видимости
    #40096943
Cobalt747
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
show me the code
...
Рейтинг: 0 / 0
Область видимости
    #40096945
patrick1968
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MainForm

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
unit Main;
...
  TMainForm = class(TUniForm)
    UniTimer1: TUniTimer;
    UniNativeImageList1: TUniNativeImageList;
    UniPopupMenu1: TUniPopupMenu;
    Excell1: TUniMenuItem;
    PDF1: TUniMenuItem;
    UniPanel1: TUniPanel;
    MainStatusBar: TUniStatusBar;
    UniToolBar1: TUniToolBar;
    UniSpeedButton2: TUniSpeedButton;
    bbReport: TUniSpeedButton;
    UniPanel2: TUniPanel;
    grFilials: TUniDBGrid;
    UniHiddenPanel1: TUniHiddenPanel;
    UniEdit1: TUniEdit;
    UniPanel3: TUniPanel;
    UniPageControl1: TUniPageControl;
    UniTabSheet2: TUniTabSheet;
    tvMain: TUniTreeView;
    UniTabSheet3: TUniTabSheet;
    tvAgree: TUniTreeView;
    procedure UniFormCreate(Sender: TObject);
    procedure UniTimer1Timer(Sender: TObject);
    procedure grFilialsFieldImageURL(const Column: TUniDBGridColumn;
      const AField: TField; var OutImageURL: string);
    procedure grFilialsColumnFilter(Sender: TUniDBGrid;
      const Column: TUniDBGridColumn; const Value: Variant);
    procedure grFilialsClearFilters(Sender: TObject);
    procedure UniSpeedButton2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
   procedure TreeLoad(SearchNode : TUniTreeNode);
   procedure InitButton;
  end;

function MainForm: TMainForm;

implementation

{$R *.dfm}

uses
  uniGUIVars, MainModule, uniGUIApplication, ServerModule, ActiveX, ActiveDs_TLB,
  ldapsend, synachar, procs;

function MainForm: TMainForm;
begin
  Result := TMainForm(UniMainModule.GetFormInstance(TMainForm));
end;

...

procedure TMainForm.TreeLoad(SearchNode : TUniTreeNode);
 var MainNode, NewNode, NewNode1, NewNode2 : TUniTreeNode;
     Ptr : PMyRec1;
     ind : integer;
     ArrAct : array of string;
begin



MainModule

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
unit MainModule;

interface

uses
  uniGUIMainModule, SysUtils, Classes, Data.DB, Data.Win.ADODB, Variants, Dialogs,
  RxMemDS, Math, ExportDS, SME2Cell, SME2XLS, sme2xlsx, SME2OLE, IdURI, ldapsend, synachar, strutils;

  procedure SetResourceString(AResString: PResStringRec; ANewValue: PChar);

const
  SNewMsgDlgWarning: PChar = 'Внимание';
  SNewMsgDlgError: PChar = 'Ошибка';
  SNewMsgDlgInformation: PChar = 'Информация';
  SNewMsgDlgConfirm: PChar = 'Подтверждение';
  SNewMsgDlgYes: PChar = 'Да';
  SMewMsgDlgNo: PChar = 'Нет';
  SNewMsgDlgOK: PChar = 'Согласен';
  SNewMsgDlgCancel: PChar = 'Отмена';
  SNewDeleteRecordQuestion: PChar = 'Удалить запись ?';
  SNewDeleteRecord: PChar = 'Удалить ?';

type
 TRegions = set of 0..100;
  TUniMainModule = class(TUniGUIMainModule)
    QVConn: TADOConnection;
    qFilials: TADOQuery;
    dsFilials: TDataSource;
    EmConn: TADOConnection;
    qFilialsID: TIntegerField;
    qFilialsTITLE: TWideStringField;
    qFiles: TADOStoredProc;
    spFiles: TADOStoredProc;
    qFilesID: TAutoIncField;
    qFilesHASH: TWideStringField;
    qFilesID_PARENT: TIntegerField;
    qFilesID_TYPE: TBooleanField;
    qFilesFILE_NAME: TWideStringField;
    qFilesFILE_PATH: TWideStringField;
    qFilesFILE_EXT: TWideStringField;
    qFilesSTATUS: TBooleanField;
    qFilesUPLOAD_DATE: TDateTimeField;
    qFilesNOTE: TWideStringField;
    qFilesFILE_SIZE: TLargeintField;
    qMain: TADOStoredProc;
    qAct: TADOStoredProc;
    spAct: TADOStoredProc;
    qActID: TAutoIncField;
    qActID_FILIAL: TIntegerField;
    qActID_SP: TIntegerField;
    qActDOC_TYPE: TBooleanField;
    qActDOC_TITLE: TWideStringField;
    qActDOC_DATE: TDateTimeField;
    qActNOTE: TWideStringField;
    qActSTATUS: TBooleanField;
    qFilialsRegionCode: TWideStringField;
    qFilialsRegionName: TWideStringField;
    qFilialsAgreePresent: TIntegerField;
    XLSExp: TSMExportToXLS;
    qReport1: TADOQuery;
    qReport1title: TWideStringField;
    qReport1RegionName: TWideStringField;
    qReport1Regioncode: TStringField;
    qReport1AGREEMENT_STATUS: TStringField;
    qReport1TITLE_NUM: TWideStringField;
    qReport1Contragent: TWideStringField;
    qReport1AnalogOff: TStringField;
    XLSExp1: TSMExportToXLS;
    spAgent: TADOStoredProc;
    qAgent: TADOStoredProc;
    qAgentID: TAutoIncField;
    qAgentID_FILIAL: TIntegerField;
    qAgentCONTRAGENT: TWideStringField;
    qAgentSTATUS: TIntegerField;
    qProject: TADOStoredProc;
    qProjectID: TAutoIncField;
    qProjectID_AGENT: TIntegerField;
    qProjectNUMBER: TWideStringField;
    qProjectCREATEDATE: TWideStringField;
    qProjectCREATOR: TWideStringField;
    qProjectPROJTYPE: TSmallintField;
    qProjectPROJTYPENAME: TStringField;
    qProjectSTATE: TSmallintField;
    qProjectSTATENAME: TStringField;
    qProjectPCCOMPLETE: TSmallintField;
    qProjectSTATUS: TBooleanField;
    spProject: TADOStoredProc;
    qProjectCONTRAGENT: TWideStringField;
    qMainID: TAutoIncField;
    qMainID_PROJ: TIntegerField;
    qMainDOCTYPE: TSmallintField;
    qMainDOCTYPENAME: TStringField;
    qMainDOCNUMBER: TWideStringField;
    qMainDOCDATE: TWideStringField;
    qMainDOCSTATE: TSmallintField;
    qMainDOCSTATENAME: TStringField;
    qMainSTATUS: TSmallintField;
    qMainSTARTDATE: TWideStringField;
    qMainENDDATE: TWideStringField;
    qMainCREATOR: TWideStringField;
    spMain: TADOStoredProc;
    procedure UniGUIMainModuleCreate(Sender: TObject);
    procedure qReport1CalcFields(DataSet: TDataSet);
    procedure qFilialsAfterScroll(DataSet: TDataSet);
  private
    { Private declarations }
    Step1, Step2, Step3, Step4, Step5 : TRegions;
  public
    { Public declarations }
   UserName,FullUserName,Pwd,Domain1, Domain2, Access1 : string;
   UserID, Access2 : integer;
   function SelectFromAd(fields: String = '*'; where: String = '(objectclass=*)'): String;
   function AttrByName(Attr : string) : string;
   function Params_RW : integer;
  end;

  type
  PMyCode = ^TMyCode;
  TMyCode = record
    ObjCode : string;
  end;

function UniMainModule: TUniMainModule;

implementation

{$R *.dfm}

uses
  UniGUIVars, ServerModule, uniGUIApplication, UniGUITypes, UniGUIDialogs, procs,
  Windows, Consts, DBConsts, VDBConsts, Report1, Main, AddData;

function UniMainModule: TUniMainModule;
begin
  Result := TUniMainModule(UniApplication.UniMainModule)
end;

...

procedure TUniMainModule.qFilialsAfterScroll(DataSet: TDataSet);
begin
 MainForm.TreeLoad(nil);
 //MainForm.InitButton;
end;
...
Рейтинг: 0 / 0
Область видимости
    #40096946
swame2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
patrick1968,

Советую давать классам более осмысленные и уникальные названия, возможно имя MainForm еще где-то объявлено и обозначает что-то другое.. Для начала попробовать обращаться Main.MainForm

И циклические ссылки между модулями это плохо для приложения, состоящего больше чем из пары форм
...
Рейтинг: 0 / 0
Область видимости
    #40097018
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
swame2
И циклические ссылки между модулями это плохо

Чем же?
...
Рейтинг: 0 / 0
Область видимости
    #40097020
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarer,

мозг зацикливается.
...
Рейтинг: 0 / 0
Область видимости
    #40097022
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(OFF-TOPIC)

Я немного не врубаюсь, это в современных Делфях что ли заменили глобальную переменную инстанса формы на функцию с таким же именем?

Код: pascal
1.
function MainForm: TMainForm;



раньше было так:
Код: pascal
1.
2.
var
   MainForm: TMainForm;
...
Рейтинг: 0 / 0
Область видимости
    #40097023
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроик Семён,

Это фишка UniGUI: там инстанс формы не один на приложение а один на сессию.
Вот вместо простой глобальной переменной и используется функция.
...
Рейтинг: 0 / 0
Область видимости
    #40097024
northener
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кроик Семён
(OFF-TOPIC)

Я немного не врубаюсь

Это UniGUI.
...
Рейтинг: 0 / 0
Область видимости
    #40097025
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat,
northener,

ясно, спасибо
...
Рейтинг: 0 / 0
Область видимости
    #40097026
northener
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кроик Семён
rgreat,
northener,

ясно, спасибо

А вот мне нифига неясно. На кой хрен оно, это UniGUI кому-то нужно.
...
Рейтинг: 0 / 0
Область видимости
    #40097027
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
northener
А вот мне нифига неясно. На кой хрен оно, это UniGUI кому-то нужно.

И сколько ты заплатишь за то, чтобы кто-то развеял твоё недоумение?
...
Рейтинг: 0 / 0
Область видимости
    #40097028
northener
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarer
northener
А вот мне нифига неясно. На кой хрен оно, это UniGUI кому-то нужно.

И сколько ты заплатишь за то, чтобы кто-то развеял твоё недоумение?

Ни одной копейки! :)
Меня и так всё устраивает. Но тот, кто что-то новое предлагает, должен убедить меня, что мне это нужно! :)
...
Рейтинг: 0 / 0
Область видимости
    #40097029
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
northener
Но тот, кто что-то новое предлагает, должен убедить меня

Ты правда думаешь, что кому-то зачем-то сдался, или просто косплеишь бабу с сайта знакомств?
...
Рейтинг: 0 / 0
Область видимости
    #40097048
cptngrb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
northener, а если не uniGUI, то что?
...
Рейтинг: 0 / 0
Область видимости
    #40097056
swame2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarer,

Если забыть о красивости архитектуры, при нескольких десятках зависимостей в проекте уже начинает тормозить компилятор,
IDE еще раньше, потом с какого то момента вообще не может перекомпилить проект без Build.
Скорость компиляции может упасть в разы.
...
Рейтинг: 0 / 0
Область видимости
    #40097058
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
swame2,

бред какой-то. почти сотня унигуевых форм, почти миллион строк кода в проекте, полет нормальный.
...
Рейтинг: 0 / 0
Область видимости
    #40097067
swame2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
makhaon,

Имеет значение не количество форм, а количество циклических ссылок.
Сотня форм может еще не дать критическое число, вопрос какие между ними ссылки.
У нас заметные проблемы были лет 10 назад, проект бы примерно 600К строк, 500 модулей. При возрастании количества циклических ссылок выше нескольких сотен зависимостей скорость компиляции на Delphi 7 быстро выросла с 25 с до 3 мин.
На Delphi2010 этот проект вообще не мог скомпилиться, более новые компиляторы более чувствительны к этой проблеме.
Сейчас 1,5М строк, 2500 модулей, все компилится отлично, потому что циклические зависимости развязаны, осталось несколько десятков.
...
Рейтинг: 0 / 0
Область видимости
    #40097091
Фотография Virtual Student
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Люди придумали библиотеки давным-давно...
...
Рейтинг: 0 / 0
Область видимости
    #40097115
patrick1968
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так вроде в одном проекте нельзя создать два класса с одинаковыми именами, а то точно путаница будет, стало быть проблема не в этом.
...
Рейтинг: 0 / 0
Область видимости
    #40097128
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
patrick1968,

можно
...
Рейтинг: 0 / 0
Область видимости
    #40097129
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Классы(типы) с одинаковыми именами есть даже в RTL. К сожалению.
...
Рейтинг: 0 / 0
Область видимости
    #40097184
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
patrick1968
Так вроде в одном проекте нельзя создать два класса с одинаковыми именами, а то точно путаница будет, стало быть проблема не в этом.

нельзя создать в одном юните
[DCC Error] E2004 Identifier redeclared:
...
Рейтинг: 0 / 0
Область видимости
    #40099118
patrick1968
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Странно и удивительно одно - если создаю еще форму, то процедура из MainForm прекрасно видна и работает, а вот из DataModule нет, зато из DataModule видны процедуры новой формы - посему неясно в чем отличие MainForm и новой формы. Ведь в UNIGUI нет понятия, главной формы, интересно тогда откуда приложение понимает - какую форму вызывать как основную
...
Рейтинг: 0 / 0
Область видимости
    #40099120
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
patrick1968
Странно и удивительно одно - если создаю еще форму, то процедура из MainForm прекрасно видна и работает, а вот из DataModule нет, зато из DataModule видны процедуры новой формы - посему неясно в чем отличие MainForm и новой формы.
Открой для себя ключевое слово "uses".

Ведь в UNIGUI нет понятия, главной формы, интересно тогда откуда приложение понимает - какую форму вызывать как основнуюСм. скриншот.
...
Рейтинг: 0 / 0
Область видимости
    #40099134
DmSer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
northener
softwarer
пропущено...

И сколько ты заплатишь за то, чтобы кто-то развеял твоё недоумение?

Ни одной копейки! :)
Меня и так всё устраивает. Но тот, кто что-то новое предлагает, должен убедить меня, что мне это нужно! :)


Это новое скоро сдуется окончательно. Под десктоп разрабатывать недальновидно, а под смартфоны непонятно как. Видимо автор юнигуя сам это практически не использует, а в основном прибыль считает.
...
Рейтинг: 0 / 0
Область видимости
    #40099175
patrick1968
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день. Получилось вызвать процедуру Proc1 из MainForm в DataModule путем указания имени модуля Main.MainForm.Proc1 вместо привычного MainForm.Proc1. В процедуре должен изменяться внешний вид объектов и если вызывать ее из другой формы, то всё нормально, а вот если из MainModule, то объекты не обновляются. Почему так происходит?
...
Рейтинг: 0 / 0
Область видимости
    #40099453
Cobalt747
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
patrick1968,

что-то в коде у тебя не так...
...
Рейтинг: 0 / 0
Область видимости
    #40099524
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
swame2
И циклические ссылки между модулями это плохо

Чем же?
пример автора как раз сойдёт за пример почему нельзя (извиняюсь за тавтологию)
UniMainModule.GetFormInstance, я так полагаю, использует threadvar
...
Рейтинг: 0 / 0
Область видимости
    #40099595
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)
пример автора как раз сойдёт за пример почему нельзя (извиняюсь за тавтологию)
UniMainModule.GetFormInstance, я так полагаю, использует threadvar

Какая связь? Любой код с циклическими ссылками можно переписать без циклических ссылок. В самом дурном случае - просто упаковывая всё в один модуль. И threadvar останется threadvar-ом, и GetFormInstance - GetFormInstance-ом. Но станет ли код от такого переписывания лучше? Мягко говоря - не факт.
...
Рейтинг: 0 / 0
Область видимости
    #40099623
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer,

переписать - можно, и будет работать
не переписать - будет глючить

проблема в том, что не все модули могут корректно работать без инициализации
помещая подключение модуля в implementation вы "говорите компилятору", что вам неважно, инициализируется ли модуль или нет.
...
Рейтинг: 0 / 0
Область видимости
    #40099626
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)
переписать - можно, и будет работать
не переписать - будет глючить

В кривых руках всё будет глючить.

kealon(Ruslan)
помещая подключение модуля в implementation вы "говорите компилятору", что вам неважно, инициализируется ли модуль или нет.

Удивительно, что вот уже 32 года, как я ему это "говорю", а он всё делает правильно и не создаёт проблем.
...
Рейтинг: 0 / 0
Область видимости
    #40099630
Michael Longneck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)помещая подключение модуля в implementation вы "говорите компилятору", что вам неважно, инициализируется ли модуль или нет.

А можно тут ссылку на документацию. Потому что для меня это мягко говоря новость. Хоть я не 32 года помещаю, но тоже не мало
...
Рейтинг: 0 / 0
Область видимости
    #40099639
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Michael Longneck,

ну а как вы по другому сделаете?
либо исправляете ошибку, либо берете ответственность на себя
...
Рейтинг: 0 / 0
Область видимости
    #40099640
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
kealon(Ruslan)
помещая подключение модуля в implementation вы "говорите компилятору", что вам неважно, инициализируется ли модуль или нет.

Удивительно, что вот уже 32 года, как я ему это "говорю", а он всё делает правильно и не создаёт проблем.
вам пока везёт
...
Рейтинг: 0 / 0
Область видимости
    #40099656
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Michael Longneck
А можно тут ссылку на документацию. Потому что для меня это мягко говоря новость. Хоть я не 32 года помещаю, но тоже не мало

Коллега имеет в виду тот факт, что если перегрузить секции initialization/finalization лишним функционалом с перекрёстными вызовами, можно нарваться на ситуацию, когда подпрограммы модуля будут вызваны "до initialization" или "после finalization". При этом он игнорирует тот факт, что если более-менее адекватно размещать всё на своих местах, такого не возникает даже при отсутствии специального внимания к этому вопросу. С его точки зрения архитектурная вменяемость - вопрос везения.
...
Рейтинг: 0 / 0
Область видимости
    #40099677
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer, Michael Longneck,

С моей точки зрения лучше получить ошибку компилятора circular link и исправить, чем получить непонятное поведение на большом проекте

"Явное лучше, чем неявное" (С) ...
...
Рейтинг: 0 / 0
Область видимости
    #40099689
Michael Longneck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerКоллега имеет в виду тот факт, что если перегрузить секции initialization/finalization лишним функционалом с перекрёстными вызовами, можно нарваться на ситуацию, когда подпрограммы модуля будут вызваны "до initialization" или "после finalization". При этом он игнорирует тот факт, что если более-менее адекватно размещать всё на своих местах, такого не возникает даже при отсутствии специального внимания к этому вопросу. С его точки зрения архитектурная вменяемость - вопрос везения.

Я понял...это надо немало кода с внешними зависимостями вписать в эти секции, чтобы получить такое. Никогда так не делал и вообще рассматривал как место для самых простых инициализаций. Чтобы не важен порядок был. Иначе это ещё одна головная боль. К сожалению. class constructor тоже по факту там вызывается. Но визуально более правильно, ИМХО, нет желания вписать туда не относящееся к классу
...
Рейтинг: 0 / 0
Область видимости
    #40099691
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Michael Longneck,

Когда проект большой, банальные ситуации вроде добавки кэша могут привести к непонятным багам, ну и зачем такие проблемы, лучше исключить их изначально, без плюсовых крайностей вроде "инициализацию делаем тут-то тут-то, вручную".
...
Рейтинг: 0 / 0
Область видимости
    #40099767
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)
Когда проект большой

Большой - не синоним "хреново написанный".
...
Рейтинг: 0 / 0
Область видимости
    #40099983
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)
вам пока везёт
Подтверждаю. И линковщик и компилятор периодически подглючивают. Иногда приходится шаманить с порядком юнитов в секциии uses. А линкер в билдере вообще ад.
...
Рейтинг: 0 / 0
Область видимости
    #40100072
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
white_nigger
Иногда приходится шаманить с порядком юнитов в секциии uses
Это мысль. Есть у меня один модуль, из-за которого проект не собирается. Но начинает собираться, если предварительно сделать Clean или делать Build, а не Compile.
...
Рейтинг: 0 / 0
42 сообщений из 42, показаны все 2 страниц
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Область видимости
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]