Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.10;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.028 c
1-1095992190
Wood
2004-09-24 06:16
2004.10.10
Згарузка графики.


1-1095695552
volser
2004-09-20 19:52
2004.10.10
Редактирование ресурсов exe


14-1095421920
borrris
2004-09-17 15:52
2004.10.10
неужели в Москве приезжим так непросто?


3-1094793826
AleKo
2004-09-10 09:23
2004.10.10
OLAP


14-1095836612
Vlad
2004-09-22 11:03
2004.10.10
Халатность московских служб привела к людским жертвам...