Вниз
Скачать: CL | DM;

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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.014 c
1-21465
Kiksss
2002-10-28 09:06
2002.11.07
Как изменить на mbYes и mbNo Yes на


1-21528
Andy Eremin
2002-10-29 11:09
2002.11.07
Свойство Expression


14-21815
Anatoly Podgoretsky
2002-10-20 09:22
2002.11.07
Именинники 20 октября


14-21753
vopros
2002-10-17 15:31
2002.11.07
Щас бы пивка.


4-21868
Adept
2002-09-24 11:38
2002.11.07
Как сделать окно находящееся ниже всех.




   Наверх