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.
Może jest prostsze, ale to wydaje mi się krotkie oraz zgrabne
http://www.delphi3000.com/articles/article_2940.asp?SK= :)
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.
i ode mnie cosik:
http://delphi.about.com/od/vclwriteenhance/l/aa120603a.htm
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!!!
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.
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.
:|
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...
Register wstaw na koniec kodu.
// kod
procedure Register;
begin
RegisterComponents('gate(n)etwork', [TEdit]);
end;
end.