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

Вниз

Как найти максимальное число ?   Найти похожие ветки 

 
Natalie   (2005-05-19 09:39) [0]

Здравствуйте!!!  Подскажите пожайлуста. Сущеcтвуют несколько Edit, причём они расположены на форме не по порядку. Т е edit2.text[; edit4.text; edit20.text;
в них после процедурки заносятся данные. Так вот надо выделить наиболее максимальное число из этих эдитов.
Пожскажите как это сделать?? Вернее как заносить данные из edit в переменную для справнения с другими?
очень прошу, кто знает напишите!! спасибо!


 
Юрий Зотов ©   (2005-05-19 09:44) [1]

> как заносить данные из edit в переменную для справнения с
> другими?

IntegerVar := StrToInt(Edit1.Text)
DoubleVar := StrToFloat(Edit1.Text)


 
Natalie   (2005-05-19 12:46) [2]

IntegerVar := StrToInt(Edit1.Text)
DoubleVar := StrToFloat(Edit1.Text)

ну это понятно что присвоить данные с edit
ну их то у меня много как сделать так, чтобы они по очереди заносились?? а потом сравнивались?


 
Romkin ©   (2005-05-19 12:52) [3]

TForm.Components, TForm.ComponentsCount


 
Anatoly Podgoretsky ©   (2005-05-19 12:53) [4]

Массив Components формы, перебирай в цикле.
С постановкой задачи явно не порядок.


 
PZ   (2005-05-19 13:28) [5]

Uses Math;

procedure TForm1.Button1Click(Sender: TObject);
Var
 I : Integer;
 MaxReal, M : Real;
begin
 MaxReal := -1e-6;
 For I := 0 to ComponentCount-1 do
   If (Components[I] is TEdit) then
     begin
       M := StrToFloat((Components[I] as TEdit).Text);
       MaxReal := Max(MaxReal, M);
     end;
// Посмотреть, что получилось
 Label1.Caption := FloatToStr(MaxReal);
end;


 
I'm   (2005-05-19 13:28) [6]

да и с формулировкой тоже: "наиболее максимальное число"


 
Юрий Зотов ©   (2005-05-19 13:31) [7]

> Natalie   (19.05.05 12:46) [2]

function TForm1.GetMaxValue: double;
var
 i: integer;
 Value: double;
 First: boolean;
begin
 Result := 0; // Чтобы убрать warning компилятора.
 First := True;
 for i := 0 to ComponentCount - 1 do
   if Components[i] is TEdit then
     with TEdit(Components[i]) do
       if First then
       begin
         First := False;
         Result := StrToFloat(Text)
       end
       else
         begin
           Value := StrToFloat(Text);
           if Result < Value then
             Result := Value
         end
end;


 
Natalie   (2005-05-19 13:35) [8]

ну мне же не надо пересчитывать все компоненты edit!
а только некоторые, а другие комн-ты edit уже служал для других целей, а он будет считать все ком-ты edit.
как сделать чтобы считал только выбранные!?


 
Reindeer Moss Eater ©   (2005-05-19 13:36) [9]

Пометить выбранные.


 
Skyle ©   (2005-05-19 13:41) [10]

А в процедуре обработки максимальное число не получается посчитать?


 
Юрий Зотов ©   (2005-05-19 14:00) [11]

> Natalie   (19.05.05 13:35) [8]

Извините, мадемуазель, а ПОДУМАТЬ хотя бы НЕМНОГО - это можно?

if (Components[i] is TEdit) and (Components[i].Tag < 0) then...

Все остальное - без изменений. Как видите, подумать и добавить нужно было действительно совсем чуть-чуть.


 
Reindeer Moss Eater ©   (2005-05-19 14:02) [12]

Щас мадмуазель скажет, что этот после этого изменения код не находит максимального числа вообще.
:)


 
Marser ©   (2005-05-19 17:07) [13]


> Юрий Зотов ©   (19.05.05 14:00) [11]

А я бы ещё поинтересовался, почему components, а не controls?

Массив Components включает в себя все компоненты, принадлежащие форме. Controls - лишь визуальные компоненты.


 
begin...end ©   (2005-05-19 17:22) [14]

> Marser ©   (19.05.05 17:07) [13]

Edit"ы могут быть расположены на панели.


 
stelius ©   (2005-05-19 17:39) [15]

Имхо лучче разделить обработку данных и отображение их юзеру.
Т.е. заносить данные в массив, например, и с ним работать (искать максимум, минимум, среднее и пр.), а для отображения данных написать процедурку, которая будет заносить данные из массива в Edit"ы.


 
Marser ©   (2005-05-19 18:51) [16]


> begin...end ©   (19.05.05 17:22) [14]
> > Marser ©   (19.05.05 17:07) [13]
>
> Edit"ы могут быть расположены на панели.

Вообще-то да, но в таком случае значительно эффективнее использовать controls самой панели.

Разве что они расположены на разных панелях...


 
Anatoly Podgoretsky ©   (2005-05-19 20:18) [17]

Marser ©   (19.05.05 18:51) [16]
Они могут бысть расположены на разных панелях, прикажешь рекурсию устраивать? Только этого не хватало.


 
begin...end ©   (2005-05-20 08:14) [18]

> Anatoly Podgoretsky ©   (19.05.05 20:18) [17]

Быстро же Вы своё мнение меняете...
Не так давно тоже за Controls были...


 
Defunct ©   (2005-05-20 08:36) [19]

Natalie   (19.05.05 13:35) [8]

На кой там 20 edit"ов?
Это ж как с таким чудищем работать?

Мозги на ручнике + лень = хреново.

PS: Лучше б ты в кулинарии практиковалась.


 
Marser ©   (2005-05-20 19:08) [20]


> Anatoly Podgoretsky ©   (19.05.05 20:18) [17]


> Marser ©   (19.05.05 18:51) [16]


> Разве что они расположены на разных панелях...

:-)


> begin...end ©   (20.05.05 08:14) [18]

Всё зависит от конкретного случая. Но я без крайней надобности components не перебирал бы.


 
Anatoly Podgoretsky ©   (2005-05-20 22:16) [21]

begin...end ©   (20.05.05 08:14) [18]
Я не меняю, что использовать зависит от задачи.



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

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

Наверх




Память: 0.51 MB
Время: 0.039 c
1-1116849067
Igor.ru
2005-05-23 15:51
2005.06.06
TFrame


14-1116337121
reticon
2005-05-17 17:38
2005.06.06
Знатокам HTML. Гиперссылка без href.


3-1114659400
Sergo
2005-04-28 07:36
2005.06.06
Confirm Delete


14-1116628398
Германн
2005-05-21 02:33
2005.06.06
"Обсуждение закрыто" - что это значит?


6-1111521808
DEMON XXX
2005-03-22 23:03
2005.06.06
Как вставить сохранённую HTML страницу в форму вDelphi?