Форум: "Основная";
Текущий архив: 2005.06.06;
Скачать: [xml.tar.bz2];
ВнизКак найти максимальное число ? Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.015 c