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

Вниз

альтернатива stringgrid   Найти похожие ветки 

 
Тимоха   (2009-01-26 21:19) [0]

Сущ. альтернатива stringgrid? только не визуальная. Т.е. мне нужно иметь список из записей. может есть какие то готовые юниты для этого?


 
Медвежонок Пятачок ©   (2009-01-26 21:20) [1]

классы, рабоающие с xml


 
Anatoly Podgoretsky ©   (2009-01-26 21:28) [2]

stringgrid не бывают не визуальными.


 
Медвежонок Пятачок ©   (2009-01-26 21:31) [3]

мне нужно иметь список из записей

TClientDataSet


 
Тимоха   (2009-01-26 22:46) [4]

TClientDataSet весьма хорош.
правда записей у меня чаще всего будет <100 но будут и случаи когда по 100-1000


 
Медвежонок Пятачок ©   (2009-01-26 22:52) [5]

и что ?


 
Тимоха   (2009-01-26 22:56) [6]

никаких файлов не потребуется при переносе программы на другой компьютер?


 
{RASkov} ©   (2009-01-26 23:06) [7]

> Сущ. альтернатива stringgrid? только не визуальная.

type TMyNoneVisibleGrid = array of array of String; :)


 
Тимоха   (2009-01-26 23:13) [8]

все ничего, только никак не могу получить текст из какой-нибудь записи. скажем из 3 столбца, 2 строчка.


 
Медвежонок Пятачок ©   (2009-01-26 23:15) [9]

у тебя ошибка в программе


 
Тимоха   (2009-01-26 23:20) [10]

т.е. мне нужно найти запись у которой в первом столбце например строка "2132" и получить значение 3 столбца.

ClientDataset:= TClientDataSet.Create(self);
 with ClientDataset.FieldDefs do begin
   Add("id",integer);
   Add("name",ftString,50);
   Add("code",ftString);
 end;
 ClientDataset.CreateDataSet();
 ClientDataset.AppendRecord([112,"Vasia","12312342"]);
 ClientDataset.AppendRecord([2132,"Masha","72942821"]);
 ClientDataset.AppendRecord([489111,"Kolya","6209562"]);


 
Медвежонок Пятачок ©   (2009-01-26 23:26) [11]

ну если нужно найти, то надо искать.


 
Тимоха   (2009-01-26 23:39) [12]

у меня не получается. Прошу помочь)


 
Медвежонок Пятачок ©   (2009-01-26 23:41) [13]

нашел.
значение третьей колонки для данного условия поиска = "72942821"


 
{RASkov} ©   (2009-01-27 00:02) [14]

> [10] Тимоха   (26.01.09 23:20)

procedure TForm1.Button1Click(Sender: TObject);
begin
 with TClientDataSet.Create(nil) do try
  with FieldDefs.AddFieldDef do begin
   DataType := ftInteger;
   Name := "id";
  end;
  with FieldDefs.AddFieldDef do begin
   DataType := ftString;
   Size := 50;
   Name := "name";
  end;
  with FieldDefs.AddFieldDef do begin
   DataType := ftString;
   Name := "code";
  end;
  CreateDataSet;
  AppendRecord([112,"Vasia","12312342"]);
  AppendRecord([2132,"Masha","72942821"]);
  AppendRecord([489111,"Kolya","6209562"]);
  ShowMessage(Lookup("id", 2132, "code"));
 finally
  Free;
 end;
end;


 
Плохиш ©   (2009-01-27 00:17) [15]


> Медвежонок Пятачок ©   (26.01.09 23:41) [13]
>
> нашел.
> значение третьей колонки

Врёшь, там нет третьей колонки :-P


 
Тимоха   (2009-01-27 00:17) [16]

RASkov, большое тебе человеческое спасибо!!!!! Уже не раз выручаешь!!!!!!!


 
Anatoly Podgoretsky ©   (2009-01-27 00:46) [17]

> Тимоха  (26.01.2009 23:20:10)  [10]

Так ты даже и не пытаешься, а приводишь вместо это код ввода записей.


 
Германн ©   (2009-01-27 01:53) [18]


> {RASkov} ©   (27.01.09 00:02) [14]

На "исходниках" ты был бы богом! На тебя б там молились!


 
{RASkov} ©   (2009-01-27 09:36) [19]

> [18] Германн ©   (27.01.09 01:53)

Боги злыми не бывают ....наверное. А я злой и жестокий....


 
MsGuns ©   (2009-01-27 11:36) [20]

А чем все же плох стрингрид ?
А показывать его вовсе не обязательно.

датасет по сравнению с сеткой имеет преимущества датасета, т.е. поиски, сортировки, фильтры, сохранение в локальном файле и т.д. Если все это не нужно (хотя и в стрингриде это все не слишком сложно реализовать), то TClientDataSet не нужен.

однако имеет и недостатки. Например, "однородность" данных в колонках


 
sniknik ©   (2009-01-27 12:27) [21]

> А чем все же плох стрингрид ?
а чем все же плох стакан?
> А показывать его вовсе не обязательно.
а забивать им большие гвозди вовсе не обязательно, можно только мелкие сапожные, чтобы не разбился.

> хотя и в стрингриде это все не слишком сложно реализовать
а удобства, в виде ручки, их же легко приделать...

цели у них разные. разве не очевидно?


 
Тимоха   (2009-01-27 12:32) [22]

Согласен что реализовать, добавление, удаление "записей" в стринггриде реализовать не трудно, так же как и запись в файл данных.

ClientDataSEt привлек тем что весьма удобно вытаскивать данные lookup"ом.

А в целом задача такая: добавление, изменение записи, удаление определенной записи. Визуально представлять данные не нужно. Таблица будет использоваться только для  временного хранения данных.


 
MsGuns ©   (2009-01-27 14:29) [23]

>sniknik ©   (27.01.09 12:27) [21]
>цели у них разные. разве не очевидно?

Неа.. И тот, и другой предназначен для отображения информации в табличном виде, ку ?

>Тимоха   (27.01.09 12:32) [22]
>А в целом задача такая: добавление, изменение записи, удаление определенной записи. >Визуально представлять данные не нужно. Таблица будет использоваться только для  >временного хранения данных.

Если данные имеют табличную структуру и их необходимо сохранять по завершению и востаноаливать при запуске, то удобнее CDS (если, конечно, нельзя БД)
Если же последнее не нужно, то можно вообще обойтись без сеток, простым TList+record`ы или TObjectList


 
Jeer ©   (2009-01-27 14:35) [24]


> sniknik ©   (27.01.09 12:27) [21]
>
> > А чем все же плох стрингрид ?
> а чем все же плох стакан?


А чем стакан вовсе и не плох ?

Пральна - тем, что "умеет" отображать данные в произвольно-двумерном виде при наличии "всего лишь" реляционно-выбранного датасета или его аналога.
А, чтобы извратиться на "шахматку" со стандартным DBGrid-ом, надо очень много "по-упражняться" с ХП.


 
Тимоха   (2009-01-27 15:59) [25]

ку.
но TList+record вызвал затруднения в реализации :(


 
Игорь Шевченко ©   (2009-01-27 16:02) [26]


> но TList+record вызвал затруднения в реализации :(


Это очень плохо. Надо задуматься


 
MsGuns ©   (2009-01-27 16:19) [27]

Блин, не помню название продукта, но весьма классный и по интерфейсу и по шустрости и по надежности, помню только что связан с торговлей и складом.
Так вот там все реализовано стрингридами или как они там в васике обзываются :)
Код вытаскивает данные с сервера, засовывает их в ОП а затем "выкладывает" в сетки.

Датасетов в понимании дельфи там нет вообще :)


 
sniknik ©   (2009-01-27 16:36) [28]

> Неа.. И тот, и другой предназначен для отображения информации в табличном виде, ку ?
а если подумать? один отображает то что хранит (и поэтому хранит мало, и в удобном для отображении формате), другой хранит и обрабатывает как данные, а отображают эти данные за него другие.

> Датасетов в понимании дельфи там нет вообще :)
да да, а в 1с они результат запроса (8-ка)  из базы называют таблицей, но вот измениться ли от названия суть?

> А, чтобы извратиться на "шахматку" со стандартным DBGrid-ом, надо очень много "по-упражняться" с ХП.
почитай тему сначала...
тут весь смысл датасета не получении данных с сервера бд,  а в формировании того что нужно на клиенте, вообще без бд. и запросов/хп, т.е. если нет проблем сформировать шахматку в стринггриде то и в датасете не будет. только упростится, изза того что данные можно держать в их реальных типах, и значит и любые операции с ними делать "найтивно".


 
Jeer ©   (2009-01-27 17:25) [29]


> тут весь смысл датасета не получении данных с сервера бд,


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


 
MsGuns ©   (2009-01-27 17:49) [30]

>sniknik ©   (27.01.09 16:36) [28]

Просто охота поспорить ?
Ну-ну :)


 
Медвежонок Пятачок ©   (2009-01-27 18:43) [31]

Датасетов в понимании дельфи там нет вообще :)

<Цитата>

еще чуднее история.
названия продукта и производителя говорить не буду.
написано на vb6.
в качестве грида виндовый листвью.
трехзвенка. на сервере приложений данные тянутся запросами тупо в массивы, затем сериалиализуются в велосипедный двоичный формат и передатся на клиента. на клиенте цикл по строкам/колонкам.
+ все это отягощено отсутствием наследования в самом вб.

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


 
Palladin ©   (2009-01-27 18:49) [32]


> названия продукта и производителя говорить не буду.

просим! просим! :)


 
Медвежонок Пятачок ©   (2009-01-27 18:50) [33]

смысл датасета в этой ветке: двумерное хранилище значений, для которого не надо писать собственную загрузку/сохранение в отличие от TList + record.


 
Медвежонок Пятачок ©   (2009-01-27 19:00) [34]

но я бы все равно использовал голый xml как хранилище + ixmldomdocument.

загрузка/выгрузка есть.
поиск sql подобный есть.
много чего еще есть.


 
MsGuns ©   (2009-01-27 22:42) [35]

>sniknik ©   (27.01.09 16:36) [28]
>да да, а в 1с они результат запроса (8-ка)  из базы называют таблицей, но >вот измениться ли от названия суть?

Не знаток 1С, но то, о чем ты говоришь, в 1С называется таблица значений, которая вообще-то не хранится постоянно в БД. Вернее результат запроса заносится для отображения в таблицу значений (циклом как указал Мишка с пятачком)
Таблицей же называется объект, как правило связанный с физической таблицей

Могу ошибаться, пусть поправят знатоки если что


 
KSergey ©   (2009-01-28 09:10) [36]

Ладно там со стринггридами, а массив динамический строк или записей чем не угодил?!!


 
sniknik ©   (2009-01-28 10:24) [37]

> а массив динамический строк или записей чем не угодил?!!
так его же нужно делать, а вопрос [0]  стоял так
> нужно иметь список из записей. может есть какие то готовые юниты для этого?
готовый список из записей это как раз и есть рекордсет. все остальное "не готовое", либо визуальное (ограничение из начала вопроса ) типа стринггрид.


 
Медвежонок Пятачок ©   (2009-01-28 10:27) [38]

а массив динамический строк или записей чем не угодил?!!

угодит.
если ас пушкин напишет за нас процедуры его сохранения/загрузки на носитель.


 
Anatoly Podgoretsky ©   (2009-01-28 10:28) [39]

> Медвежонок Пятачок  (28.01.2009 10:27:38)  [38]

А если самому?


 
Медвежонок Пятачок ©   (2009-01-28 10:35) [40]

самому на такие мелочи не стоит отвлекаться.
а то не хватит времени  на написание своего  виндуза.



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

Текущий архив: 2009.03.15;
Скачать: CL | DM;

Наверх




Память: 0.57 MB
Время: 0.02 c
15-1231521954
Кое кто
2009-01-09 20:25
2009.03.15
Как называлась программа


15-1231749928
b@v
2009-01-12 11:45
2009.03.15
Поиск по базе


15-1231085420
blackman
2009-01-04 19:10
2009.03.15
Интернет-магазин. Кто делал или пользуется готовым?


8-1192181973
deswan
2007-10-12 13:39
2009.03.15
gif анимация


2-1232628723
charoey_mag
2009-01-22 15:52
2009.03.15
Получить имя NetBIOS