Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.013 c
6-1111530471
ALex B.
2005-03-23 01:27
2005.06.06
NetUseAdd


1-1116498890
MegaVolt
2005-05-19 14:34
2005.06.06
Перетаскивание с моей проги в чужое приложение.


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


1-1116912661
tomas
2005-05-24 09:31
2005.06.06
Использование TcxDBLookupComboBox (Express DBEditors 4)


14-1116241435
ANB
2005-05-16 15:03
2005.06.06
Хочу опять в СССР





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский