Главная страница
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.025 c
6-1091514404
Rybochkin Sergey
2004-08-03 10:26
2004.10.10
Соединение через модем


1-1096333480
evgniyf
2004-09-28 05:04
2004.10.10
delphi8


1-1095923768
Артем123
2004-09-23 11:16
2004.10.10
Как опредилить тип входного параметра в процедуре?


14-1095292657
Мистер Х
2004-09-16 03:57
2004.10.10
Будущее MS Windows


14-1095417379
Knight
2004-09-17 14:36
2004.10.10
FireBird...