Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
1-21582
Andrew Klochko
2002-10-29 23:49
2002.11.07
Как правильно завершить поток и...


1-21661
^Sanya
2002-10-27 21:22
2002.11.07
MDI: как узнать, создан ли ребёнок, или нет - без цикла перебора?


1-21626
kofman
2002-10-25 19:13
2002.11.07
Нейронные сети


4-21857
Azbul
2002-09-23 19:07
2002.11.07
Подскажите (+)


14-21823
Пасечник
2002-10-20 15:48
2002.11.07
срочно требуется компонент Async Pro





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский