|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
10.01.2009, 03:22 | #1 |
Пользователь
Регистрация: 30.12.2008
Сообщений: 16
|
добавление кнопки для определения максимального значения в столбце (дополнение к готовой работе))
Здравствуйте уважаемые Програмисты.
нажна помощь с курсовой зарание спасибо. есть готовая работа(лабораторная), паролный вход; потом в таблице выдаются случайные числа, снизу сумарное значение каждого из столбцов. нужно добавить кнопку (или ещё какойнибудь способ) чтобы при нажатии, красным отображался столбец с максимальным значением. спасибо. |
10.01.2009, 03:23 | #2 |
Пользователь
Регистрация: 30.12.2008
Сообщений: 16
|
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Mask, ExtCtrls, Menus, Grids, Buttons, Math; type TForm1 = class(TForm) MaskEdit1: TMaskEdit; Label1: TLabel; Button1: TButton; StringGrid1: TStringGrid; Label2: TLabel; ComboBox1: TComboBox; Label5: TLabel; ListBox1: TListBox; StringGrid2: TStringGrid; //procedure RadioGroup1Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); // procedure StringGrid1KeyPress(Sender: TObject; var Key: Char); procedure StringGrid1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure rashet(); // procedure MyPaint(); // procedure FormPaint(Sender: TObject); // procedure MaskEdit1KeyPress(Sender: TObject; var Key: Char); procedure StringGrid1Exit(Sender: TObject); procedure ComboBox1Change(Sender: TObject); // procedure FormKeyPress(Sender: TObject; var Key: Char); // procedure ComboBox1KeyPress(Sender: TObject; var Key: Char); procedure ListBox1Click(Sender: TObject); procedure FormResize(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; summ, min1, pass1, shet, i, j: integer; mas: array of integer; ris: boolean; pass2, pass3: string; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin if pass2 = maskedit1.text then begin shet:=0; button1.Visible:=false; Label1.Visible:=false; MaskEdit1.Visible:=false; Label5.Visible:=false; Label2.Visible:=true; ComboBox1.Visible:=true; StringGrid1.Visible:=true; StringGrid2.Visible:=true; ListBox1.Visible:=True; end; shet:=shet+1; if shet=3 then close; end; procedure TForm1.ComboBox1Change(Sender: TObject); begin StringGrid1.ColCount:=ComboBox1.Ite mIndex+9; StringGrid1.DefaultColWidth:=trunc( 322/(ComboBox1.ItemIndex+9)); StringGrid2.ColCount:=ComboBox1.Ite mIndex+9; StringGrid2.DefaultColWidth:=trunc( 322/(ComboBox1.ItemIndex+9)); rashet(); end; {procedure TForm1.ComboBox1KeyPress(Sender: TObject; var Key: Char); begin if key=#13 then begin key := Chr(0); MyPaint(); end else key := Chr(0); end; } procedure TForm1.FormCreate(Sender: TObject); begin ListBox1.ItemIndex:=2; randomize(); pass2:='12345678'; i:=0; while i<8 do begin pass1:= random(10); pass3:=inttostr(pass1); pass2[8-i]:=pass3[1]; label5.Caption:=label5.Caption+' '+inttostr(pass1); i:=i+1; end; //MaskEdit1.Text:=pass2; i:=0; while i<StringGrid1.rowCount do begin j:=0; while j<StringGrid1.ColCount do begin stringgrid1.Cells[j,i]:=inttostr(random(101)); j:=j+1; end; i:=i+1; end; rashet(); end; {procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); begin if key=#13 then begin MyPaint(); end; end; } {procedure TForm1.FormPaint(Sender: TObject); begin if ris then MyPaint(); end; } {procedure TForm1.MaskEdit1KeyPress(Sender: TObject; var Key: Char); begin if key=#13 then Button1Click(self); end;} |
10.01.2009, 03:23 | #3 |
Пользователь
Регистрация: 30.12.2008
Сообщений: 16
|
продолжение..
{procedure TForm1.MyPaint(); begin j:=0; ris:=true; while j<StringGrid2.RowCount do begin //if min1=strtoint(stringgrid2.Cells[0,j]) then //begin stringgrid1.Canvas.Brush.Style:= bsClear; //stringgrid1.Canvas.Pen.Color:=clblu e; //stringgrid1.Canvas.Pen.Width:=3; //stringgrid1.Canvas.Rectangle(0,(str inggrid1.DefaultRowHeight+1)*j,stri nggrid1.Width-5, (stringgrid1.DefaultRowHeight+1)*(j +1)-2); //stringgrid2.Canvas.Brush.Style:= bsClear; //stringgrid2.Canvas.Pen.Color:=clblu e; //stringgrid2.Canvas.Pen.Width:=3; //stringgrid2.Canvas.Rectangle(0,(str inggrid1.DefaultRowHeight+1)*j,stri nggrid2.Width-5, (stringgrid1.DefaultRowHeight+1)*(j +1)-2); //end; j:=j+1; end; end; } {procedure TForm1.RadioGroup1Click(Sender: TObject); begin StringGrid1.RowCount:=RadioGroup1.I temIndex+9; StringGrid1.Height:=19*(RadioGroup1 .ItemIndex+9)+3; StringGrid2.RowCount:=RadioGroup1.I temIndex+9; StringGrid2.Height:=19*(RadioGroup1 .ItemIndex+9)+3; rashet(); end;} procedure TForm1.StringGrid1Exit(Sender: TObject); begin rashet(); end; {procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char); begin case Key of #8,'0'..'9': ; // цифры и <Backspace> #13: // клавиша <Enter> begin MyPaint(); end; else // остальные символы запрещены key := Chr(0); end; } //end; procedure Tform1.rashet(); begin j:=0; //ris:=false; SetLength(Mas, StringGrid1.ColCount); while j<StringGrid1.ColCount do begin i:=0; summ:=0; while i<StringGrid1.RowCount do begin if stringgrid1.Cells[j,i]='' then stringgrid1.Cells[j,i]:='0'; //if int(strtoint(stringgrid1.Cells[i,j])/2)=strtoint(stringgrid1.Cells[i,j])/2 then summ:=summ+strtoint(stringgrid1.Cel ls[j,i]); i:=i+1; end; mas[j]:= summ; stringgrid2.Cells[j,0]:=inttostr(summ); j:=j+1; end; min1:=MaxIntValue (mas); stringgrid1.Refresh; stringgrid2.Refresh; end; procedure TForm1.StringGrid1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin rashet(); end; procedure TForm1.ListBox1Click(Sender: TObject); begin StringGrid1.RowCount:=ListBox1.Item Index+9; StringGrid1.Height:=19*(ListBox1.It emIndex+9)+3; // StringGrid2.RowCount:=ListBox1.Item Index+9; // StringGrid2.Height:=19*(ListBox1.It emIndex+9)+3; rashet(); end; procedure TForm1.FormResize(Sender: TObject); begin j:=0; ris:=true; while j<StringGrid2.ColCount do begin if min1=strtoint(stringgrid2.Cells[j,0]) then begin stringgrid1.Canvas.Brush.Style:= bsClear; stringgrid1.Canvas.Pen.Color:=clRed ; stringgrid1.Canvas.Pen.Width:=3; stringgrid1.Canvas.Rectangle((strin ggrid1.DefaultColWidth+1)*j,1,strin ggrid1.DefaultColWidth+(stringgrid1 .DefaultColWidth+1)*j,stringgrid1.H eight-4); stringgrid2.Canvas.Brush.Style:= bsClear; stringgrid2.Canvas.Pen.Color:=clRed ; stringgrid2.Canvas.Pen.Width:=3; stringgrid2.Canvas.Rectangle((strin ggrid1.DefaultColWidth+1)*j,1,strin ggrid1.DefaultColWidth+(stringgrid1 .DefaultColWidth+1)*j,20); end; j:=j+1; end; end; end. |
10.01.2009, 11:51 | #4 |
Пользователь
Регистрация: 30.12.2008
Сообщений: 16
|
|
10.01.2009, 19:57 | #5 |
Пользователь
Регистрация: 11.01.2007
Сообщений: 54
|
посмотрю сегодня, напишу ))
нашедшего выход - затаптывают
|
11.01.2009, 00:40 | #6 |
Пользователь
Регистрация: 11.01.2007
Сообщений: 54
|
все, я в конец запуталась в обилии закомментированного (
и плохо уже понимаю, что тут было исправлено по сравнению с первым вариантом
нашедшего выход - затаптывают
|
11.01.2009, 01:09 | #7 | |
Пользователь
Регистрация: 30.12.2008
Сообщений: 16
|
Цитата:
ту что ты мне 1 делала. я успешно сдал! за ето спасибо огромное. Но в ней мне надо было переделать парольный вход. я из первой работы то значение что ты мне писала (200-100?&) или както так (чтоб числа рандом от -100 до100), вобщем я вставил это во вторую работу. которая анологичная только прокрутки нет. вообщем вот. и к этой работе которая 2 , код которой я тут написал, и нужно сделать чтобы красным отображался столбец с максимальным значением. вот както так... |
|
11.01.2009, 09:23 | #8 |
Пользователь
Регистрация: 11.01.2007
Сообщений: 54
|
парольный вход для меня роли не играет.
я могу дописать прошлую, она хотя бы компилировалась ) напишу с комментариями, надеюсь, сможешь вставить в свою. вечером (моим вечером +4 к Москве) напишу, хорошо?
нашедшего выход - затаптывают
|
11.01.2009, 16:07 | #9 |
Пользователь
Регистрация: 30.12.2008
Сообщений: 16
|
Спсибо огромное правда...
Спсибо , я нашел способ сдать, так что получается отбой..
очень благодарен, что отозвалась.! |
11.01.2009, 16:08 | #10 |
Пользователь
Регистрация: 11.01.2007
Сообщений: 54
|
значит так, добавляем переменную
numcol: integer, которой в процедуре TForm1.Create присваиваем значение -1 вторую кнопку на форму, в обработчике на нее: Код:
Код:
Вот. Вроде ничё не забыла
нашедшего выход - затаптывают
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Программа для определения CPU | netsky2004 | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 10.01.2009 02:07 |
Добавление кнопки.... | Xander | Общие вопросы Delphi | 3 | 09.06.2008 12:39 |
Считывание из файла, для определения кодировки | Arteom | Общие вопросы Delphi | 6 | 04.05.2008 10:11 |
Суммирование значений и выведения максимального значения | Bor_man | Microsoft Office Excel | 2 | 12.04.2007 19:49 |