Hej jag kan med grunderna i c++ och undrar om det går att skapa knappar på formuläret i koden? Ja, jag är nästan helt säker på att det är möjligt. Jag har lyckats skapa nya objekt men dom syns inte på skärmen 1.Svårt att svar på rak arm och utan kompilator, men jag kan tänka mig att det är fel med <b>"new TLabel(Form1->Owner);"</b>skapa knappar och imagebox mm
jag använder borland builder c++ 6.0.
Exempel jag har en klass till varje klass vilj jag ha en image box. Jag vet inte hur många objekt till klasen jag ska ha. Så i konstruktorn i klassen borde det finnas någon kod som skapar en image box.
Är detta möjligt?Sv: skapa knappar och imagebox mm
Nu kommer inte jag ihåg exakt hur borlands klassnamn och så fungerar, men det är i princip bara att ha en CImageBox (eller vad det nu kan heta) i klassen.
typ
class DinKlass{
public:
//...
private:
CImageBox myimgbox;
}
Hur du sen gör för att rita ut det på formuläret är jag också osäker på, men jag gissar att du antingen
-bara bestämmer position, och sen fixar det sig
eller
-måste bestämma parent för din image (formen det ska sitta på).
eller
-lägga till din kontroll till nån slags "container" i formen.
Ett sista alternativ (som jag inte riktigt kan tro på) är att varje kontroll måste vara medlem av klassen, men det kräver ju ganska statiska program.Sv: skapa knappar och imagebox mm
Någon som har en ide på varför det inte funkar ?
Kompilatorn gokänner koden så det är inte felet utan felet är att dom syns inte på skärmen
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
TLabel * Label[10];
int i,a=-1;
for (i=0;i<=10;i++)
{
a++;
Label[i] = new TLabel(Form1->Owner);
Label[i]
Label[i]->Top=32;
Label[i]->Left=24+a*104;
Label[i]->Visible=true;
Label[i]->Show();
}
}Sv: skapa knappar och imagebox mm
Jag skulle välja att skriva om det som <b>"new TLabel(Form1);"</b>
2. Loopen hade du med fördel kunnat skriva om som
for (int i=0;i<=10;i++)
{
Label[i] = new TLabel(Form1->Owner);
Label[i]->Top=32;
Label[i]->Left=24+(i-1)*104;
Label[i]->Visible=true;
Label[i]->Show();
}
3. Du kanske skapar en minnesläcka (osäker på om borland själv tar bort child-kontroller). När du deklarerar *Label inuti konstruktorn. Kanske hade varit bättre att ha dem som medlemsvariabler.
4. Kolla bredd och höjd på labelarna.
Det hade nog varit bättre att börja med en enda kontroll, och försöka få den rätt.