Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.04.2017, 20:59   #1
Ship_1
Форумчанин
 
Регистрация: 10.02.2014
Сообщений: 526
По умолчанию delete для строки "внутри" класса-потомка TObjectList: как осуществить?

Здравствуйте!
Возникла вот такая проблемка.
Делаю процедуру внутри класса на основе TObjectList. Работаю со строками. Нужно удалить часть строки. А классическое delete(str,index,count) воспринимается процедурой как delete для этого TObjectList. Как же сделать delete у строки в этих условиях?
Ship_1 вне форума Ответить с цитированием
Старый 08.04.2017, 21:11   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

System.Delete наверно.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 08.04.2017, 21:22   #3
Ship_1
Форумчанин
 
Регистрация: 10.02.2014
Сообщений: 526
По умолчанию

Да? Т.е. при обращении к функции юнита, если эта функция внутри кода перекрывается, можно к ней обращаться через название юнита? Интересно. Что-то я, видимо, забыл про такую возможность. Спасибо!
Ship_1 вне форума Ответить с цитированием
Старый 09.04.2017, 01:20   #4
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,867
По умолчанию

Цитата:
Сообщение от Ship_1 Посмотреть сообщение
А классическое delete(str,index,count) воспринимается процедурой как delete для этого TObjectList
Классическое delete неправильно воспринимается только в неграмотном коде.
Уж сколько раз твердили миру что оператор with нужно использовать только тогда, когда понимаешь правила.
northener вне форума Ответить с цитированием
Старый 09.04.2017, 06:43   #5
Filka
Форумчанин
 
Регистрация: 29.10.2015
Сообщений: 273
По умолчанию

При чём тут оператор with?
Код:
type
  TMyObjList = class(TObjectList)
  public
    procedure MyProc;
  end;

{ TMyList }

procedure TMyList.MyProc;
var
  S: string;
begin
  S := 'QWERTY';
  //Delete(S, 6, 1);      // Тут ошибка
  System.Delete(S, 6, 1); // Тут ошибки нет
  ShowMessage(S);
end;
Ship_1, если сделать что-то типа такого?
Код:
type
  TMyObjList = class(TObject)
  private
    FObjectList: TObjectList;
  public
    constructor Create;
    destructor Destroy; override;
    function Add(AObject: TObject): Integer;
    procedure Delete(Index: Integer);
    // и т. д.
  end;

{ TMyObjList }

function TMyObjList.Add(AObject: TObject): Integer;
begin
  FObjectList.Add(AObject);
end;

constructor TMyObjList.Create;
begin
  FObjectList := TObjectList.Create(True);
end;

procedure TMyObjList.Delete(Index: Integer);
begin
  FObjectList.Delete(Index);
end;

destructor TMyObjList.Destroy;
begin
  FObjectList.Free;
  inherited;
end;
То есть вместо создания потомка, сделать обёртку.

Последний раз редактировалось Filka; 09.04.2017 в 06:46.
Filka вне форума Ответить с цитированием
Старый 11.04.2017, 16:27   #6
Ship_1
Форумчанин
 
Регистрация: 10.02.2014
Сообщений: 526
По умолчанию

Filka, мысль интересная. Когда начнёт получаться более-менее осознанно с классами, подумаю про обёртки. Спасибо!
Ship_1 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Для заданной строки определить все входящие в неё символ. Например: строка "abccbbabbac" состоит из символов "a", "b" и "c" Sandakan01 Помощь студентам 1 24.02.2016 03:20
си++ - "совместимость" класса-родителя и его потомка vedro-compota Общие вопросы C/C++ 23 23.10.2012 21:44