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

Вниз

StringGrid   Найти похожие ветки 

 
alexsashkan   (2008-02-07 12:17) [0]

ЗДРАВСТВУЙТЕ!!! У меня есть вопросик,я делаю перемещение по СтрингГриду,тоесть кнопочку "Фёрст","Ласт".Вот в ДБГриде есть такая штучка,что можна перемещаться по записям..то на последнююю..то на первую..то добавить  строку..и т.д.А вы не подскажите есть ли в Стрингриде такое ? и как до него добраться ??? Заранее благодарен!!!


 
ketmar ©   (2008-02-07 12:22) [1]

как напишешь — сразу и появится.

---
Understanding is not required. Only obedience.


 
Palladin ©   (2008-02-07 12:24) [2]


> alexsashkan   (07.02.08 12:17)

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


 
alexsashkan   (2008-02-07 12:37) [3]


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

удаление текущей записи
var
 i,j: Integer;
begin
 j:=SG1.Row; // строка с выделением
 SG1.Rows[j].Clear;
 for i:=j to SG1.RowCount-2 do
   SG1.Rows[i].Assign(SG1.Rows[i+1]);
 SG1.RowCount:=SG1.RowCount-1;
//--------------------------------------------------------
А вы говорили нельзя....может кто-то подскажет как на основании этого сделать теперь перемещение по списку на начало и финиш ???


 
Сергей М. ©   (2008-02-07 12:41) [4]


> alexsashkan


за каким лешим тебе понадобилось изобретать этот велосипед ?)

Есть же готовая связка ClientDataSet -> DataSource -> DBGrid, чем она плоха ?


 
alexsashkan   (2008-02-07 12:44) [5]


> за каким лешим тебе понадобилось изобретать этот велосипед
> ?)
>
> Есть же готовая связка ClientDataSet -> DataSource -> DBGrid,
>  чем она плоха ?

Потому что в DBGrid нельзя добавить новую Строку и заполнить её значения,если до этого у тебя уже заполнена вся  "DBGrid" и без потери данных этого у меня не получаеться.Потому я и выбрал СтрингГрид,из-за того что после выборки чреез Запрос я могу в у существующим данным добавить ещё...не потеряв выборку из запроса


 
Сергей М. ©   (2008-02-07 12:48) [6]


> в DBGrid нельзя добавить новую Строку


Конечно нельзя.

В DBGrid нет никаких строк, в отличии от StringGrid этот компонент служит лишь для отображения данных, а сами данные находятся в DataSet.


> после выборки чреез Запрос я могу в у существующим данным
> добавить ещё...не потеряв выборку из запроса


Все тоже самое с успехом реализуется с пом. упомянутой связки.


> без потери данных этого у меня не получаеться


Ну это же совсем другой вопрос)
То что не получается вряд ли есть повод к изобретению велосипеда)


 
ketmar ©   (2008-02-07 12:50) [7]

>[3] alexsashkan (2008-02-07 12:37:00)
где это сказали, что нельзя? O_o

---
Understanding is not required. Only obedience.


 
ketmar ©   (2008-02-07 12:52) [8]

>[5] alexsashkan (2008-02-07 12:44:00)
о. вот тут мы доходим до, собственно, задачи. глядишь, не пройдёт и 50 постов, как задачу полностью сформулируют.

пойми ты, мы обычно требует озвучить оригинальную задачу не потому, что дико любопытные все. в основном потому, что в большинстве случаев задачу можно решить на ректально, а нормально. но новички этого могут просто не знать. и если мы задачу не выпытаем — так и будут использовать велосипеды и возмущаться, что «не придумали/не сделали удобную фичу».

---
Understanding is not required. Only obedience.


 
Сергей М. ©   (2008-02-07 12:59) [9]


> ketmar ©   (07.02.08 12:52) [8]


Но, согласись, ректальность того или иного подхода далеко не всегда очевидна.

Скажем, тот же штатный DBGrid обладает рядом существенных недостатков и желание доработать его напильником порой вполне оправдано. Правда, это не случай автора)


 
alexsashkan   (2008-02-07 13:00) [10]

Задача такая - АДОКвери,делаю запрос,получаю данные,они отображаються в ДБгриде,потом получаю данные из Екселя и мне данные из Екселя необходимо добавить в ДБГрид,тоесть добавить строки в ДбГрид,а потому как мне вчера обьяснили что этого сделать нельзя(на этом сайте),поэтому я выбрал СтрингГрид,для отображения данных...и добавления данных


 
ketmar ©   (2008-02-07 13:04) [11]

>[9] Сергей М. © (2008-02-07 12:59:00)
>согласись, ректальность того или иного подхода далеко не всегда очевидна.
соглсен. но она может быть очевидна кому-то другому. поэтому лучше сразу озвучть задачу — авось и пнут куда надо.

>тот же штатный DBGrid обладает рядом существенных недостатков и желание
>доработать его напильником порой вполне оправдано

и снова согласен.

>[10] alexsashkan (2008-02-07 13:00:00)
можно, но лучше не надо.
щаз из меня опять бред попрёт: композитный dataset?

---
Understanding is not required. Only obedience.


 
Плохиш ©   (2008-02-07 13:05) [12]


> alexsashkan   (07.02.08 13:00) [10]

Данные надо добавлять в свой "АДОКвери", т.к. все данные в нём, а не в "ДБГрид".

Про уже что-то почитать.


 
Сергей М. ©   (2008-02-07 13:05) [13]


> добавить строки в ДбГрид..мне вчера обьяснили
> что этого сделать нельзя(на этом сайте)


И правильно тебе объяснили.

Добавление строк в DBGrid сводится не иначе как к добавлению записей в DataSet, к которому этот DBGrid привязан через DataSource.

Вот на работе с DataSet и следует сосредоточить усилия.


> АДОКвери


А какая СУБД используется ?


 
Плохиш ©   (2008-02-07 13:06) [14]


> Про

читать как "Пора" :-)


 
alexsashkan   (2008-02-07 13:07) [15]


> А какая СУБД используется ?

SQL база


 
ketmar ©   (2008-02-07 13:08) [16]

>[15] alexsashkan (2008-02-07 13:07:00)
>>А какая СУБД используется ?
>SQL база

класс.
«-- акакой у вас автомобиль?
— с дверцами, колёсами и мотором!»

---
Understanding is not required. Only obedience.


 
Сергей М. ©   (2008-02-07 13:09) [17]


> композитный dataset?


Зачем ?
Вариантов море - от гетерогенного запроса (если СУБД позволяет) до кэширующего наследника DataSet"а, коим вроде бы является хотя бы тот же ADODataSet


 
ketmar ©   (2008-02-07 13:10) [18]

>[17] Сергей М. © (2008-02-07 13:09:00)
>Зачем ?
от неумения читать документации. я ж тоже велосипедист знатный.

впрочем: перечисленное тобой не является ли частными случаями композитного dataset"а? хотя ты, наверное, понял верно, там подразумевалось «написать». %-)

---
Understanding is not required. Only obedience.


 
Dennis I. Komarov ©   (2008-02-07 13:11) [19]

> [15] alexsashkan   (07.02.08 13:07)

SQL - это язык а не база


 
Сергей М. ©   (2008-02-07 13:15) [20]

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

Отметая BDE остаются варианты с кеширующими дейтасетами - ADODataSet, ClientDataSet, RXMemoryDataSet и иже с ними


 
alexsashkan   (2008-02-07 13:16) [21]

Извинете ребята,что занял ваше время своим вопросом!!! то что вы мне рассказываете просто пугает меня...пугает потому что я непонимаю многое из того,что вы предлагаете....выши подходы к решению задачки.Поэтому я попробую решить свою задачку по своему способу.Если может кто-то..то подскажите как добавить новую строку к уже умеющимся данным в СтрингГриде ?


 
Palladin ©   (2008-02-07 13:16) [22]

TStringGrid.RowCount+F1


 
Palladin ©   (2008-02-07 13:17) [23]

только не говори, что не компилируется...


 
Сергей М. ©   (2008-02-07 13:19) [24]


> как добавить новую строку к уже умеющимся данным в СтрингГриде
> ?


Нет ничего проще - просто увеличь на единицу зн-е св-ва RowCount.

Только - еще раз - это тупиковый путь.

Лучше все же разобраться с DataSet"ом.


 
Игорь Шевченко ©   (2008-02-07 13:21) [25]

А я дурак через in-memory dataset все делаю. Причем со стандартным DBGrid-ом.


 
Palladin ©   (2008-02-07 13:21) [26]

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


 
ketmar ©   (2008-02-07 13:23) [27]

>[21] alexsashkan (2008-02-07 13:16:00)
я бы тебе посоветовал попытаться понять, о чём мы тут умничаем, конечно. но это чисто твой выбор. никто ж со знаниями не родился.

---
Understanding is not required. Only obedience.


 
ketmar ©   (2008-02-07 13:24) [28]

>[25] Игорь Шевченко © (2008-02-07 13:21:00)
ну, это как вариант. но блин, жалко ж memory. %-)

---
Understanding is not required. Only obedience.


 
Плохиш ©   (2008-02-07 13:24) [29]


> alexsashkan   (07.02.08 13:16) [21]

Помочь тебе не представляется возможным.
Смени профессию, пока не поздно.


 
alexsashkan   (2008-02-07 13:29) [30]


> Помочь тебе не представляется возможным.
> Смени профессию, пока не поздно.

Ты это зря так.да действительно ПЛОХИШ!!!я лиш спросил совета по коду...а не как жить...


 
Slym ©   (2008-02-07 13:34) [31]

alexsashkan   (07.02.08 13:00) [10]
непонятно... тебе отображать или добавлять? Можно сначала добавить потом отобразить... Можно добавлять отображая...
with ДБГрид.DataSource do
begin
 Dataset.Append;
 try
   Dataset.FieldByName("поле1").Value:="значение";
   Dataset.FieldByName("поле2").Value:="значение";
   Dataset.Post;
 except
   Dataset.Cancel;
   Raise;
 end;
end;


 
Плохиш ©   (2008-02-07 13:36) [32]


> я лиш спросил совета по коду

Тебе сразу сказали, что на велосипеде с треугольными колёсами ездить можно, но проще использовать круглые колёса, но ты упорствуешь и хочешь, что бы тебе отладили твоё чудище с треугольно-непонятными колёсами-ли.


 
Сергей М. ©   (2008-02-07 13:40) [33]


> лиш спросил совета по коду...а не как жить


Типа "не учите меня жить, лучше помогите материально" ?)

Скажи честно, прежде чем задать этот вопрос, ты изучил хоть в какой-либо мере хоть какую-либо документацию к интересующему тебя компоненту ? Ту же пресловутую стандартную справку, например ?


 
Slym ©   (2008-02-07 13:41) [34]

alexsashkan   (07.02.08 13:29) [30]
Не обращай внимания :) здесь не любять студентов-двоечников, халявщиков, горе программистов, и тех кто пытается вырезать гланды через ж...
Научись правильно задавать вопросы


 
alexsashkan   (2008-02-07 14:01) [35]


> with ДБГрид.DataSource do
> begin
>  Dataset.Append;
>  try
>    Dataset.FieldByName("поле1").Value:="значение";
>    Dataset.FieldByName("поле2").Value:="значение";
>    Dataset.Post;
>  except
>    Dataset.Cancel;
>    Raise;
>  end;
> end;

делаю выборку
//------------------------
     ADOQuery1.SQL.Text := "select distance FROM distanse where city1 = :CITY1 and city2 = :CITY2";
     ADOQuery1.Parameters.ParamByName("CITY1").Value := COmboBox1.Text;   //определяем значения для фильтра1
     ADOQuery1.Parameters.ParamByName("CITY2").Value := COmboBox2.Text;   //определяем значения для фильтра2
     ADOQuery1.Active:=true;  // активируем запуск запроса на выполнение

     GlobDistanse:=DBGrid1.Fields[0].AsFloat;     //тута получаем дистанцию
     Label4.Caption:="Содержимое справочника Растояния между городами  ("+FloatToStr(GlobDistanse)+"км)";

//-------------------------------------------------------------------------------
     ADOQuery1.Close;     //отрубаем соединения,на всякий случай
     ADOQuery1.SQL.Clear;  //очищаем SQL запрос

    ADOQuery1.SQL.Text := "select p.*, cast((p.cena * :distance) as float) As PlataZaProezd from perevozchik p";//получаю данные с вычесляемым полем
//-------------------
и в итоге я получаю данные,но после этого делаю выборку из Екселя,и вот мне необходимо до отображения этих даных с запроса,добавить в АДоКвери данные ез Екселя.


 
Игорь Шевченко ©   (2008-02-07 14:05) [36]

ketmar ©   (07.02.08 13:24) [28]


> жалко ж memory


Портится ? Загнивание битов происходит ?

"bit rot. Also bit decay. Hypothetical disease the existence of which has been deduced from the observation that unused programs or features will often stop working after sufficient time has passed, even if `nothing has changed". The theory explains that bits decay as if they were radioactive. As time passes, the contents of a file or the code in a program will become increasingly garbled.
There actually are physical processes that produce such effects (alpha particles generated by trace radionuclides in ceramic chip packages, for example, can change the contents of a computer memory unpredictably, and various kinds of subtle media failures can corrupt files in mass storage), but they are quite rare (and computers are built with error-detecting circuitry to compensate for them). The notion long favored among hackers that cosmic rays are among the causes of such events turns out to be a myth; see the cosmic rays entry for details. "

http://www.jargon.net/jargonfile/b/bitrot.html


 
Игорь Шевченко ©   (2008-02-07 14:06) [37]

alexsashkan   (07.02.08 14:01) [35]

Автоматизация гужевого транспорта ?


 
alexsashkan   (2008-02-07 14:08) [38]


> Автоматизация гужевого транспорта ?

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


 
Slym ©   (2008-02-07 14:09) [39]

alexsashkan   (07.02.08 14:01) [35]
добавить в АДоКвери данные ез Екселя

Добавить навсегда? или временно - пока работает программа?
это убрать: GlobDistanse:=DBGrid1.Fields[0].AsFloat; и заменить на: GlobDistanse:=ADOQuery1.Fields[0].asFloatж


 
alexsashkan   (2008-02-07 14:13) [40]


> Добавить навсегда? или временно - пока работает программа?

временно!!!чтобы можна было увидить данные из SQL запроса и из Екселя в ДБГриде вместе..



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

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

Наверх




Память: 0.57 MB
Время: 0.019 c
15-1201595132
needhelp
2008-01-29 11:25
2008.03.02
проюлема с HDD


15-1201478180
Lip
2008-01-28 02:56
2008.03.02
как сделать чтобы программы на builder e работали на других


2-1202059832
ванька
2008-02-03 20:30
2008.03.02
Две формы


2-1202232422
NieL
2008-02-05 20:27
2008.03.02
Action (ShortCut)


15-1201450136
Kerk
2008-01-27 19:08
2008.03.02
Посоветуйте файрволл