Wyrownanie do prawej

0

Interesuje mnie opcja wyrownania do prawej tekstu w komponentach Edit oraz LabeledEdit wiem ze na google mozna troche tego typu rozwiazan znaleŹĆ jednak sa one jakies zamieszane jesli ktos ma chwilke to jestem zainteresowany dzialajacym uproszczonym makymalnie kodem.

0

Może jest prostsze, ale to wydaje mi się krotkie oraz zgrabne
http://www.delphi3000.com/articles/article_2940.asp?SK= :)

0

Wysypuje mi sie Project na Application.CreateForm(TForm1, Form1); czyli cos mu w głównym programie nie przechodzi

wproadzilem go w ten sposob:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;

private
    FAlignment: TAlignment;
procedure SetAlignment(const Value: TAlignment);
protected
procedure CreateParams(var Params: TCreateParams); override;
public
published
constructor Create(AOwner: TComponent); override;
property Alignment: TAlignment
read FAlignment
write SetAlignment
default taLeftJustify;
end;

procedure Register;

implementation

{R uEditEx.dcr}

procedure Register;
begin
  RegisterComponents('gate(n)etwork', [TEdit]);
end;

{ TEditEx }

constructor TForm1.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FAlignment := taLeftJustify;
end;

procedure TForm1.CreateParams(var Params: TCreateParams);
const
Alignments: array[TAlignment] of Cardinal =
(ES_LEFT, ES_RIGHT, ES_CENTER);
begin
inherited CreateParams(Params);
Params.Style := Params.Style or {ES_MULTILINE or} Alignments[FAlignment];
end;

procedure TForm1.SetAlignment(const Value: TAlignment);
begin
if FAlignment <> Value then
begin
FAlignment := Value;
RecreateWnd;
end;
end;

end.
0

adydan: ale co Ty ćwiczysz? Przecież wyraźnie widać że to kod modułu, który należy zainstalowac sobie
jako komponent. Lub jeżeli się chce albo instalacja komponentów jest niemożliwa w IDE (np Turbo Delphi) to
użyć go dynamicznie dodajć do sekcji uses ten moduł, a później wywołująć konstruktor tego komponentu, a
nie bezmyslnie kopiować i wklejać kod. Jak nie umiesz takich podstaw to poczytaj kompendium koniecznie!!!

0

Mnie to wygladalo na kod :) i troche go zmodyfikowalem wywalczylem i sie sypal :)
Stworzylem wlasna procedure ktora dopelnia spacjami lewą strone sprawdza dlugosc edita ilosc znakow przelicza piksele i wstawia odpowiednia ilosc spacji. :)
Jak na razie nie znalazłem w niej błędów działa znakomicie.

Tworzeniem komponentow sie jeszcze nie bawilem ale bede musial no i zaczac korzystac z INDY.

0
olesio napisał(a)

instalacja komponentów jest niemożliwa w IDE (np Turbo Delphi)

No nie do końca. Niemożliwa jest tylko w wersji Explorer, w wersji Prof. jest jak najbardziej możliwa.

0

:|

adydan napisał(a)

Stworzylem wlasna procedure ktora dopelnia spacjami lewą strone sprawdza dlugosc edita ilosc znakow przelicza piksele i wstawia odpowiednia ilosc spacji.

straszne rozwiazanie. ale jesli Ci wystarcza...

0

Register wstaw na koniec kodu.

// kod


procedure Register;
begin
  RegisterComponents('gate(n)etwork', [TEdit]);
end;

end.

1 użytkowników online, w tym zalogowanych: 0, gości: 1