Jak po naciśnieciu przycisku zrobic nową zakładkę na PageControl?
Var T:TTabSheet;
Begin
T:=TTabSheet.Create(Nil);
T.PageControl:=PageControl1;
End;
Ja tam wole tak...
with TTabSheet.Create(Self) do
begin
PageControl := PageControl1;
Caption := 'Ble Ble';
end;
:-) ;-)
a jak zrobić żeby na tej zakładce był komponent Tmemo
To się zapoytaj o wszystko naraz a nie osobno.
With TMemo.Create(Self) Do
Begin
Parent:=TabSheet;
Visible:=True;
End;
postanowilem przykleic sie do tego tematu... tworze dynamicznie przycisk
mam zdefiniowana procedure
[code] published
procedure Click(Sender: TObject);[/code]
jak dodac do tego przycisku dzialanie OnClick aby wykonywal ta procedure..
wszystkie wlasciwosci zakladki prosperities Inspektora Obiektow latwo ustawic
a jak zrobic z wlasciwoscimi zakladki Events
przycisk tworze w petli tak
[code]
newButton:= TButton.Create(Self);
with newButton do
begin
newbutton.Parent :=FormKontrahenciAll;
newButton.Visible := True;
newButton.Left := 624;
newButton.Top := 75 +(i*15);
newButton.Width := 25;
newButton.Height := 14;
newButton.Caption := 'x';
newButton.OnClick = Click; // chcialo by sie by to tu zadzialalo niestety
end;
[/code]
przy kompilowaniu tego komunikat
[Error] KontrahenciAllFrm.pas(159): Not enough actual parameters
klopot jest jedynie z ostatnia linijka bo kiedy ja wloze w komentarz to ladnie sie kompiluje i wyswietla kilka przyciskow..
jak przypisac procedure Click przyciskowi?
nikt nie moze mi pomoc :-( to dla mnie bardzo wazne.. komu sie uda ten jest wielki ;-)
Hej!!
Zdarzenie OnCLick jest typu TNotifyEvent, wiec procedura Click musi spełniać też te warunki. Deklaracja procedury Click:
Procedure Click(Sender:TObject);
ale wlasnie tak mam zadeklarowana procedure.. chyba ze powinna wygladac inaczej (kilka postow wyzej)
zeby nie bylo ze nie szukalem w helpie Delphi znalazlem temat
Adding a TMenuItem to a Popup menu at runtime example
niestety tez nie dziala..
ja potrzebuej chyba dokladne wyjasnienie a nie wskazowki ;)
Po With nie muszisz już pisać: "newButton."
Natomiast ta procedura musi być w klasie TForm tzn. że jedna z jej deklaracji powinna wyglądać tak:
Procedure TForm1.Click(Sender:TObject);
zmienilem i jest tak jak piszesz ale taj jedna linijka w kodzie jest dalej bledna
nie chcialem tego robic ale oto caly kod programu
[code]unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
testButton: TButton;
procedure FormCreate(Sender: TObject);
procedure Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R .dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
i: Integer;
newButton: TButton;
begin
for i:=1 to 3 do
begin
newButton:= TButton.Create(Self);
with newButton do
begin
Parent :=Form1;
Visible := True;
Left := 250;
Top := 75 +(i15);
Width := 45;
Height := 14;
Caption := IntToStr(i);
OnClick = Click; //co tu zmienic?
end;
end;
end;
procedure TForm1.Click(Sender: TObject);
var
P: Integer;
begin
P := (Sender as TButton).Top;
ShowMessage(IntToStr(P));
end;
end.[/code]
procedura click dziala i wyswietla od gory wysokosc przycisku po odkomentowaniu linijki OnClick= ... program wyglada tak z wywolana procedura z przycisku testButton ale on nie byl tworzony dynamicznie
moze teraz :)
[glowa] O w morde!!
Ty nie masz tam znaków "podstaw" tylko "równa się"!!
Masz tak OnClick=Click;
a ma być OnClick:=Click;
Rozmawiasz ze ślepym gościem. [glowa]
kiedy jest :=
[Warning] Unit1.pas(13): Method 'Click' hides virtual method of base type 'TControl'
[Error] Unit1.pas(44): Incompatible types: 'Parameter lists differ'
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
i ten znak rowna sie wzialem z delphi help o tworzeniu popupmenu dynmaicznego
bledy gdy samo =
[Warning] Unit1.pas(13): Method 'Click' hides virtual method of base type 'TControl'
[Error] Unit1.pas(44): Not enough actual parameters
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
Zmień nazwę tej procedurki na np. DButtonClick
Szymek jestes wielki :)
teraz wszystko dziala jak powinno [hurra]
po zmianie nazwy procedury i jednak mialo byc :=
OnClick := DButtonClick;
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.