Вверх ↑
Этот топик читают: Гость
Ответов: 5446
Рейтинг: 323
#1: 2006-03-13 01:38:59 ЛС | профиль | цитата
Сегодня обновил компоненты по SVN --- и получил по полной программе!
При попытке компиляции пустого проекта компилятором Delphi получил вот что:


Build start...
Generated code
Create project...
Command line: dcc32.exe "c:\Program Files\HiAsm\Elements\Delphi\code\Project5.dpr" "-Uc:\Program Files\HiAsm\." -Q "-Ec:\Program Files\HiAsm\
Borland Delphi Version 12.0 Copyright (c) 1983,98 Inprise Corporation

c:\Program Files\HiAsm\Elements\Delphi\code\hiMainForm.pas(457) Error: Undeclared identifier: 'Free'

c:\Program Files\HiAsm\Elements\Delphi\code\hiMainForm.pas(458) Error: Incompatible types: 'TInitMan' and 'Pointer'

c:\Program Files\HiAsm\Elements\Delphi\code\Project5.dpr(7) Fatal: Could not compile used unit 'hiMainForm.pas'
End build


Под FPC компилируется нормально. Delphi взят с народа не помню когда (давно). До обновления всё компилировалось.
карма: 1

0
Администрация
Ответов: 15295
Рейтинг: 1519
#2: 2006-03-13 01:47:59 ЛС | профиль | цитата
Обновлять нужно все сразу ибо судя по ошибкам Share.pas не самой свежей версии. Вот все файлы, которые изменились на момент 719 ревизии:
Action Path
Modified /code/Share.pas
Modified /code/hiMainForm.pas
Modified /code/hiMultiElementEx.pas

карма: 27
0
Ответов: 5446
Рейтинг: 323
#3: 2006-03-13 01:54:59 ЛС | профиль | цитата
Dilma, обновляю как написано в FAQ (SVN Update). Сейчас ради интереса удалил share.pas и заново обновил. Эффекта нет.
P.S. Share.pas = 32524 bytes
карма: 1

0
Администрация
Ответов: 15295
Рейтинг: 1519
#4: 2006-03-13 02:03:59 ЛС | профиль | цитата
Да именно такой размер. А в share.pas вот такая строка есть?
[code:1]... TInitMan = class
...[/code:1]
карма: 27
0
Ответов: 5446
Рейтинг: 323
#5: 2006-03-14 00:05:59 ЛС | профиль | цитата
Вот что там есть по поводу InitMan:

lines 104-111

TInitMan = class
private
Items:array of TInitProc;
Count:word;
public
procedure Add(Proc:TInitProc);
procedure Init;
end;

line 179

    InitMan:TInitMan;

lines 301-314

procedure TInitMan.Add;
begin
inc(Count);
SetLength(Items,Count);
Items[Count-1] := Proc;
end;

procedure TInitMan.Init;
var i:word;
begin
if Count > 0 then
for i := 0 to Count-1 do
Items[i];
end;

line 1372

  InitMan := TInitMan.Create;
карма: 1

0
Ответов: 9906
Рейтинг: 351
#6: 2006-03-14 00:23:00 ЛС | профиль | цитата
Мда............
карма: 9

0
Ответов: 5446
Рейтинг: 323
#7: 2006-03-14 00:26:00 ЛС | профиль | цитата
Galkov, а поконкретней?
карма: 1

0
Ответов: 9906
Рейтинг: 351
#8: 2006-03-14 00:37:59 ЛС | профиль | цитата
Это нецензурно.....
карма: 9

0
Ответов: 5446
Рейтинг: 323
#9: 2006-03-14 01:02:59 ЛС | профиль | цитата
Мне интересно, что из запощенного мной вызвало столь бурную реакцию?
карма: 1

0
Администрация
Ответов: 15295
Рейтинг: 1519
#10: 2006-03-15 16:06:59 ЛС | профиль | цитата
iarspider,
Error: Incompatible types: 'TInitMan' and 'Pointer'[/code]
если InitMan это класс то строка 
InitMan := nil;[/code]
никак не могла вызвать такой ошибки.

Error: Undeclared identifier: 'Free'[/code]
У любого класса метод Free встроенный.

Вывод: hiMainForm видит не тот Share который надо. Может быть стоит удались все dcu файлы, или полностью переписать папку code
карма: 27
0
Ответов: 5446
Рейтинг: 323
#11: 2006-03-16 01:16:59 ЛС | профиль | цитата
Как только мне вернут из ремонта ноут - сразу попробую.
карма: 1

0
Ответов: 117
Рейтинг: 9
#12: 2007-02-19 17:17:12 ЛС | профиль | цитата
Если вызывать дочернюю форму методом doShowModal в панели (ChildPanel) или ChildGroupBox,
то она модальная для панели, но не модальная для основной формы.

code_1001
карма: 0

0
файлы: 1code_1001.txt [798B] [387]
Ответов: 9906
Рейтинг: 351
#13: 2007-02-19 20:25:59 ЛС | профиль | цитата
AZot, случай, конечно кошмарный
Делать форму наследником контрола - еще и додуматься надо.
Могу точно сказать - Кладов на это не рассчитывал.

Патчить такое - пока даже сомневаюсь.
Можешь попробовать вот так
hiMainForm.pas line 88
constructor THIMainForm.Create;
begin
if Parent<>nil then Parent := Parent.ParentForm;
inherited Create(Parent);
....

Если такое устойчиво будет работать, можно вернуться к вопросу включения в дистрибутив...
карма: 9

0
Ответов: 117
Рейтинг: 9
#14: 2007-02-24 06:54:42 ЛС | профиль | цитата
Galkov, с таким патчем мне больше нравится как работает (FPC и Delphi).
Без патча при закрытии более "взрослой" формы (если она вызвана не модально),
её дочерние формы не закрываются, а с патчем закрываются.
Но с патчем замечено следующее.
Если Form 1 вызвать как модал, Form 2 как нормал, Form 3, как модал.
После этого из Form 1 открыть Form 2 как модал, то после этого формы не закрываются.
code_1013
карма: 0

0
файлы: 1code_1013.txt [3.9KB] [351]
Ответов: 9906
Рейтинг: 351
#15: 2007-02-24 11:02:45 ЛС | профиль | цитата
AZot писал(а):
с таким патчем мне больше нравится как работает (FPC и Delphi)

Этот патч никак не должен влиять на нормальных людей.
А нравиться, что формы могут являться наследниками контрола - никак не может, имхо...
Потому-что это не соответствует действительности, хотя бы.

AZot писал(а):
Если Form 1 вызвать как модал, Form 2 как нормал, Form 3, как модал.
После этого из Form 1 открыть Form 2 как модал, то после этого формы не закрываются.

Ну, во-первых - закрываются. По контекстному меню аплета
И во-вторых - какой тут криминал в поведении форм, интересно
Модальная форма 3 закроется сразу же после того, как закончится модальный цикл формы 2.
Который не она запускала, а ВЫ, не предоставивши возможности его закончить

Как бы, пока нет аргументов, почему сия проблема - есть проблема элемента, а не автора схемы
карма: 9

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)