Форум: "Основная";
Текущий архив: 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.48 MB
Время: 0.032 c