powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Наследник на панели
25 сообщений из 27, страница 1 из 2
Наследник на панели
    #39881206
Ghost Writer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хочу написать наследника TMemo, но чтобы он лежал на TPanel. То есть, наследоваться именно от TMemo, а не TPanel, чтобы не писать кучу геттеров и сеттеров или такое - MyMemo.Memo.Lines.Add...
Так вообще можно делать ?
...
Рейтинг: 0 / 0
Наследник на панели
    #39881220
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ghost WriterТак вообще можно делать ?
TLabeledEdit (или как оно там) можно посмотреть как реализован...
...
Рейтинг: 0 / 0
Наследник на панели
    #39881224
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ghost Writer,

а нафига тебе такое, илонмаск?
...
Рейтинг: 0 / 0
Наследник на панели
    #39881233
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ghost Writerнаследоваться именно от TMemo, а не TPanel
чтобы не писать кучу геттеров и сеттеров или такое - MyMemo.Memo.Lines.Add
Взаимоисключаюище параграфы. (с)
...
Рейтинг: 0 / 0
Наследник на панели
    #39881238
Ghost Writer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvpTLabeledEditНе то. Там обычный наследник TCustomEdit, рядом с которым Label на одном уровне. Оба лежат на форме без "прокладок".
...
Рейтинг: 0 / 0
Наследник на панели
    #39881239
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя можно извращаться в этом виде:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
unit Unit3;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls;

type

  TMemo = class(Vcl.StdCtrls.TMemo)
  private
    BackPanel : TPanel;
  public
    procedure Encapsule;
  end;

  TForm3 = class(TForm)
    Memo1: TMemo;
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form3: TForm3;

implementation

{$R *.dfm}

procedure TForm3.FormShow(Sender: TObject);
begin
  Memo1.Encapsule;
end;

{ TMemo }

procedure TMemo.Encapsule;
begin
  BackPanel:=TPanel.Create(Parent);
  BackPanel.Left:=Left;
  BackPanel.Top:=Top;
  BackPanel.Width:=Width;
  BackPanel.Height:=Height;
  BackPanel.Align:=Align;
  BackPanel.AlignWithMargins:=AlignWithMargins;
  BackPanel.Margins:=Margins;
  BackPanel.Color:=clRed;

  BackPanel.Parent:=Parent;

  Parent:=BackPanel;
  AlignWithMargins:=True;
  Align:=alClient;
end;

end.
...
Рейтинг: 0 / 0
Наследник на панели
    #39881356
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvpTLabeledEdit (или как оно там) можно посмотреть как реализован...
не знаю, как в дельфях, но в Лазаре он - кривой.

ёёёёёа нафига тебе такое, илонмаск?
+1
...
Рейтинг: 0 / 0
Наследник на панели
    #39881409
Ghost Writer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Докне знаю, как в дельфях, но в Лазаре он - кривой.не замечал. а что не так с ним ?
Докёёёёёа нафига тебе такое, илонмаск?
+1зачем размещать один контрол поверх другого или что именно не понятно ?
...
Рейтинг: 0 / 0
Наследник на панели
    #39881412
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ghost WriterДокне знаю, как в дельфях, но в Лазаре он - кривой.не замечал. а что не так с ним ?
Докпропущено...

+1зачем размещать один контрол поверх другого или что именно не понятно ?
Да "зачем размещать поверх" - оно как бы понятно. Непонятно, зачем так изгаляться: 22002038
...
Рейтинг: 0 / 0
Наследник на панели
    #39881413
Ghost Writer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё,

я же вроде объяснил вкратце.

Код: pascal
1.
2.
MyMemo.Memo.Append('чтобы писать не так')
MyMemo.Append('а вот так')
...
Рейтинг: 0 / 0
Наследник на панели
    #39881422
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ghost Writer,

ну так добавь одну проперть к панели

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
TMyMemo = class (TCustomPanel)
private
  fInnerMemo : TMemo
public
    property Lines: TStrings read GetLines;

implementation


function TMyMemo.GetLines: TStrings;
begin
  Result := fInnerMemo.Lines;
end;
...
Рейтинг: 0 / 0
Наследник на панели
    #39881426
Ghost Writer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё,

Ghost Writerчтобы не писать кучу геттеров и сеттеров

там кроме Lines еще полно нужных мне свойств и методов
...
Рейтинг: 0 / 0
Наследник на панели
    #39881440
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Судя по названию, ожидал душераздирающую историю о мужской проституции среди молодежи, а тут какая-то ересь.

Навскидку могу предложить в потомке мемо создавать панель и подкладывать ее "под себя".
...
Рейтинг: 0 / 0
Наследник на панели
    #39881443
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ghost Writerёёёёё,

Ghost Writerчтобы не писать кучу геттеров и сеттеров

там кроме Lines еще полно нужных мне свойств и методов
Надо сильнее хотеть, они сами собой и появятся.
- Бог всемогущ, и если он не приходит людям на помощь, то лишь потому, что они не с достаточной верой просят его об этом. Ибо, истинно говорю вам, сказано в писании, если вы будете иметь веру с горчичное зерно и скажете горе сей: "Перейди отсюда туда", - и она перейдет; и ничего не будет невозможного для вас...
При этих словах Бен-Ариэль, сидевший на первой скамье, неожиданно вышел на середину церкви, крепко сжал молитвенник, поднял глаза к небу и воскликнул:
- Верю, господи, что ты совершишь по вере моей! Подними меня над землей!
И вдруг все увидели, как тело юноши заколебалось и приподнялось так, что ступни ног оказались футах в двух от пола. Он то повисал в воздухе, то медленно опускался...
...
Рейтинг: 0 / 0
Наследник на панели
    #39881452
Barmaley57
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А class helper не катит?
...
Рейтинг: 0 / 0
Наследник на панели
    #39881454
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Barmaley57А class helper не катит?
Ну чем он лучше.

Ghost Writerёёёёё,

Ghost Writerчтобы не писать кучу геттеров и сеттеров

там кроме Lines еще полно нужных мне свойств и методов
...
Рейтинг: 0 / 0
Наследник на панели
    #39881455
Barmaley57
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё, а чем он хуже?
...
Рейтинг: 0 / 0
Наследник на панели
    #39881457
Barmaley57
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вынес хелпера в отдельный юнит. Подключаешь где надо....
...
Рейтинг: 0 / 0
Наследник на панели
    #39881459
Ghost Writer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Василий 2Судя по названию, ожидал душераздирающую историю о мужской проституциия старался
...
Рейтинг: 0 / 0
Наследник на панели
    #39881880
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ghost WriteralekcvpTLabeledEditНе то. Там обычный наследник TCustomEdit, рядом с которым Label на одном уровне. Оба лежат на форме без "прокладок".
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
constructor TMyMemo.Create(AOwner: TComponent);
begin
  FPanel := TPanel.Create(AOwner);
  inherited Create(FPanel);
  inherited SetParent(FParent);
end;

function TMyMemo.GetParent: TWinControl;
begin
  Result := FPanel.Parent;
end;

procedure TMyMemo.SetParent(AVal: TWinControl);
begin
  FPanel.Parent := AVal;
end;


и не забыть написать правильный деструктор
...
Рейтинг: 0 / 0
Наследник на панели
    #39881953
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_
Код: pascal
1.
2.
3.
4.
5.
6.
constructor TMyMemo.Create(AOwner: TComponent);
begin
  FPanel := TPanel.Create(AOwner);
  inherited Create(FPanel);
  inherited SetParent(FParent);
end;



Код: pascal
1.
2.
M := TMyMemo.Create(AOwner);
M.Parent := Form1;
...
Рейтинг: 0 / 0
Наследник на панели
    #39881955
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Упс, забыл
Код: pascal
1.
2.
3.
4.
var M: TMemo;
begin
  M := TMyMemo.Create(AOwner);
  M.Parent := Form1;
...
Рейтинг: 0 / 0
Наследник на панели
    #39882001
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ghost WriterДокне знаю, как в дельфях, но в Лазаре он - кривой.не замечал. а что не так с ним ?

Попробуй привязать (заанкорить) его к краям формы и поиграть с ее размерами
https://forum.lazarus.freepascal.org/index.php/topic,45020.0.html

Докпропущено...

+1зачем размещать один контрол поверх другого или что именно не понятно ?
непонятно, зачем писать наследника. Просто положить мемо на панель никак?
...
Рейтинг: 0 / 0
Наследник на панели
    #39882331
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaBr,

И, что?
...
Рейтинг: 0 / 0
Наследник на панели
    #39882333
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Конечно же
_Vasilisk_
Код: pascal
1.
2.
3.
4.
5.
6.
constructor TMyMemo.Create(AOwner: TComponent);
begin
  FPanel := TPanel.Create(AOwner);
  inherited Create(FPanel);
  inherited SetParent(FPanel);
end
...
Рейтинг: 0 / 0
25 сообщений из 27, страница 1 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Наследник на панели
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]