Hur gör man för att skapa flera komponenter genom att trycka på en knapp!
I Borland C++Builder 3
Jag vill skapa en label och en edit-ruta varje gång man trycker på en knapp i programmet
10 svar · 350 visningar · startad av Niclas Ohlsson
Hur gör man för att skapa flera komponenter genom att trycka på en knapp!
I Borland C++Builder 3
Jag vill skapa en label och en edit-ruta varje gång man trycker på en knapp i programmet
Om du vill skapa en textruta använder du klassen TEdit. Skapa klassen på heapen och ange dess egenskaper.
Exempel: (Koden måste placeras i en funktion tillhörande form-klassen)
TEdit *e = new TEdit(this); // this är ägaren, när ägaren frigörs så frigörs även e
e->Parent = this;
e->Visible = true;
Om den inte syns får du ändra Left, Top, Width och Height också.
Men går det att skapa flear stycken då ., för när jag trycker på knappen så vet jag inte hur många rutor som skall skapas,. det bestäms av en variabel
Kör koden flera gånger.
Vill du kunna komma åt dem efteråt får du lägga till dem i en lista (t.ex. TList eller std::vector).
OK tack det funkar.,.,
Ett till fråga: Hur tar man bort komponenten utan att behöva
stänga av programmet???
Man måste alltid ta bort det man allokerat med "new" genom destruktorn (delete), annars tenderar minnet ta slut förr eller senare. S.k minnesläcka ;)
Läste nånstans på nåt annat forum för en tid sen hur folk som kallade sig för programmerare ihärdigt påstod att operativet löste sånt självt... en tämligen oseriös inställning.
Kan man inte bygga in någon s.k. garbage collector till sina applikationer? Det är ju så lätt att glömma bort att använda delete... ;)
Men det finns väl antagligen ingen chans att leta reda på objekt som ligger på heapen på något finurligt sätt. :l
Kan man inte bygga in någon s.k. garbage collector till sina applikationer?
Gissningsvis lär man väl förlora i prestanda då, precis som man gör i språk med garbage collector.
SPiN->
Tja... problemet är ju när man nästlar objekten ;)
En garbagecollector vore inte dumt, men precis som i Java så suger det resurser.
Å andra sidan är det endast en vanefråga och gör man det enkelt för sig genom designen ska det inte vara svårt att snurra upp spiralen baklänges. :)
Ja, det är sant - men det är ändå en rätt fräck funktion tycker jag. När ett objekt inte används längre så frigörs det minne - och att kolla upp ett objekt tar väl sin tid också. Använder man delete där det ska användas ( dvs. när man inte använder sina objekt mer ) så är det logiskt att det går snabbare. :)
PeW> Word. :)