Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 01.07.2015, 12:06   #1
andriy1048
Пользователь
 
Регистрация: 02.04.2015
Сообщений: 53
По умолчанию Сортировка StringGrid

Я хочу сортировать "Предмет" по алфавиту... Сортировка просиходит, ну нужно чтобы останльные параметры перемещались в матрице вместе с "Предметом"... Помогите пожалуйста!!!

Код:
unit Unit4;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Grids, Vcl.StdCtrls, Vcl.Buttons;

type
  TForm4 = class(TForm)
    StringGrid1: TStringGrid;
    Button1: TButton;
    Button2: TButton;
    procedure FormCreate(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form4: TForm4;

implementation

{$R *.dfm}

uses Unit1;



procedure TForm4.Button1Click(Sender: TObject);
var
i, j: Integer;
lTmpStr: string;
begin
for i := 1 to StringGrid1.RowCount - 1 do
begin
for j := i + 1 to StringGrid1.RowCount - 1 do
if StringGrid1.Cells[1, i] > StringGrid1.Cells[1, j] then
begin
lTmpStr := StringGrid1.Cells[1, i];
StringGrid1.Cells[1, i] := StringGrid1.Cells[1, j];
StringGrid1.Cells[1, j] := lTmpStr;
end;
end;
end;

procedure TForm4.Button2Click(Sender: TObject);
begin
close;
end;

procedure TForm4.FormActivate(Sender: TObject);
var
    i,j:integer;
    rec:sesiya;
begin
Form4.StringGrid1.RowCount :=  Filesize(f)+1;
for i:=1 to Filesize(f) do
begin
seek(f,i-1);
read(f,rec);
Form4.StringGrid1.Cells[0,i]:=rec.group;
Form4.StringGrid1.Cells[1,i]:=rec.subject;
Form4.StringGrid1.Cells[2,i]:=rec.teacher;
Form4.StringGrid1.Cells[3,i]:=DateToStr(rec.data);
end;
end;

procedure TForm4.FormCreate(Sender: TObject);
begin
StringGrid1.Cells[0,0]:='Група';
StringGrid1.Cells[1,0]:='Предмет';
StringGrid1.Cells[2,0]:='Препод';
StringGrid1.Cells[3,0]:='Дата';
end;
andriy1048 вне форума
Старый 01.07.2015, 12:16   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
ну нужно чтобы останльные параметры перемещались в матрице вместе с "Предметом"...
так нужно же перемещать ВСЕ колонки(столбцы) выбранных строк (i, j).
Код:
for k:=0 to grid.colcount-1 do begin
  // ...и здесь перемещение одной из (а именно k) колонки Cells[k, i] 
end;
или же
http://programmersforum.ru/showpost....17&postcount=3
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 01.07.2015 в 12:21.
evg_m вне форума
Старый 01.07.2015, 12:16   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
andriy1048
А предидущая твоя тема разве ничему не научила?
I'm learning to live...
Stilet вне форума
Старый 01.07.2015, 12:18   #4
andriy1048
Пользователь
 
Регистрация: 02.04.2015
Сообщений: 53
По умолчанию

Нет, они все делали немного не так, как требут препод (
andriy1048 вне форума
Старый 01.07.2015, 12:24   #5
andriy1048
Пользователь
 
Регистрация: 02.04.2015
Сообщений: 53
По умолчанию У меня получилось

Код:
procedure TForm4.Button1Click(Sender: TObject);
var
	i, j: Integer;
	lTmpStr: array [0..3] of string;
begin
for i := 1 to StringGrid1.RowCount - 1 do
	begin
	for j := i + 1 to StringGrid1.RowCount - 1 do
	if StringGrid1.Cells[1, i] > StringGrid1.Cells[1, j] then
	begin
		lTmpStr[1] := StringGrid1.Cells[1, i];
		StringGrid1.Cells[1, i] := StringGrid1.Cells[1, j];
		StringGrid1.Cells[1, j] := lTmpStr[1];

		lTmpStr[0] := StringGrid1.Cells[0, i];
		StringGrid1.Cells[0, i] := StringGrid1.Cells[0, j];
		StringGrid1.Cells[0, j] := lTmpStr[0];

		lTmpStr[2] := StringGrid1.Cells[2, i];
		StringGrid1.Cells[2, i] := StringGrid1.Cells[2, j];
		StringGrid1.Cells[2, j] := lTmpStr[2];

		lTmpStr[3] := StringGrid1.Cells[3, i];
		StringGrid1.Cells[3, i] := StringGrid1.Cells[3, j];
		StringGrid1.Cells[3, j] := lTmpStr[3];
		//---------- ---------- ----------
	end;
end;
end;
andriy1048 вне форума
Старый 01.07.2015, 14:32   #6
JUDAS
фонатик DELPHI
Форумчанин
 
Аватар для JUDAS
 
Регистрация: 14.01.2008
Сообщений: 714
По умолчанию

Цитата:
Сообщение от andriy1048 Посмотреть сообщение
Нет, они все делали немного не так, как требут препод (
Андрей, запомни, в программировании нет понятие делают не так или делают так, в нём есть понятия
1. постановка задачи
2. входные параметры
=== код ===
3. требуемый результат

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

По сути, вам предложили 2 варианта решения задачи с исходниками. Оба варианта сортируют список по полю "предмет". У меня код менее громоздкий у колеги миная - более детальный
Если ваш препод что-то требует, то можете ему передать от меня (и посмею заявить - от имени сообщества программистов), что его место не в преподавательской института , а в ларьке с шаурмой или на базаре с гуманитаркой. Грош цена такому преподу, и я очень сожалею, что такой "интеллектуальный" помёт как он, учит нашу молодёжь.
Очень грусно осознавать, какие с вас (вашей девушки) программист получатся в будущем.

----------
п.с. о себе, 42 года, программист-самоучка-практик.
95% сбоев и ошибок приложений, находится в полу метрах от монитора

Последний раз редактировалось JUDAS; 01.07.2015 в 17:34.
JUDAS вне форума
Старый 01.07.2015, 16:34   #7
andriy1048
Пользователь
 
Регистрация: 02.04.2015
Сообщений: 53
По умолчанию

Цитата:
Сообщение от JUDAS Посмотреть сообщение
Андрей, запомни, в программировании нет понятие делают не так или делают так, в нём есть понятия
1. постановка задачи
2. входные параметры
=== код ===
3. требуемый результат

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

По сути, вам предложили 2 варианта решения задачи с исходниками. Оба варианта сортируют список по полю "предмет". У меня код менее громоздкий у колеги миная - более детальный
Если ваш препод что-то требует, то можете ему передать от меня (и поселюсь заявить - от имени сообщества программистов), что его место не в преподавательской института , а в ларьке с шаурмой или на базаре с гуманитаркой. Грош цена такому преподу, и я очень сожалею, что такой "интеллектуальный" помёт как он, учит нашу молодёжь.
Очень грусно осознавать, какие с вас (вашей девушки) программист получатся в будущем.

----------
п.с. о себе, 42 года, программист-самоучка-практик.
Я с вами полностью согласен))) В том и вся проблема, что я не могу понять поставленой задачи и когда мне пишут код, я не могу с ними разобраться...
Но вам большое спасибо)))
andriy1048 вне форума
Старый 01.07.2015, 18:06   #8
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Если ваш препод что-то требует, то можете ему передать от меня
и от меня! напечатай этот топик и предыдущий и покажи преподу, пусть поспорит.
----------
п.с. о себе, 37 лет, программист-самоучка, оптимизатор-эникейщик.
В разводе, двое детей, тёща-старушка. Инженер-конструктор 1-й категории. Не пью, не курю, сладкого не ем, матом не ругаюсь.
Цитата:
В том и вся проблема, что я не могу понять поставленой задачи и когда мне пишут код, я не могу с ними разобраться...
Я ж тебя предупреждал, что мой код тебе не поможет, т.к. не осилишь ты его.
Цитата:
Но вам большое спасибо)))
А мне???!!!111
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...

Последний раз редактировалось min@y™; 01.07.2015 в 18:09.
min@y™ вне форума
Старый 01.07.2015, 18:09   #9
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Че за массовый психоз - о себе?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума
Старый 01.07.2015, 18:15   #10
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Че за массовый психоз - о себе?
реклама
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка StringGrid GaleI Помощь студентам 3 29.03.2012 13:08
сортировка StringGrid vovey Помощь студентам 4 11.04.2010 14:25
Сортировка в Stringgrid сер4ей Помощь студентам 1 24.02.2010 14:40
StringGrid и сортировка dee_lv Помощь студентам 5 02.05.2008 17:51