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

Вниз

Ошибка в TCombobox   Найти похожие ветки 

 
SergLight ©   (2003-12-22 11:32) [0]

Добрый день.
Перешел на Delphi 7 и столкнулся с неприятной ошибкой.
После добавления пустого элемента в Combobox, при его выборе возникает Access violation. Может кто сталкивался с такой проблемой?
Вот пример:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Contnrs;

type
TMyObject = class(TObject)
private
FName: String;
procedure SetName(const Value: String);
public
property Name : String read FName write SetName;
end;

TForm1 = class(TForm)
cbTest: TComboBox;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
MyList : TObjectList;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
i : Integer;
MyObj : TMyObject;
begin
MyList := TObjectList.Create;

cbTest.Items.Add("");

for i := 0 to 10 do
begin
MyObj := TMyObject.Create;
MyObj.Name := inttostr(i);
MyList.Add(MyObj);
cbTest.AddItem(MyObj.Name, MyObj);
end;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
MyList.Free;
end;

{ TMyObject }

procedure TMyObject.SetName(const Value: String);
begin
FName := Value;
end;

end.


 
Ega23 ©   (2003-12-22 11:35) [1]

А зачем в комбик пустые строки добавлять? Просто ради интереса спросил.
Добавляй строку из одного (двух, ..., N) пробелов.


 
BoxTer ©   (2003-12-22 11:36) [2]

Мне кажется в строчке MyObj.Name := inttostr(i); отсутствует так необходимая в этом месте какая-нибудь строчка MyObj.Name := "Cool" inttostr(i);
Низя обзывать компоненты именами, начинающимися с цифры ...


 
BoxTer ©   (2003-12-22 11:36) [3]

сорри MyObj.Name := "Cool"+inttostr(i);


 
SergLight ©   (2003-12-22 11:39) [4]


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

Что бы была возможность сделать пустой выбор.
Да у комбобокса стиль csDropDownList.


> Низя обзывать компоненты именами, начинающимися с цифры
> ...

Это не компонент а мой личный объект.


 
JibSkeart ©   (2003-12-22 11:41) [5]

ну а разница ?


 
REA ©   (2003-12-22 11:41) [6]

Это есть ошибка VCL/Microsoft. Придется добавлять строку "(Пустой элемент)" или "[Не выбрано]" вместо пустой строки.


 
Babay ©   (2003-12-22 11:42) [7]

тока что запихнул твой код в дельфу все работает.
Где возникает ошибка?


 
icWasya ©   (2003-12-22 11:42) [8]

>..при его выборе возникает Access violation..
а что делается при его выборе??
не пытаетесь ли достать cbTest.Objects[..]??


 
Sandman25 ©   (2003-12-22 11:49) [9]

При добавлении пустой строки добавления не происходит. Добавляйте строку из 1 пробела.


 
SergLight ©   (2003-12-22 11:53) [10]


> REA

Спасибо подейтвовало.


> icWasya

При его выборе ничего не делается

Спасибо всем, кто откликнулся.



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

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

Наверх




Память: 0.49 MB
Время: 0.037 c
14-25536
Ega23
2003-12-18 14:29
2004.01.09
Прогноз: Россия - Финляндия?


1-25425
ЮрийК
2003-12-22 18:29
2004.01.09
Селектирование слов в WebBrowser


9-25166
Ник М. Цов
2003-06-07 20:35
2004.01.09
Текстовые квесты: Второе пришествие


14-25578
SAG
2003-12-18 02:05
2004.01.09
Сборник


6-25487
gfew
2003-11-06 12:09
2004.01.09
Кодинг сокетов юзая winsock2