|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#106
|
|||
|
|||
MegaPiha ну громаднейшее Вам человеческое спасибо... последний вопрос остался - как сделать что бы сохраняло сразу с 6-ти стрингргридов? И открывало потом в те же?
Последний раз редактировалось AndrYxo, 19.04.2008 в 12:56. |
#107
|
|||
|
|||
Цитата:
|
#108
|
|||
|
|||
Цитата:
|
#109
|
|||
|
|||
Цитата:
|
#110
|
|||
|
|||
Цитата:
|
#111
|
|||
|
|||
Цитата:
|
#112
|
|||
|
|||
Цитата:
|
#113
|
|||
|
|||
Цитата:
Сохранение в файл 3-х разных таблиц. Код:
procedure TForm1.BitBtn2Click(Sender: TObject); var s :TStringlist; j:Integer; Str:String; posy, posx, i : Integer; Begin with TSaveDialog.Create(Owner) do begin DefaultExt:='.txt'; Filter:= 'файлы проекта|*.txt'; if not Execute then exit; s:=TStringList.Create; s.Clear; for i:=0 to StringGrid1.RowCount-1 do begin Str := '' ; for j:=0 to StringGrid1.ColCount-1 do str:=str+StringGrid1.Cells[j, i]+' '; s.Add(Str); end; s.Add('T2'); for i:=0 to StringGrid2.RowCount-1 do begin Str := '' ; for j:=0 to StringGrid2.ColCount-1 do str:=str+StringGrid2.Cells[j, i]+' '; s.Add(Str); end; s.Add('T3'); for i:=0 to StringGrid3.RowCount-1 do begin Str := '' ; for j:=0 to StringGrid3.ColCount-1 do str:=str+StringGrid3.Cells[j, i]+' '; s.Add(Str); end; S.SaveToFile(FileName); end; s.Free; end; Чтение из файла 3-х таблиц. Код:
procedure TForm1.BitBtn3Click(Sender: TObject); var s :TStringlist; i,j,yd:Integer; Str:String; posy, posx, py: Integer; t1,t2,t3:boolean; Begin t1:=true; t2:=false; t3:=false; with TOpenDialog.Create(Owner) do begin py:=0; DefaultExt:='.txt'; Filter:= 'файлы проекта|*.txt'; if not Execute then exit; s:=TStringList.Create; S.LoadFromFile(FileName); For posy := 1 to S.Count do begin posx := 0; Str := ''; For i := 1 to Length(S.Strings[posy-1]) do begin if S.Strings[posy-1][i] <> ' ' then begin Str := Str + S.Strings[posy-1][i]; if Str = 'T2' then begin t1:=false; t2:=true; py:=posy; end; if Str = 'T3' then begin t1:=false; t2:=false; t3:=true; py:=posy; end; end else begin if t1= true then StringGrid4.Cells[posx, posy-1] := Str; if t2 = true then StringGrid5.Cells[posx, posy-1-py] := Str; if t3 = true then StringGrid6.Cells[posx, posy-1-py] := Str; Str := ''; inc(posx); end; end; end; end; S.Free; end; |
#114
|
|||
|
|||
Цитата:
Огромное спасибо - наверное что бы не утруждать Вас больше сделаю на 2 кнопки сохранение и на 2 кнопки восстановление... огромнейшее спасибо |
#115
|
|||
|
|||
Цитата:
Так, ведь по аналогии можно хоть 100 таблиц сохнарять и считывать по 1-й кнопке. |
#116
|
|||
|
|||
Цитата:
|
#117
|
|||
|
|||
Здравствуйте, это снова я - чайник в области программирования! Обращаюсь к вам с просьбой обьяснить мне некоторые вещи... Мне надо составить пояснительную записку к курсовой работе, а я уже 2-й день не могу понять - что от меня нужно - пожалуйста, вот содержание методички по курсовой работе (только то, что я не могу понять)
Код:
4.6. Основная часть Основная часть пояснительной записки содержит выполненные задания. Количество подразделов основной части соответствует количеству заданий. Математическая постановка задачи – это точное описание исходных данных, условий задачи и целей ее решения. В полученной на этапе формали-зации математической модели исходной задачи каждое из требований записы-вается в виде математических уравнений. Кроме обязательных требований можно сформулировать дополнительные. Информационная модель - модель, в которой исследуемый объект пред-ставлен в виде процессов ввода, обработки и вывода информации, а параметры модели представлены в числовой, текстовой, графической или другой форме. При составлении информационной модели: 1) определяется состав исходных, промежуточных и выходных данных; 2) выбираются устройства-источники и устройства-приемники данных; 3) определяются форматы представления данных – способ представления информации, определяющий правила размещения данных на носителе информации или устройстве (целое, действительное, символьное, стро-ковое, логическое и др). Для полученной модели выбирают уже известные или же разрабатываются новые оригинальные численные методы решения задачи. Возможно, что для полученной модели известны несколько методов решения. Тогда необходимо выбрать лучший. Программная реализация модели на компьютере включает описание: 1) разработанных форм в графическом и текстовом виде; 2) использованных компонентов; 3) текстов программ (могут быть вынесены в приложение). В разделе «Результаты расчетов на компьютере» приводится кон-трольный пример: реальные входные, промежуточные и выходные данные. 4.7. Выводы В выводах формулируются итоги по результатам решения исходных задач. Если не трудно обьясните мне пожалуйста на примере вот этой задачи - остальные я по такому же принципу сделаю, ато завтра уже отчет нужен - а я в него до сих пор не въехал! Условие проги: Наити произведение положительных элементов массива A[i], удовлетворяющих условию c<=a[i]<=d Код проги: Код:
unit Unit2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids; type TForm2 = class(TForm) Button1: TButton; Edit1: TEdit; Edit2: TEdit; StringGrid1: TStringGrid; Label1: TLabel; Label2: TLabel; Button2: TButton; Button3: TButton; Label3: TLabel; Label4: TLabel; Label5: TLabel; Edit3: TEdit; Edit4: TEdit; Label6: TLabel; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form2: TForm2; n:integer; implementation uses Unit1; {$R *.dfm} procedure TForm2.Button1Click(Sender: TObject); var a:array [0..19] of real; P:real; i:integer; c,d:real; begin n:=strtoint(edit3.Text); stringgrid1.ColCount:=n; randomize; if n<=20 then for i:=0 to n-1 do begin a[i]:=random(50--50+1)-50; StringGrid1.Cells[i,0]:=FormatFloat('0.00',a[i]); end else ShowMessage('Количество элементов массива не удовлетворяет условию задачи'); P:=1; c:=StrtoInt(Edit1.Text); d:=StrtoInt(Edit2.Text); if n<=20 then for i:=0 to n-1 do if (a[i]>0) and (a[i]>=c) and (a[i]<=d) then P:=P*a[i]; Edit4.Text:= FormatFloat('0.00',P); end; procedure TForm2.Button2Click(Sender: TObject); var i:integer; begin for i:=0 to n-1 do StringGrid1.Cells[i,0]:=FormatFloat(' ',0); Edit3.Clear; Edit4.Clear; Edit1.Clear; Edit2.Clear; end; procedure TForm2.Button3Click(Sender: TObject); begin Form1.Show; Form2.Close; end; end. Заранее очень благодарен, ато я уже отчаялся |
#118
|
||||
|
||||
Не отчаивайся! Как говорят у нас на работе - какой вопрос такой и ответ.
Я примерно понял так. Математическая постановка задачи. Дан массив A состоящий из n элементов, значения которых лежат в диапазоне от -50 до 50, где n принимает значения от 0 до 19. Необходимо найти произведение элементов массива, удовлетворяющих условию с<=А[i]<=d, где c и d числа лежащие в диапазоне -50 до 50 и задаваемые пользователем. Информационная модель. 1. Состав исходных данных: - Массив A[0..n] –элементов, принимающих значения от -50 до 50. Переменные: - с,d – границы диапазона, являющиеся условием для поиска элементов массива. - n – количество элементов массива от 0 до 19. Состав промежуточных данных. Промежуточных данных нет. Состав выходных данных. P – тип real – произведение элементов массива, удовлетворяющих условию с<=А[i]<=d. 2. Устройства-источники данных: - Edit1 – вводится c. - Edit2 – вводится d. - Edit3 – вводится количество элементов массива (n). Устройства-приемники данных. - Edit4 – выводится результирующее произведение P. - StringGrid1 – выводится элементы массива A[n]. 3. Форматы представления данных n – целое. A[0..n], c,d, P – действительные. Программная реализация модели. Для решения данной задачи были использованы следующие компоненты: Формы типа TForm - Form2 - главная форма, включающая кнопки типа TButton Button1 – основная реализация программы. Button2 – очистка компонентов формы. Button3 – выход. |
#119
|
|||
|
|||
Professor Farnsworth огромное спасибо! Теперь я хоть знаю, что делать!!! Примного благодарен! 8)
|
#120
|
|||
|
|||
Здрасте, не подскажите, как при помощи компонента ApplicationEvents сделать, что бы кнопка Button была неакивна пока не заполнятся 3 Edit'a, если это вообще можно сделать конечно.. спасибо)
|