Главная страница
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.015 c
4-25670
igornov
2003-10-15 15:31
2004.01.09
Как определить момент когда пользователь сделал Log off?


4-25653
Ламье_ в_ винапи
2003-11-06 15:46
2004.01.09
Копирование файла.


1-25415
Byte
2003-12-24 14:39
2004.01.09
Как обратиться к


1-25442
vasyaVN
2003-12-23 14:33
2004.01.09
Можно ли вообще избежать в TCustomControl отрисовки?


6-25474
X-Disa
2003-11-08 09:27
2004.01.09
Сокеты