![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Хотелось бы поиметь аналог класса TstringList для вещественных чисел, так как необходима ассоциативность массива, в идеале:
List.Values['a'] := 3.265482; Использовал TDictionary, там список переменных типа Variant, приводит к сильному тормозу проги, а считать приходится много. Поиск мне не помог, хотя как мне кажется вопрос тривиальный. Последний раз редактировалось bossyara, 08.10.2011 в 01:56. |
|
#2
|
||||
|
||||
|
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
Tfloat=class //создаем новый класс
i:integer;
end;
var
Form1: TForm1;
List:TstringList ;
float:Tfloat;//объявляем переменную этого класса
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
//инициалтзация объектов
List:=TstringList.Create ;
float:= Tfloat.Create;
float.i:=43;
list.AddObject('Элемент',float); //добавление строчки и привязанного к нему объект float
form1.Caption:=inttostr(Tfloat(list.Objects[list.IndexOf('Элемент')]).i);
end;
end.IndexOf это свойство возвращает индекс элемента по его названию, как раз то что тебе нужно.. |
|
#3
|
|||
|
|||
|
Супер!!! Моя ошибка что я заганял переменную типа, а не объект класса. Спасибо
|
|
#4
|
||||
|
||||
|
Как-то не кошерно в типа TObject хранить число.
|
|
#5
|
||||
|
||||
|
Цитата:
не, конечно можно и такой финт ушами сделать var i:integer; .................................................. .. MyList.AddObject('элемент',TObject(i)); |
|
#6
|
||||
|
||||
|
Цитата:
По смыслу напрашивается такой подход: Код:
type
TInteger = class
private
FValue: integer;
procedure SetValue(aValue: integer);
function GetValue: integer;
public
property Value: integer read GetValue write SetValue;
constructor Create(aValue: integer);
end; |
|
#7
|
||||
|
||||
|
Просто главное до автора смысл довести, что помимо строчек в TStringList можно хранить и объекты(хотя указатели на объекты лучше бы были).
А так да, полностью согласен с предыдущем постом! |
|
#8
|
|||
|
|||
|
Может быть Вы правы!!!, но во-первых, надо закидывать все-таки действительное число, а не целое. И обязательна асоциативность массива. В любом случае мне главное чтоб считало правильно и скорость была приемлимая, поскольку програма не в коммерческих, а в научных целях используется!!!
|
|
#10
|
|||
|
|||
|
А ассоциации к примеру ['p']=3.13456 ???
|
|
#11
|
||||
|
||||
|
Ну ведь указали только направления для размышления, полностью код за вас никто не напишет.
|
|
#12
|
|||
|
|||
|
Вот поэтому меня вполне устраивает вариант с списками. Спасибо!!!
Кстати, часто бывает, что рабочий холодильник используется как шкаф ![]() |