Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.12.18;
Скачать: [xml.tar.bz2];

Вниз

Как вставить Pointer(-1) в ComboBox1.Items.Objects?   Найти похожие ветки 

 
Lexer ©   (2005-11-18 14:15) [0]

procedure TForm1.FormShow(Sender: TObject);
begin
 ComboBox1.Items.AddObject("-2", Pointer(-2));
 ComboBox1.Items.AddObject("-1", Pointer(-1)); //вот здесь то на самом деле в объект ничего не вставилось
 ComboBox1.Items.AddObject("0", Pointer(0));
 ComboBox1.Items.AddObject("1", Pointer(1));
end;

procedure TForm1.cbChange(Sender: TObject);
begin
 Edit1.Text := IntToStr(Integer(ComboBox1.Items.Objects[cb.ItemIndex]));
end;


Откомпилировал в Delphi7.
При выборе в ComboBox значения "-1" - получаем ошибку List index out of bounds(1)
В Delphi4 такого не было, это глюк?
Подскажите как мне вставить в объект значение -1?


 
Leonid Troyanovsky ©   (2005-11-18 14:51) [1]


> Lexer ©   (18.11.05 14:15)  

> Подскажите как мне вставить в объект значение -1?


Вставлять-то оно вставляет, а вот получать придется так:

Value := ListBox1.Perform( LB_GETITEMDATA, idx, 0)]

--
Regards, LVT.


 
Lexer ©   (2005-11-18 15:04) [2]

idx - это индекс элмента? или нет? данные не возвращаются


 
Leonid Troyanovsky ©   (2005-11-18 15:12) [3]


> Lexer ©   (18.11.05 15:04) [2]
> idx - это индекс элмента? или нет? данные не возвращаются


Да, индекс элемента. ItemIndex. А чего возвращается? :(

Например, в моей D6 & 2k3 - ok.
Хотя, скорее всего, оное косяк Борланда, неохота, правда, искать.

--
Regards, LVT.


 
Leonid Troyanovsky ©   (2005-11-18 15:14) [4]


> Leonid Troyanovsky ©   (18.11.05 15:12) [3]

> Да, индекс элемента. ItemIndex. А чего возвращается? :(


А.. дошло.
Тебе нужен ComboBox1.Perform(CB_GETITEMDATA, idx,0)

--
Regards, LVT.


 
Lexer ©   (2005-11-18 15:22) [5]

Leonid Troyanovsky ©   (18.11.05 15:14) [4]

Я делал тоже самое, но аболютно нечего не возвращается, попробовал так:
procedure TForm1.FormShow(Sender: TObject);
var i: integer;
begin
for i:=-10 to 20 do
 ComboBox1.Items.AddObject(IntToStr(i), TObject(PChar(IntToStr(i))));
end;

procedure TForm1.cbChange(Sender: TObject);
begin
 Edit1.Text := String(ComboBox1.Items.Objects[ComboBox1.ItemIndex]);
end;

И о чудо!!!! -1 прексрано вставился, отобразился как и другие эл-ты.... но некторые объекты просто исчезли, например -9, 18, 15 их как и не было....
что за глюки, блин, это уже совсем не смешно...


 
Leonid Troyanovsky ©   (2005-11-18 15:30) [6]


> Lexer ©   (18.11.05 15:22) [5]

> Я делал тоже самое, но аболютно нечего не возвращается


А что значит "не возвращается"? Зависает, что ли?

Приведи испытанный код с CB_GETITEMDATA.
Обещаю его воспроизвести, по-крайней мере, на своей машине.

--
Regards, LVT.


 
Lexer ©   (2005-11-18 15:32) [7]

procedure TForm1.FormShow(Sender: TObject);
var i: integer;
begin
for i:=-10 to 20 do
ComboBox1.Items.AddObject(IntToStr(i), TObject(PChar(IntToStr(i))));
end;

procedure TForm1.cbChange(Sender: TObject);
begin
Edit1.Text := ComboBox1.Perform(CB_GETITEMDATA, ComboBox1.ItemIndex,0)
end;


 
MBo ©   (2005-11-18 15:39) [8]

Не оно?
http://codecentral.borland.com/Item.aspx?id=18872


 
Leonid Troyanovsky ©   (2005-11-18 15:41) [9]


> Lexer ©   (18.11.05 15:32) [7]


Издеваешься, да?
Во-первых, я просил уже испытанное, т.е. по_крайней мере компилируемое.
Во-вторых, какая связь Pointer(-1) vs TObject(PChar(IntToStr(i)))

--
Regards, LVT.


 
Lexer ©   (2005-11-18 15:50) [10]

я не издеваюсь, задача должна быть решена, независимо от того через како мето её решили, хоть PChar =)
MBo, Leonid Troyanovsky, спасибо за помощь, оказывается это давно известный глюк


 
Leonid Troyanovsky ©   (2005-11-18 15:58) [11]


> Lexer ©   (18.11.05 15:50) [10]
> я не издеваюсь, задача должна быть решена, независимо от
> того через како мето её решили, хоть PChar =)


Если ты уж решил использовать то место, на которое рассчитывал Борланд,
то должен был создать честный TObject, который и содержал бы
вожделенную -1.

--
Regards, LVT.


 
Lexer ©   (2005-11-18 16:11) [12]


Leonid Troyanovsky ©   (18.11.05 15:58)
Если ты уж решил использовать то место, на которое рассчитывал Борланд,
то должен был создать честный TObject, который и содержал бы
вожделенную -1.


Вот это то и надо!!! В четверке всё было ok, а в семерке при добавлнии TObject(-1) - объект пустой, даже не nil, его просто нет...


 
Leonid Troyanovsky ©   (2005-11-18 16:16) [13]


> Lexer ©   (18.11.05 16:11) [12]

> при добавлнии TObject(-1) - объект пустой, даже не nil,
> его просто нет...


Сам ты пустой.
Говорят же тебе, получить значение можно. См. выше.
Не проверишь, обижусь.

--
Regards, LVT.


 
Lexer ©   (2005-11-18 16:18) [14]

[8] MBo ©   (18.11.05 15:39)
Не оно?
http://codecentral.borland.com/Item.aspx?id=18872


Посмотрел, к сожалению не оно :(
Он фиксит то что "на некоторых ОС выбор пустой строки в TComboBox приводил к Access Violation".


 
Lexer ©   (2005-11-18 16:35) [15]

procedure TForm1.FormShow(Sender: TObject);
var i:integer;
begin
for i:=-10 to 20 do
ComboBox1.Items.AddObject(IntToStr(i), TObject(i));
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
Edit1.Text := IntToStr(ComboBox1.Perform(CB_GETITEMDATA, ComboBox1.ItemIndex, 0));
end;

полностью рабочий вариант, LVT спасиб =)


 
Leonid Troyanovsky ©   (2005-11-18 16:40) [16]


> Lexer ©   (18.11.05 16:35) [15]

> полностью рабочий вариант, LVT спасиб =)


Тотож :) На здоровье.

--
Regards, LVT.



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

Форум: "Основная";
Текущий архив: 2005.12.18;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.015 c
2-1133602150
kop
2005-12-03 12:29
2005.12.18
Свойство


14-1133209074
MRAk
2005-11-28 23:17
2005.12.18
Жордан гаус


4-1129552219
ПЛОВ
2005-10-17 16:30
2005.12.18
Скорости, напряжения, температуры


14-1132823910
ОноТебеНадо
2005-11-24 12:18
2005.12.18
Покупка программы


3-1130898365
antoxa2005
2005-11-02 05:26
2005.12.18
Подскажите, а можно ли изменять схему данных Access из программы





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский