Форум: "Основная";
Текущий архив: 2004.01.09;
Скачать: [xml.tar.bz2];
ВнизОшибка в 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.011 c