webForumDet fria alternativet

Panel

6 svar · 328 visningar · startad av Niclas Ohlsson

Niclas OhlssonMedlem sedan juli 200068 inlägg
#1

Hur gör man för att skapa nya "TPanel"
när man trycker på knappen?

Man ska kunna lägga upp hur många som helst!!

jtMedlem sedan juni 2000350 inlägg
#2

Detta borde funka.

var
APanel: TPanel;
i: integer;
begin
for i := 0 to 10 do
begin
APanel := TPanel.Create(self);
APanel.Parent := Self;
APanel.Top := i * APanel.Height;
APanel.Caption := IntToStr(i);

end;

Niclas OhlssonMedlem sedan juli 200068 inlägg
#3

Det funkar om man byter ut panel mot t.ex Button men Panel blir det bara fel med

WiNNeMedlem sedan maj 2000192 inlägg
#4

Du måste ha med "extctrls" i USES annars hittar den inte TPanel.

jt's grej funkar fint även om jag föredrar att komponenter har nån annan
än sig själv som parent. T.ex. formuläret (Form1) eller nån annan panel kanske.

------------------
winne.net

jtMedlem sedan juni 2000350 inlägg
#5

Nu var det tänkt att self skulle vara ett formulär. Vilket kanske inte riktigt framgår av koden.

Ofta använder man tex en procedure liknande denna.
procedure TForm1.Button1Click(Sender: TObject);
begin
...
end;

Och då hänvisar Self till Form1.(Eftersom Buttonclick är en metod till objektet form1).

Niclas OhlssonMedlem sedan juli 200068 inlägg
#6

Extctrls finns redan med men det funkar iallafall inte

WiNNeMedlem sedan maj 2000192 inlägg
#7

Helt rätt jt, om jag läst det lite noggrannare hade jag insett det.

Niclas: fattar inte hur man kan misslyckas. Plocka dit en vanlig knapp, dubbelklicka på den och klistra in koden som jt skrev innan.

Du ska tänka på att ta bort det översta "begin" som den skapar åt dig vid dubbelklicket och sen klistra in koden.

Om du trots detta inte får fram det så tala om mer noga vad Delphi säger är fel.

------------------
winne.net

221 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
218 ms — hämta tråd, inlägg och bilagor (db)