Форум: "Основная";
Текущий архив: 2002.11.07;
Скачать: [xml.tar.bz2];
ВнизString - как это объяснить? Найти похожие ветки
← →
turusov (2002-10-28 10:38) [0]Произошла (случилась) не понятная ситуация. При получении строки из одного объекта, ее значение при добавлении в строковую переменную происходит не замещение на новое значение, а добавление.//TP – названо для сокращения
function TP.GetIndexOptions: string; //property IndexOptions – опции индексов
begin
[1]
if Assigned(IndexDef) then begin
with IndexDef do begin //в проге GetSetProp
if ixPrimary in Options then Result:= Result + "ixPrimary;";
if ixUnique in Options then Result:= Result + "ixUnique;";
if ixCaseInsensitive in Options then Result:= Result + "ixCaseInsensitive;"; //и так далее
end;//with
end else Result:= "";
end;
А вот этот объект получает IndexOptions каждого индекса
Var P: TP; s: string;- только для проверки
for k:= 0 to Indexes.Count - 1 do begin
P:= TP(Indexes.Item[k].Data);
if Assigned(P) then begin
s:= P.IndexOptions;
Result:= Result + Format("%s"#9"%s"#9"%s"#13#10, [P.IndexName, P.IndexFields, s]);
end;
end;//for
Что происходит: P.IndexOptions – возвращает к примеру "ixCaseInsensitive;’, а s – выдает предыдущее значение "ixPrimary;ixUnique;ixCaseInsensitive;"+ P.IndexOptions.
Нормальное выполнение произошло, только тогда, когда на место [1] поставлено Result:= "";
← →
Anatoly Podgoretsky (2002-10-28 10:44) [1]А вот строками
if ixPrimary in Options then Result:= Result + "ixPrimary;";
ты говоришь, что я буду использовать текущее значение, так чего обижаешься
← →
turusov (2002-10-28 10:49) [2]Я не обежаюсь
//в проге GetSetProp
s:= P.IndexOptions; - обьект ы
← →
Separator (2002-10-28 10:51) [3]with IndexDef do begin
Result:= ""
← →
Anatoly Podgoretsky (2002-10-28 10:51) [4]Вот вместо этого end else Result:= "";
Первой строкой Result:= ""; и без ненужного else
← →
turusov (2002-10-28 10:56) [5]Просто при работе с обьектами, методами существует какаято инициализация. И во многих случаях это выручало и нормально работало. И почему получаемое значение отлично от значения переменной. Или всетаки есть особенность с длинными строками?
Типа с одним #0 или #0#0
← →
turusov (2002-10-28 10:58) [6]> Separator, а как с GetSetProp из uses TypInfo
← →
Anatoly Podgoretsky (2002-10-28 11:03) [7]turusov © (28.10.02 10:56)
Никаких особенностей, кроме воли программиста, система точно выполнило твое требование
← →
turusov (2002-10-28 11:12) [8]Ребята в душе я все прекрасно понамаю, что и как. Возможно мне нужно было послушать Ваши версии произошедшего. Но меня смущает только одно, почему САМА среда выдает при s:= P.IndexOptions -> P.IndexOptions как ixCaseInsensitive, s как ixPrimary,ixUnique,ixCaseInsensitive,ixCaseInsensitive (последнее 2 раза), а TreeView как P.IndexOptions
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.11.07;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c