@GoYo26: mój kod to był tylko przykład. Edit dynamicznie tworzyć możesz w momencie kiedy go potrzebujesz. A zwalniać kiedy już go nie potrzebujesz. Jeśli używasz Lazrusa to tak jak pisał poprzednik.
nie rozumiem dlaczego się tak oburzasz panie moderatorze - to są jak sam napisałeś " banalne podstawy " dlatego nie rozumiem czemu nie może być newbie.
Nie oburzam się. Tylko moderuje, także przeniosłem wątek tam gdzie od razu powinien być i usunąłem zbędny tag. Uwierz mi, to że ktoś napisze w tagach bzdety w stylu pomocy
, pilne
, newbie
, jestem_zajebisty
czy cokolwiek innego niż słowa szybko identyfikujące jeżyk oraz IDE, nie sprawi że wszyscy rzucą wszystko i mu pomogą. Słowa newbie
jest absolutnie zbędne, bo należy - póki istnieje taki dział - pisać w nim z pytaniami o podstawy. Niestety prośby, grożby, cokolwiek jak widać nie pomaga. Jak wspomniałem, na forum już jesteś jakiś czas, więc możesz - no właśnie - zastosować się, a nie oburzać się na zwórcenie uwagi przez moderatora.
Szanujmy czytających, dbając o takie niby pozorne detale jak sensowne tagi i umieszczanie od razu wątku gdzie trzeba. O możliwości "koszowania" należy przypominać, bo ludzie się często tutaj nie przejmują tylko wrzucają posty gdzie popadnie. A o kombinowaniu do bólu napisałem, bo widzę tendencje, że ludziom się nie chce pokombinowac chwilę, pierwsze "zacięcie" i jebs post tutaj, post tam.
Wiadomo, moderujemy. furious dodatkowo adminuje. Ale jakby wszyscy byli uprzejmi zapoznać się czasem z przyklejonymi tematami o zasadach, to było by super. Sformatowany kod w odpowiednich znacznikach, sensowne tagi, sensowny temat i pokazanie co już zrobił pytający by rozwiązać problem. Tego uwierz mi bardzo często brakuje. A czyż nie fajniej by się przeglądalo pytania i forum? Gdyby ludzie nie chcieli zachowywać się jak, nie wiem, jacyś bojownicy przeciwko systemowi i ogólnemu ładowi. Tylko stosowali się od początku do naszych zaleceń. Dodałem te public
, bo faktycznie tak poprawniej. Tylko o ile constuctor
może tam być, to wedle mnie dodatkowa procedura obsługi klawiszy, z logicznego punktu widzenia - niekoniecznie.
EDIT:
po usunięciu nawiasów to samo
po dodaniu @
Masz przykład sprawdzony żywcem na Lazarusie (ja używam 64 bitowego pod Windows). Jednak to bez większego znaczenia. Kompiluje się i działa ok. Skopiowałem cały kod Unita. Formatka ma oczywiście przypisane przez Inspektor Obiektów odpowiednie zdarzenia. Powinno dać Tobie przykład jak to rozwiązać.
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;
type
TEditField = class(TEdit)
public
procedure OnKeyPressed(Sender : TObject; var Key : Char);
constructor Create(AOwner : TComponent); override;
end;
{ TForm1 }
TForm1 = class(TForm)
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
procedure FormCreate(Sender: TObject);
private
public
EdtFid : TEditField; end;
var
Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
procedure TEditField.OnKeyPressed(Sender : TObject; var Key : Char);
begin
if Key = #13 then
begin
ShowMessage('Pisane z pod Lazarusa i nie potrzeba wizy do USA!');
Key := #0;
end;
end;
constructor TEditField.Create(AOwner : TComponent);
begin
inherited Create(AOwner);
OnKeyPress := @OnKeyPressed;
end;
procedure TForm1.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
if EdtFid <> nil then
begin
FreeAndNil(EdtFid);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
EdtFid := TEditField.Create(Self);
with EdtFid do
begin
Text := '';
Parent := Self;
end;
end;
end.