Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.10.15;
Скачать: [xml.tar.bz2];

Вниз

2 вопроса (не холивары!)   Найти похожие ветки 

 
Ega23 ©   (2006-09-22 11:53) [0]

1. Почему Variant-переменные нельзя передавать в функцию с параметром по-умолчанию? Не, я конечно понимаю, что "так заведено", но всё-же?
2. Как пользоваться репозиторием?
2.1. Как добавить туда, например, форму?
2.2. Как обстоит дело с переносимостью репозитория с одного компа на другой?


 
Тугодум ©   (2006-09-22 12:07) [1]

1. У меня получилось.

procedure E(a : string = "");
begin
end;

procedure TForm1.FormCreate(Sender: TObject);
var a: variant;
begin
 a := "1";
 e(a);
end;


 
Ega23 ©   (2006-09-22 12:08) [2]

Не вижу Variant-параметра.

Интересует вот это:
function A(Value : Variant=null)


 
Тугодум ©   (2006-09-22 12:09) [3]

Ega23 ©   (22.09.06 12:08) [2]

Так и надо было написать :)
Сейчас попробую и подумаю...


 
Тугодум ©   (2006-09-22 12:10) [4]

Parameters of this type cannot have default values

List of compiler error messages

The default parameter mechanism incorporated into the Pascal compiler allows only simple types to be initialized in this manner. You have attempted to use a type that is not supported.

program Produce;
type
 ArrayType = array [0..1] of integer;

 procedure p1(proc : ArrayType = [1, 2]);
 begin
 end;
end.

Default parameters of this type are not supported in Object Pascal.

program solve;
type
 ArrayType = array [0..1] of integer;

 procedure p1(proc : ArrayType);
 begin
 end;

end.

The only way to get rid of this error is to remove the offending parameter assignment or to change the type of the parameter to one that can be initialized with a default value.

...


 
Игорь Шевченко ©   (2006-09-22 12:12) [5]

В матчасти написано:

The default parameter mechanism incorporated into the Delphi Pascal compiler allows only simple types to be initialized in this manner.


 
Johnmen ©   (2006-09-22 12:19) [6]

>Ega23 ©

Потому, что Null - это функция.


 
Ega23 ©   (2006-09-22 12:21) [7]


> The default parameter mechanism incorporated into the Delphi
> Pascal compiler allows only simple types to be initialized
> in this manner.


Это понятно. Просто очень неудобно...  :-(


 
Ega23 ©   (2006-09-22 12:21) [8]

А как со вторым вопросом?


 
Игорь Шевченко ©   (2006-09-22 12:24) [9]

Ega23 ©   (22.09.06 12:21) [7]

Что поделать, свыкнись.


 
Сергей М. ©   (2006-09-22 12:27) [10]


> Просто очень неудобно


Ну и передавай вариант не по значению, а по ссылке :

type PVariant = ^Variant;

procedure MyProc(MyVarParam: PVariant = nil);
var
 MyVar: Variant;
begin
 if Assigned(MyVarParam) then
   MyVar := MyVarParam
 else
   MyVar := Unassigned; //или Null, это уж как угодно
..
end;


 
Jeer ©   (2006-09-22 12:29) [11]

Ega23 ©   (22.09.06 12:21) [8]


> А как со вторым вопросом?


Tools\Repository
Создай свои страницы, на которые будешь размещать свои же формы, фреймы..
На готовой и отлаженной форме/фрейме правой клавишей pop-up меню, пункт Add to Repository

Использование - File\New\Other и выбираешь, что потребно.
Способ использования Copy\Inherited\Use

Репозиторий переносится в рамках одной версии D.


 
Ega23 ©   (2006-09-22 12:29) [12]


> Сергей М. ©   (22.09.06 12:27) [10]


Это мысль интересная. Буду её думать.  :о)


 
Ega23 ©   (2006-09-22 12:31) [13]


> Репозиторий переносится в рамках одной версии D.
>


Т.е. с одной машины на другую я его портировать автоматически не смогу? Всё вручную?


 
Jeer ©   (2006-09-22 12:43) [14]

Собственно репозиторий - txt файл со ссылками на ancestors
Вот как их ты перенесешь от D5 к D7 - я не знаю.


 
Ega23 ©   (2006-09-22 12:48) [15]


> Вот как их ты перенесешь от D5 к D7 - я не знаю.


Не, речб не о разных версиях delphi, а о портировании с одной машины на другую.
Или вот к примеру, новый винт ставлю. Соответственно, будет по новой установлен Delphi, проставлены все компоненты (Rx и Eh), а вот как с репозиторием быть, если я в него дофига всего напихал?
Или я хочу его домой "отнести".


 
palva ©   (2006-09-22 13:05) [16]

В меню есть
Tools -> Translation Repository
Вроде бы разгружает в файл.
Но я не пробовал.


 
Jeer ©   (2006-09-22 13:53) [17]

Ega23 ©   (22.09.06 12:48) [15]

Еще раз - репозиторий всего лишь txt файл (delphi32.dro) со ссылками на используемые модули.
Посмотри его и сам все поймешь.
Достаточно скопировать его и все используемые тобой модули разместить по идентичным путям.
О стандартных модулях D сам позаботится - \ObjRepos


 
Ega23 ©   (2006-09-22 13:56) [18]


> Посмотри его и сам все поймешь.


Ага, всё ясно. Минус - то, что абсолютные пути указаны.
Но это легко поправить.

Всё, всем спасибо!!!



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2006.10.15;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.039 c
3-1155305339
RomanH
2006-08-11 18:08
2006.10.15
Входной параметр в Хранимой процедуре


1-1157193722
samael6
2006-09-02 14:42
2006.10.15
Работа с XMPP (Extensible Messaging and Presence Protocol)


11-1135259006
DVK
2005-12-22 16:43
2006.10.15
Не могу сделать нормальный Resize на KOLListView


2-1159358066
Fostr
2006-09-27 15:54
2006.10.15
Передать данные из одной формы в другою


3-1155220269
.ruslan
2006-08-10 18:31
2006.10.15
Изменить цвет помеченых строк в DBGridEh





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский