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

Вниз

альтернатива 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.55 MB
Время: 0.041 c
15-1231679344
Альф
2009-01-11 16:09
2009.03.15
Может ли программа определить, как её запустили ?


2-1232524798
vegarulez
2009-01-21 10:59
2009.03.15
Помогите разобраться с конвертацией из pfx в pem


15-1231941638
DillerXX
2009-01-14 17:00
2009.03.15
Подскажите про распределение нагрузок


15-1231108743
Германн
2009-01-05 01:39
2009.03.15
Запуск служб в WinXP


8-1192288746
hahol_64_rus
2007-10-13 19:19
2009.03.15
работа с плейлистами





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