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

Вниз

TList   Найти похожие ветки 

 
GanibalLector ©   (2004-09-22 00:01) [0]

Кто-нибудь может подкинуть статейку или исходник с этим TList-ом.
Проблема в следующем.Предположим имеем

type
 PMyList = ^AList;
 AList = record
   I: String[10];
   C: String[15];
 end;
var
 MyList: TList;
 ARecord: PMyList;

далее заполняем MyList значениями.И вот,собственно вопрос:
каким образом вернуться в преждние ячейки и изменить там значение???Я пробовал  MyList.Insert ,но она не изменяет ,а добавляет.Еще вопрос,могу ли я изменить только значение С,а I оставить таким,каким оно и было???


 
jack128 ©   (2004-09-22 00:05) [1]

GanibalLector ©   (22.09.04 0:01)
var
 li: PMyList
begin
 li := MyList[10];
 li.c := "asfdhgfhdg";
 MyList[10] := li;
end;


 
GuAV ©   (2004-09-22 00:05) [2]


>  PMyList = ^AList;

имена нужно придумать получше. типа MyItem.
Обращатся к элементам через Items

> Еще вопрос,могу ли я изменить только значение С,а I оставить
> таким,каким оно и было???

Да, элементы это обыные указатели, по которым обычные переменные, в твоём случае записи, можно изменять их поля


 
jack128 ©   (2004-09-22 00:22) [3]


> имена нужно придумать получше. типа MyItem.

И префикс Т для типов не забывать использовать ;-)


 
GanibalLector ©   (2004-09-22 00:28) [4]

2 jack128,GuAV
Спасибо,как всегда выручили.
А еще вопросик...Из-за чего я это все затеял.Имеется DBGridEh далее пользователь выбирает некоторые данные(много от 15-100) и нажимает клавишу.Далее создаю новую форму и перебрасываю данные из того выделенного DBGridEh в StringGrid(но не все,частично,что бы пользователю было легче...меньшая вероятность допука ошибки).Пользователь изменяет данные в StringGride и ...(т.д.)

Так вот TList у меня создается после выделенного DBGridEh  и частично изменяется после редактирования в StringGride.Вопрос,а на кой я все это затеял???(самокритика).Есть ли варианты проще,без использования TList?Или все-же пущай будет???Как бы поступили Вы???


 
GuAV ©   (2004-09-22 00:30) [5]


> var
>  li: PMyList
> begin
>  li := MyList[10];
>  li.c := "asfdhgfhdg";
>  MyList[10] := li;
> end;

MyList[10] := li; - лишнее


 
GuAV ©   (2004-09-22 00:33) [6]

GanibalLector ©   (22.09.04 00:28) [4]

имхо отобрать данные для новой формы следует средствами DB и использовать там DBGrid


 
Defunct ©   (2004-09-22 00:37) [7]

> Вопрос,а на кой я все это затеял???(

Ответ (вы же и написали), для:
> допука ошибки

не нужен там никакой TList


 
GanibalLector ©   (2004-09-22 00:37) [8]

>использовать там DBGrid
Дык...прийдется еще одну таблицу создать.Да и следить за ней(наполнять\удалять).


 
Defunct ©   (2004-09-22 00:45) [9]

GanibalLector ©   (22.09.04 00:37) [8]

Зачем?
с каких пор Commit/Rollback недостаточно?
Зачем копировать данные между визуальными элементами когда вы работаете с БД?


 
GanibalLector ©   (2004-09-22 00:51) [10]

с каких пор Commit/Rollback недостаточно?
А это тут при чем???

Я ж говорю,что выбираю данные.Т.е. предположим их 100,а я навыбирал 25 в разнобой.ИМХО,что бы не создавать доп.поле(или таблицу) проще уж с TList.Хотя...


 
jack128 ©   (2004-09-22 00:57) [11]

GuAV ©   (22.09.04 0:30) [5]
MyList[10] := li; - лишнее

угу, по привычки с Value типами..

GanibalLector ©   (22.09.04 0:28) [4]
А зачем TList? Можно просто дин массив записей..


 
GanibalLector ©   (2004-09-22 00:59) [12]

2 jack128
А зачем TList? Можно просто дин массив записей..
Как по мне,что TList,что массив...из пустого в порожнее.В чем разница???Хотя конечно с массивом приятней и удобней(люблю я их) :))


 
Defunct ©   (2004-09-22 01:02) [13]

GanibalLector ©   (22.09.04 00:51) [10]

В качестве доп. поля можно заюзать DBGrid.Row[i].Objects[j] для любой ячейки.


 
Defunct ©   (2004-09-22 01:04) [14]

[13]
тоже самое поддерживается и в StringGrid"е


 
jack128 ©   (2004-09-22 01:13) [15]

GanibalLector ©   (22.09.04 0:59) [12]
Хотя конечно с массивом приятней и удобней(люблю я их) :))

Именно поэтому.  И с указателями не будешь путаться -)


 
GanibalLector ©   (2004-09-22 01:13) [16]

2 Defunct
Спасибо,рассмотрю Ваш вариант.Хотя лично мне нравится больше через TList или массив.ТЕМ БОЛЕЕ,что все эти данные в потоке будут создавать документы.А как известно,в потоке нельзя обращаться к визуальным компонентам.Синхронизировать,млин,надо


 
Defunct ©   (2004-09-22 01:28) [17]

> А как известно,в потоке нельзя обращаться к визуальным компонентам.Синхронизировать,млин,надо

Не нужно там ничего синхронизировать. Вы ведь обращаетесь по чтению к не визуальным полям.

> ТЕМ БОЛЕЕ,что все эти данные в потоке будут создавать документы
Вот и чудесно:

For I:=0 To DBGrid.RowCount-1 Do
If Boolean(DBGrid.Rows[i].Objects[0]) Then
ShellExecute( ... , PChar(DBGrid.Cells[ ... ], ... );


Зачем тут какой-то еще массив, или List??



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

Форум: "Основная";
Текущий архив: 2004.10.10;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.053 c
14-1095917397
pavel_guzhanov
2004-09-23 09:29
2004.10.10
Ассемблер


1-1096038625
mmmmm
2004-09-24 19:10
2004.10.10
перебор все компонентов image


1-1096146359
VAmpiro$
2004-09-26 01:05
2004.10.10
n:= sin(x) - програмно узнать значение x


1-1096263093
_alex_
2004-09-27 09:31
2004.10.10
Delphi And Visual c++


14-1095845753
Agent[007]
2004-09-22 13:35
2004.10.10
Паспорт





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