Avatar billede bramsing Nybegynder
29. oktober 2003 - 19:42 Der er 5 kommentarer og
1 løsning

Dynamisk oprettelse af CheckBox

Hejsa..
Jeg skulle gerne have lavet en knap der kan oprette en CheckBox med en Caption fra en Edit...

Jeg har forsøgt at nørdle med denne kode i forskellige varianter men jeg tror jeg er lidt på vildspor :o(
------------------------snip--------------
var
  Form1: TForm1;
CB: array[1..999] of TCheckBox;

implementation

{$R *.dfm}


procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;
begin
for i := 1 to ComponentCount-1 do
    begin
      CB[i] := TCheckBox.Create(Self);
      CB[i].Left := 10;
      CB[i].Top := 60+CB[i].Height*i;
      CB[i].Caption := Edit1.Text+ inttostr(i);
      Form1.InsertControl(CB[i]);
      edit1.Clear;
      Edit1.SetFocus;
    end;
end;
--------------------------snip-------------

Jeg håber der er en der kan hjælpe lidt..

//'bramsing'
Avatar billede morten_s Nybegynder
29. oktober 2003 - 19:50 #1
Jeg tror du har glemt dens forældre ;0)   

CB[i] := TCheckBox.Create(Form1);
      CB[i].Parent:= Form1
      CB[i].Left := 10;
      CB[i].Top := 60+CB[i].Height*i;
      CB[i].Caption := Edit1.Text+ inttostr(i);
      Form1.InsertControl(CB[i]);
      edit1.Clear;
      Edit1.SetFocus;
    end;
Avatar billede morten_s Nybegynder
29. oktober 2003 - 19:53 #2
Dette virker hos mig

procedure TForm1.Button1Click(Sender: TObject);
var
  aCheckBox: TCheckBox;
begin
  aCheckBox:= TCheckBox.Create(Form1);
  with aCheckBox do
  begin
    Parent:= Form1;
    Caption:= Edit1.Text;
    Left:= 20;
    Top:= 20;
    Checked:= True;
  end;

end;
Avatar billede bramsing Nybegynder
29. oktober 2003 - 20:04 #3
Det var ikke helt det jeg mente Morten_S, Hvis jeg trykker flere gange på Button1 skal den oprette flere CheckBoxe ( én pr tryk ) under hinanden og indsætte Edit1.text som Caption i den ny oprettet CheckBox ;)
Avatar billede bramsing Nybegynder
29. oktober 2003 - 20:04 #4
Skal liiiige spise.... Så vender jeg tilbage....
Avatar billede morten_s Nybegynder
29. oktober 2003 - 20:08 #5
Jamen det gør den også, prøv følgende

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    CheckBox1: TCheckBox;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  aLeftPos: Integer = 10;
  aTopPos: Integer = 10;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  aCheckBox: TCheckBox;
begin
  aCheckBox:= TCheckBox.Create(Form1);
  with aCheckBox do
  begin
    Parent:= Form1;
    Caption:= Edit1.Text;
    Left:= aLeftPos;
    Top:= aTopPos;
    aLeftPos:= aLeftPos+10;
    aTopPos:= aTopPos+10;
    Checked:= True;
  end;
end;

end.
Avatar billede bramsing Nybegynder
29. oktober 2003 - 20:25 #6
Du er en guttermand... Det virker som det skal
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester