hi,
ich habe folgenden quellt text in c++:
AnsiString slNewLabelNamePrefix = "NewLabel";
// Ggf. zuvor erzeugte Labels entfernen:
for(int ilCmpNo = 0; ilCmpNo < ComponentCount; ilCmpNo++)
{
if(Components[ilCmpNo]->Name.Pos(slNewLabelNamePrefix))
{
delete Components[ilCmpNo];
ilCmpNo--;
}
}
// Neue Labels erzeugen:
TLabel* pCmpTemp;
int ilCmpCount=editCmpCount->Text.ToIntDef(0);
for(int i=0;i<ilCmpCount;i++)
{
pCmpTemp=new TLabel(this);
pCmpTemp->Parent=this;
pCmpTemp->Caption=AnsiString("Neues Label #")+AnsiString(i+1);
pCmpTemp->Name=slNewLabelNamePrefix+AnsiString(i);
pCmpTemp->Top=i*20+45;
pCmpTemp->Left=20;
}
er erzeugt so viele Label's wie im edit drin stehen, ich brauch diese möglichkeit in delphi, also hab ich versucht den quelltext um zuschreiben:
procedure TForm1.Button1Click(Sender: TObject);
var slNewLabelNamePrefix:String;
ilCmpNo,ilCmpCount,i:Integer;
pCmpTemp: TLabel;
begin
slNewLabelNamePrefix := 'NewLabel';
// Ggf. zuvor erzeugte Labels entfernen:
for ilCmpNo:= 0 to ComponentCount-1 do
begin
if(Pos(Components[ilCmpNo].Name,slNewLabelNamePrefix))<>0 then
begin
Components[ilCmpNo].free;
end;
end;
// Neue Labels erzeugen:
ilCmpCount:= StrToInt(Edit1.Text);
for i:=1 to ilCmpCount-1 do
begin
pCmpTemp:= TLabel.Create(Self);
pCmpTemp.Parent:=Self;
pCmpTemp.Name:=slNewLabelNamePrefix+String(i);
pCmpTemp.Caption:=String('Neues Label #')+String(i+1);
pCmpTemp.Top:=i*20+45;
pCmpTemp.Left:=20;
end;
end;
er sollte eigentlich gehen, macht er aber net ich bekomme immer eine zugriffs verletzung. Kann mir jemand helfen?
MfG Stephan
ich habe folgenden quellt text in c++:
AnsiString slNewLabelNamePrefix = "NewLabel";
// Ggf. zuvor erzeugte Labels entfernen:
for(int ilCmpNo = 0; ilCmpNo < ComponentCount; ilCmpNo++)
{
if(Components[ilCmpNo]->Name.Pos(slNewLabelNamePrefix))
{
delete Components[ilCmpNo];
ilCmpNo--;
}
}
// Neue Labels erzeugen:
TLabel* pCmpTemp;
int ilCmpCount=editCmpCount->Text.ToIntDef(0);
for(int i=0;i<ilCmpCount;i++)
{
pCmpTemp=new TLabel(this);
pCmpTemp->Parent=this;
pCmpTemp->Caption=AnsiString("Neues Label #")+AnsiString(i+1);
pCmpTemp->Name=slNewLabelNamePrefix+AnsiString(i);
pCmpTemp->Top=i*20+45;
pCmpTemp->Left=20;
}
er erzeugt so viele Label's wie im edit drin stehen, ich brauch diese möglichkeit in delphi, also hab ich versucht den quelltext um zuschreiben:
procedure TForm1.Button1Click(Sender: TObject);
var slNewLabelNamePrefix:String;
ilCmpNo,ilCmpCount,i:Integer;
pCmpTemp: TLabel;
begin
slNewLabelNamePrefix := 'NewLabel';
// Ggf. zuvor erzeugte Labels entfernen:
for ilCmpNo:= 0 to ComponentCount-1 do
begin
if(Pos(Components[ilCmpNo].Name,slNewLabelNamePrefix))<>0 then
begin
Components[ilCmpNo].free;
end;
end;
// Neue Labels erzeugen:
ilCmpCount:= StrToInt(Edit1.Text);
for i:=1 to ilCmpCount-1 do
begin
pCmpTemp:= TLabel.Create(Self);
pCmpTemp.Parent:=Self;
pCmpTemp.Name:=slNewLabelNamePrefix+String(i);
pCmpTemp.Caption:=String('Neues Label #')+String(i+1);
pCmpTemp.Top:=i*20+45;
pCmpTemp.Left:=20;
end;
end;
er sollte eigentlich gehen, macht er aber net ich bekomme immer eine zugriffs verletzung. Kann mir jemand helfen?
MfG Stephan
Comment