Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.66/29: Рейтинг темы: голосов - 29, средняя оценка - 4.66
1 / 1 / 0
Регистрация: 15.07.2012
Сообщений: 86

Один столбец StringGrid загрузить в ListBox

22.10.2012, 20:22. Показов 6081. Ответов 51
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста разобраться у меня на разных формах stringgridы данные в них я сохраняю в типизированные файлы(разные) как сделать что бы данные из определенного столбца при сохранении добавлялись в ListBox расположенный на 3 форме?

Добавлено через 25 минут
StringGrid у меня сохраняется вот так
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
procedure TForm2.Button2Click(Sender: TObject);
var
  i,j,t:integer;
  b : Boolean;
  Str:TStr;
begin
try
  t:=0;
  //Удалим пустые строки из гриде...
  for i:=0 to StringGrid1.RowCount-1 do
  Begin
    b:=False;
    for j:=0 to StringGrid1.ColCount-1 do
    If Length(StringGrid1.Cells[j,i])<>0 Then
    Begin
      b:=True;
      Break;
    End;
    If b Then
    Begin
      If t<>i Then
      StringGrid1.Rows[t]:=StringGrid1.Rows[i];
      Inc(t);
    End;
  End;
  StringGrid1.RowCount:=t;
 
  AssignFile(K,'test.dat');
  Rewrite(K);
  Str.ccount:=StringGrid1.ColCount;
  Str.rcount:=StringGrid1.RowCount;
  for i:=0 to StringGrid1.RowCount-1 do
  for j:=0 to StringGrid1.ColCount-1 do
 
  begin
    Str.value:=StringGrid1.Cells[j,i];
    Write(K,Str);
  end;
  CloseFile(K);
except
  on e:Exception do
end;
end;
второй грид так же только 'test1.dat' если 1 отделение грида это 0;0 то мне нужно что бы в листбоксе сохранялась только 1;0
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.10.2012, 20:22
Ответы с готовыми решениями:

Редактирование данных из таблицы Excel - ListBox выводит только один столбец
доброго времени суток! нашел очень хороший исходник по редактированию на этом форуме и подогнал под свои данные. Проблема не велика но...

Как перенести строку из одного StringGrid в столбец другого StringGrid?
Всем добра уважаемые спецы в программировании! Не могу сообразить как сделать следующее в StringGrid'е. Имеем StringGrid1 его заполняем...

Stringgrid сохранить/загрузить
Добрый день!Помогите пожалуйста! Не могу понять как сделать следующее. Нужно чтобы по нажатию на кнопку, Stringgrid сохранялся в файл...

51
1 / 1 / 0
Регистрация: 15.07.2012
Сообщений: 86
25.10.2012, 10:11  [ТС]
Студворк — интернет-сервис помощи студентам
спасибо! мне бы до такой красоты не сделать.
0
1 / 1 / 0
Регистрация: 15.07.2012
Сообщений: 86
26.10.2012, 12:36  [ТС]
Я вас наверное замучила, но мне опять нужна помощь! Помогите пожалуйста сделать учет костюмов. то есть из грида склада уменьшалось количество если во втором выдано. Вообще в интернете мало такой информации, а может я ищу не то что надо вот вообщем что мне удалось сделать самой.
На выдачу
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
procedure TForm16.AddButton1Clck(Sender;TObject);
var
n:integer;
begin
if  Form16.StringGrid1[0;j]= Form16.Table.FieldValues['N'] +1;
end
else
n:=1;
if Form16.Table.Locate('Название',Edit1.Text,[])=False then
begin
ShowMessage('Данный костюм отсутствует на складе');
exit;
end
else
begin
if ComboBox1.Value>Form16.Table.FaileValues['Количество'] then
begin
ShowMessage('Количество на выдачу превышает количество на складе');
exit
end;
end;
отдел склада Костюмы народов мира
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
procedure Form3.Button1Click(Sender;TObject);
var
n:integer;
begin
if Form2.StringGrid1=Form2.Table.RecordCount>0 then
begin
Form2.StringGrid1.Last;
n:=Form2.StringGrid1. FieldValues['N']+1;
end
else
n:=1;
eng;
end;
Вложения
Тип файла: rar 23.10.12++.rar (2.56 Мб, 4 просмотров)
0
 Аватар для Одиночка
3944 / 1869 / 337
Регистрация: 16.03.2012
Сообщений: 3,880
26.10.2012, 23:36
Ну я вставил проверку на превышение количества костюмов на складе, запрошенному для выдачи. Только вам нужно ещё делать доработки. Ведь по кнопке "На выдачу" данные только подготавливаются для выдачи. Как бы "в корзину" в интернет-магазинах. Потом должна быть ещё кнопка "Выдать", по которой выбранные костюмы отмечаются на складе как выданные. Уже в коде этой кнопки нужно вычитать количество выданных костюмов от количества имеющихся на складе. Кроме этого нужно дополнительно создавать файл хранения данных о выданных костюмах. Тоже, наверное, типизированный.
Я бы вам не советовал использовать таблицы. Раз уже работаете с типизированными файлами - так и продолжайте с ними работать. Но это лично моё мнение.
Потом вам ещё нужно сделать возврат костюмов. Примерно так:
Грузите в грид все данные о выданных костюмах. Потом кликаете на нужных и они отмечаются как возвращённые - количество добавляется на склад. А из файла выданных эти записи удаляются. Примерно так. Ну я завтра выдачу уже полностью доделаю и потом выложу архив.
1
 Аватар для Одиночка
3944 / 1869 / 337
Регистрация: 16.03.2012
Сообщений: 3,880
27.10.2012, 16:34
Вот. Сделано: выдача костюмов народов мира и возврат их (Unit18 и пункт "возврат" в MainMenu).
Но вам тут ещё много работы осталось.

Во-первых: Нужно загружать списки костюмов в событиях OnCreate соответствующих форм. А не по кнопке "Открыть". Эти кнопки вообще нужно убрать - пользователь не должен заморачиваться с такими вещами.

Во-вторых: В событии OnClose главной формы (Unit4) нужно вставить сохранение данных по спискам. Т.е. если в какой-либо список костюмов редактировался - нужно сохранять весь список из соответствующего грида в соответствующий файл. И кнопки "сохранить" тоже не нужны - загрузка списков (см. выше), сохранение при закрытии формы.
Тогда вам в ListBox-ы нужно загружать текущие списки из соответствующих гридов при показе форм 16,17, и убрать изменения в LB при изменении списков или их загрузке и сохранении. И нет необходимости сохранять LB при закрытии формы и загружать при открытии.
При загрузке списка костюмов в LB - не вносить туда наименования с нолевым количеством.

В-третьих: Нужно отслеживать изменения в списке костюмов и делать изменения в списке выданных. Иначе, если какой-то костюм выдан, а потом в списке изменено его имя - при возврате программа не найдёт этот костюм на складе.
Для отслеживания изменений нужно запретить редактировать гриды вручную, а поставить кнопки "Изменить" (такая форма как и "добавить", только при её показе вносить данные в соответствующие поля из выбранной строки грида). После изменений и нажатия OK - проверять, если наименование меняется - находить такие же в файле выданных и менять их на новые. Само-собой вносить сразу изменения и грид.
Вложения
Тип файла: rar 23.10.12++.rar (2.16 Мб, 4 просмотров)
1
1 / 1 / 0
Регистрация: 15.07.2012
Сообщений: 86
28.10.2012, 10:50  [ТС]
Спасибо большое за вашу помощь. И за ваши подсказки. Буду пытаться сделать. А почему при выборе даты стоит 1900 год и как можно это исправить. И при нажатии на кнопку На выдачу вылетает ошибка.
0
 Аватар для Одиночка
3944 / 1869 / 337
Регистрация: 16.03.2012
Сообщений: 3,880
28.10.2012, 17:29
Вот переделал по моим советам из предыдущего поста. Ну и ещё кое-какие доработки. Правда, не понял, зачем кнопка "Выдача" на форме 1 если там выдача выполняется из MainMenu.
Переделал немного форматы выходных файлов. Так что старые ваши файлы теперь не подходят. Но я немного набрал данных для тестирования.
Убрал лишние формы для поиска. Там достаточно одной. Поиск работает на всех формах.
Добавил форму и код возврата костюмов на склад.
В общем тестируйте. Будут замечания или вопросы - пишите.
Советую свой старый проект упаковать в архив, а мой архив распаковать и использовать.
Да, компонет TTable не удалял. Советую вам это сделать самой. Просто я с таблицами работал и иногда то строка не введётся, то поиск не выполняется. В общем какой-то мутный компонент. Но это моё мнение.
Вложения
Тип файла: rar 23.10.12++.rar (3.67 Мб, 3 просмотров)
1
 Аватар для Одиночка
3944 / 1869 / 337
Регистрация: 16.03.2012
Сообщений: 3,880
29.10.2012, 19:49
Исправил, чтобы дата в начале была пустая. Замените Unit16 и Unit17 - файлами из архива. Там с расширением *pas и *dfm. Меняйте и те и те.
Вложения
Тип файла: rar Unit16-17.rar (6.5 Кб, 3 просмотров)
1
1 / 1 / 0
Регистрация: 15.07.2012
Сообщений: 86
31.10.2012, 13:30  [ТС]
Когда вводишь количество на выдачу больше чем есть на складе вылетает ошибка. Подскажите как исправить
0
1 / 1 / 0
Регистрация: 15.07.2012
Сообщений: 86
31.10.2012, 13:34  [ТС]
!!!!!!!!!!
Вложения
Тип файла: rar 31.10.12.rar (3.73 Мб, 4 просмотров)
0
1 / 1 / 0
Регистрация: 15.07.2012
Сообщений: 86
31.10.2012, 13:35  [ТС]
А на форме 1 кнопку Выдача я хотела удалить только не знаю как правильно это сделать.
0
 Аватар для Одиночка
3944 / 1869 / 337
Регистрация: 16.03.2012
Сообщений: 3,880
31.10.2012, 19:39
Насчёт ошибки. Была там ошибка в Unit17 - исправил.
По поводу кнопки. Удалил кнопку "Выдача". В архиве Unit1.pas, Unit1.dfm и Unit17.pas - разархивируйте и замените свои файлы, файлами из архива.
А вы, если удаляете кнопку - удаляйте и все события, связанные с ней. Т.е. Button1Click и если есть другие - тоже. Удалять нужно в том числе и из блока описания формы - там предописания процедур.
Вложения
Тип файла: rar Unit1&17.rar (68.2 Кб, 4 просмотров)
1
1 / 1 / 0
Регистрация: 15.07.2012
Сообщений: 86
01.11.2012, 13:56  [ТС]
извbните пожалуйста такое происходит только c костюмом шапка монамаха. А вот теперь при возврате костюма народов мира вылезает is not a valid integer value. Что это? Как исправить?

Добавлено через 11 минут
Я так понимаю что когда происходит двайной щелчок и мы удаляем т.е возвращаем костюм на склад должен оставатся пустой грид, а там остается цифра 1
0
 Аватар для Одиночка
3944 / 1869 / 337
Регистрация: 16.03.2012
Сообщений: 3,880
01.11.2012, 21:15
Там было много исправлений. Файлами из архива замените свои в проекте.
Вместо двойного щелчка при возврате костюмов вставил кнопку. Хотя можно пользоваться и двойным щелчком.
Тестируйте, пишите.
Вложения
Тип файла: rar Unit++.rar (11.7 Кб, 6 просмотров)
1
1 / 1 / 0
Регистрация: 15.07.2012
Сообщений: 86
02.11.2012, 11:26  [ТС]
Спасибо! Даже не знаю какими словами выразить мою благодарность.
0
1 / 1 / 0
Регистрация: 15.07.2012
Сообщений: 86
04.11.2012, 00:02  [ТС]
Подскажите как сделать что бы нажав например бутон открывался документ ворд. но у меня опен офис виндовс 7. в делфи 7 компоненты ворд другие. я нпример хоче что бы в документе был определенный текст. как это прописать
0
 Аватар для Одиночка
3944 / 1869 / 337
Регистрация: 16.03.2012
Сообщений: 3,880
04.11.2012, 00:06
Что вы с Вордом хотите делать?
1
1 / 1 / 0
Регистрация: 15.07.2012
Сообщений: 86
04.11.2012, 00:09  [ТС]
Хочется что бы это был отчет выдачи. Ну типа накладной.
0
 Аватар для Одиночка
3944 / 1869 / 337
Регистрация: 16.03.2012
Сообщений: 3,880
04.11.2012, 00:25
В Delphi 5 были компоненты для создания отчётов типа QuckRep. А в 7-й я их чего-то не нахожу.
А через Memo вас отчёт не устроит?
С Word-ом я, практически, не работал через Delphi. Могу поковыряться. Только быстро не получится.
1
1 / 1 / 0
Регистрация: 15.07.2012
Сообщений: 86
04.11.2012, 00:28  [ТС]
а как с мемо сделать.
0
 Аватар для Одиночка
3944 / 1869 / 337
Регистрация: 16.03.2012
Сообщений: 3,880
04.11.2012, 00:34
Вы можете нарисовать, как должен выглядеть этот отчёт? Хотя бы в Word-е. И описать, когда его нужно выдавать. Если там может быть несколько страниц, значит покажите хотя-бы пару.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.11.2012, 00:34

сохранить/загрузить в 2 stringgrid
Доброго времени суток форумчане :) Как сделать такой файл чтобы можно было сохранить в один файл из 2 гридов а потом можно было загрузить...

Столбец таблицы БД загрузить в ComboBox
Итак, есть таблица в бд, структура: ИД, Наме Нада загнать ее в комбобокс так чтоб отображалась колонка Наме в списке, но можно било...

Умножить каждый столбец матрицы 3х3 на один столбец матрицы 3х1
Друзья, нужно написать простенькую прогу, которая умножает каждый столбец матрицы 3х3 на один столбец матрицы 3х1. Помогите пожалуйста...

Загрузить текстовый файл в StringGrid
Здрасьте Всем! Хотел попросить помощи. Тут нужно расчитать с симплекс методам я ввел данные в текст файл и открыть Stringgrid-ом но...

Загрузить в StringGrid таблицы из Excel
Ребята, помогите пожалуйста как сделать через stringgrid вот эти три таблицы.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Жара жесть.
kumehtar 18.08.2026
Пролетают летом дни Тридцать пять жары в тени. Каждый август год от года Дарит жаркую погоду.
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru