webForumDet fria alternativet

Panel

Programmering

6 svar · 330 visningar · startad av Niclas Ohlsson

Medlem sedan juli 200068 inlägg
Frågan#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!!

Medlem 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;

Medlem sedan juli 200068 inlägg
#3

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

Medlem 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

Medlem 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).

Medlem sedan juli 200068 inlägg
#6

Extctrls finns redan med men det funkar iallafall inte

Medlem 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

254 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
116 ms — ändringar (db)