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

а нафига тебе такое, илонмаск?
...
Рейтинг: 0 / 0
24.10.2019, 20:19
    #39881233
rgreat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наследник на панели
Ghost Writerнаследоваться именно от TMemo, а не TPanel
чтобы не писать кучу геттеров и сеттеров или такое - MyMemo.Memo.Lines.Add
Взаимоисключаюище параграфы. (с)
...
Рейтинг: 0 / 0
24.10.2019, 20:30
    #39881238
Ghost Writer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наследник на панели
alekcvpTLabeledEditНе то. Там обычный наследник TCustomEdit, рядом с которым Label на одном уровне. Оба лежат на форме без "прокладок".
...
Рейтинг: 0 / 0
24.10.2019, 20:31
    #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
25.10.2019, 09:57
    #39881356
Док
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наследник на панели
alekcvpTLabeledEdit (или как оно там) можно посмотреть как реализован...
не знаю, как в дельфях, но в Лазаре он - кривой.

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

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

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

Код: pascal
1.
2.
MyMemo.Memo.Append('чтобы писать не так')
MyMemo.Append('а вот так')
...
Рейтинг: 0 / 0
25.10.2019, 11:24
    #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
25.10.2019, 11:28
    #39881426
Ghost Writer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наследник на панели
ёёёёё,

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

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

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

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

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

Ghost Writerёёёёё,

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

там кроме Lines еще полно нужных мне свойств и методов
...
Рейтинг: 0 / 0
25.10.2019, 12:05
    #39881455
Barmaley57
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наследник на панели
ёёёёё, а чем он хуже?
...
Рейтинг: 0 / 0
25.10.2019, 12:05
    #39881457
Barmaley57
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наследник на панели
Вынес хелпера в отдельный юнит. Подключаешь где надо....
...
Рейтинг: 0 / 0
25.10.2019, 12:06
    #39881459
Ghost Writer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наследник на панели
Василий 2Судя по названию, ожидал душераздирающую историю о мужской проституциия старался
...
Рейтинг: 0 / 0
26.10.2019, 15:46
    #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
26.10.2019, 21:06
    #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
26.10.2019, 21:07
    #39881955
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наследник на панели
Упс, забыл
Код: pascal
1.
2.
3.
4.
var M: TMemo;
begin
  M := TMyMemo.Create(AOwner);
  M.Parent := Form1;
...
Рейтинг: 0 / 0
27.10.2019, 00:10
    #39882001
Док
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наследник на панели
Ghost WriterДокне знаю, как в дельфях, но в Лазаре он - кривой.не замечал. а что не так с ним ?

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

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

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

И, что?
...
Рейтинг: 0 / 0
28.10.2019, 15:12
    #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
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Наследник на панели / 25 сообщений из 27, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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