Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Mehrzeiliges EditFeld (https://www.delphipraxis.net/92292-mehrzeiliges-editfeld.html)

Tommy1988 17. Mai 2007 15:06


Mehrzeiliges EditFeld
 
Guten Tag,

ich habe eine Frage;
wie kann ich ein Editfeld Mehrzeilig machen?

Also das ist so, klicke auf einen Button dann wird der Inhat versch. Variablen
ins Edit geschrieben. Sollte aber Mehzeilig sein.

Warum ich kein Memo nehme?

Das Memo hat nicht die Designeinstellungen wie das Edit das ich verwende.

CCRDude 17. Mai 2007 15:10

Re: Mehrzeiliges EditFeld
 
Imho gibt es auf WinAPI-Ebene da ein Flag, das man für Mehrzeiligkeit setzen kann. Versuche mal, ein ES_MULTILINE hinzuzufügen (siehe auch GetWindowLong/SetWindowLong bzw deren Nachfolger).

Tommy1988 17. Mai 2007 15:29

Re: Mehrzeiliges EditFeld
 
"ES_MULTILINE"

Leichter gesagt als getahn,

- wie
und
- wo hinzufügen?

Keldorn 17. Mai 2007 15:31

Re: Mehrzeiliges EditFeld
 
Hallo du kannst createparams überschrieben, müßtest dazu aber dir eine eigene Kompo erstellen (Denke ich zumindestens). Das Spinedit z.B. macht das auch.

Delphi-Quellcode:
procedure TEdit???.CreateParams(var Params:TCreateParams);
begin
  inherited createParams(Params);
  Params.Style:=params.Style or ES_MULTILINE;
end;
Mfg Frank

Tommy1988 17. Mai 2007 15:34

Re: Mehrzeiliges EditFeld
 
Geht nicht

procedure TEdit2.CreateParams(var Params:TCreateParams);
begin
inherited CreateParams((Params);
Params.Style := params.Style or ES_MULTILINE;
end;

Wieso TEdit2 da oben kommt da nicht Tform oder sowas hin?

Keldorn 17. Mai 2007 15:43

Re: Mehrzeiliges EditFeld
 
doch doch, geht schon, du mußt es dir aber als eigene komponente bauen

Delphi-Quellcode:
type
  TEditMultiLine = class(TEdit)
  private
  protected
    procedure CreateParams(var Params:TCreateParams);override;
  public
  published
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Samples', [TEditMultiLine]);
end;

{ TEditMultiLine }

procedure TEditMultiLine.CreateParams(var Params: TCreateParams);
begin
  inherited createParams(Params);
  Params.Style:=params.Style or ES_MULTILINE;
end;
//create auch noch überschreiben und autosize auf false stellen, sonst machst keinen Sinn
edit: und welche Eigenschaften fehlen Dir beim Memo?

turboPASCAL 17. Mai 2007 15:46

Re: Mehrzeiliges EditFeld
 
Ein mehrzeiliges Editfeld ist ein Memo in der Delphi - VLC. Ein Umbauen eines Edits währe
unnötiger Zeitaufwand.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:03 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz