![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Pointe To PChar? [D5, WinXP]
Freezer © (2002-06-18 12:44:00)// Форма родитель TxpBaseForm
...
procedure LinksBarItemClick(Sender: TObject; Item: TdxSideBarItem);
function xpBaseGetExtendedData: Pointer; virtual;
...
function TxpBaseForm.xpBaseGetExtendedData: Pointer;
begin
Result := nil;
end;
procedure TxpBaseForm.LinksBarItemClick(Sender: TObject; Item: TdxSideBarItem);
var
Data: String;
begin
...
// !!! показывается обрубок от строки почему-то?
ShowMessage(PChar(xpBaseGetExtendedData));
// showmessage написал в целях отладки ...
xpCallLink(Item.Tag, Data, xpBaseGetExtendedData);
end;
// Форма потомок TxpBaseForm
...
function xpBaseGetExtendedData: Pointer; override;
...
function ThcaPointForm.xpBaseGetExtendedData: Pointer;
begin
Result := inherited xpBaseGetExtendedData;
Result := PChar(dsPoint.FieldByName("POINT_ACCOUNTNUM").AsString);
end;
...
Игорь Шевченко (2002-06-18 13:04:00) [1]Прошу прощения, просмотрел.
Result := PChar(dsPoint.FieldByName("POINT_ACCOUNTNUM").AsString);
Работать не будет, так как значение функции TField.getAsString указывает на данные в стеке в данном случае (IMHO)
Игорь Шевченко (2002-06-18 12:48:00) [2]
> function ThcaPointForm.xpBaseGetExtendedData: Pointer;
> begin
> Result := inherited xpBaseGetExtendedData;
> Result := PChar(dsPoint.FieldByName("POINT_ACCOUNTNUM").AsString);
> end;
Первое присваивание на всякий случай ? :-)))
И в SHowMessage PChar надо убрать
А вообще-то мало информации.