![]() |
Per Befehl Checkbox erstellen
hi
wie kann ich per Befehl zb. eine Checkbox erstellen. |
Re: Per Befehl Checkbox erstellen
Delphi-Quellcode:
with TCheckBox.Create(self) do
begin Parent := self; Top := 10; Left := 10; Height := 10; Width := 10; end; |
Re: Per Befehl Checkbox erstellen
danke
und wie kann ich dann etwas in die neue Checkbox eingeben, ohne eine editbox? |
Re: Per Befehl Checkbox erstellen
Dabei würde ich aber mindestens noch einen Namen setzen, damit man auf diese zugreifen kann.
Delphi-Quellcode:
wenn nicht sogar:
with TCheckBox.Create(self) do
begin Parent := self; Top := 10; Left := 10; Height := 10; Width := 10; name := 'mybox'; end; //Beispielzugriff per findcomponent. ... Tcheckbox(findcomponent('mybox')).checked := not Tcheckbox(findcomponent('mybox')).checked; ...
Delphi-Quellcode:
var mybox:Tcheckbox;
mybox := Tcheckbox.create(self); with mybox do begin Parent := self; Top := 10; Left := 10; Height := 10; Width := 10; name := 'mybox'; end; |
Re: Per Befehl Checkbox erstellen
ja schon, aber wie kann ich extern, nicht im Source die Caption ändern.
und wie kann ich wie schon eine Checkbox erstellt habe und danach noch eine erstellen will kann das dann so funktionieren?
Delphi-Quellcode:
var mybox of Tcheckbox
mybox := Tcheckbox.create(self); with mybox do begin Parent := self; Top := 10; Left := 10; Height := 10; Width := 10; name := 'mybox'; end; if mybox.exists then ...//checkbox erstellen? |
Re: Per Befehl Checkbox erstellen
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; Type TForm1 = class(TForm) Button1: TButton; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure Button1Click(Sender: TObject); private { Private declarations } public mycb:Array of TCheckbox; procedure mycbClick(Sender: TObject); { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} Procedure freeall; Var L1,cnt1:integer; begin L1:=Length(Form1.mycb); for cnt1 := 0 to L1 - 1 do freeandnil(Form1.mycb[cnt1]); end; Procedure TForm1.mycbclick(Sender: TObject); begin with TCheckbox(Sender) do begin showmessage(Name+' Clicked!'); if checked then caption:='checked' else caption:='unchecked'; end; end; procedure TForm1.Button1Click(Sender: TObject); Var L1:integer; begin L1:=Length(mycb); Setlength(mycb,L1+1); mycb[L1]:=TCheckbox.create(Form1); try with mycb[L1] do begin Parent:=Form1; Caption:='MyCheckbox'; Left:=10; Top:=L1*30+10; Name:='MyCb'+inttostr(L1+1); OnClick:=mycbClick; end; except freeall; end; end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin freeall; end; end. |
Re: Per Befehl Checkbox erstellen
Du kannst den Namen im Objektinspektor ganricht ändern, denn die Checkbox existiert noch garnicht vor Programmstart.
wie du mehrere Erstellen kannst? ganz einfach: entweder du legst dir ein Array an, mit allen Checkboxen. Oder du gehst über den Namen und lässt einen Integer mitlaufen. 1.weg:
Delphi-Quellcode:
2. Weg:
var Mycheckboxes: array of Tcheckbox;
//im Formcreate dann ganz am Anfang Arraylänge auf 0 setzen Setlength(mycheckboxes,0); ... //Checkbox erstellen /z.B. per Buttonklick: setlength(mycheckboxes,length(mycheckboxes ) + 1); //neues Element hinten an unser Array mycheckboxes[high(mycheckboxes)]:= Tcheckbox.create(self); //in das neue Element eine Checkbox setzen //checkbox initialisieren with mycheckboxes[high(mycheckboxes)] do begin Parent := self; Top := 10* length(mycheckboxes); // damit nicht alle übereinanderliegen Left := 10; Height := 10; Width := 100; // hier 100 oder mehr angeben, damit dein Text auch angezeigt wird Caption := 'Checkbox' + intttostr(length(mycheckboxes)); end; // Zugriff ist hier ein ganz normaler Arrayzugriff: mycheckboxes[0].checked := false; //1. Box auf false setzen zum Beispiel
Delphi-Quellcode:
var boxcount:integer;
// IM Formcreate: Boxcount := 0; // Erstellen z.B. per Buttonklick inc(Boxcount,1); // 1 Hochzählen with mTcheckbox.create(self) do begin Parent := self; Top := 10 * boxcount; Left := 10; Height := 10; Width := 100; Caption := 'Checkbox' + intttostr(boxcount); Name := 'Checkbox' + intttostr(boxcount); end; //Zugriff hier per findcomponent Tcheckbox(findcomponent('Checkbox1')).checked := not Tcheckbox(findcomponent('checkbox1')).checked; |
Re: Per Befehl Checkbox erstellen
"extern", also "nicht im Source" wird das wohl kaum gehen... wie denn auch? Du erstellst die Checkbox erst zur Laufzeit, sie ist also erst zur Laufzeit verfügbar (also nix mit OI). Da eine Checkbox keine Methoden zur änderung der Caption mitbringt (wie zB ein Edit/Memo) kannst du die Caption also auch nur über den Quellcode ändern.
Dafür bieten sich verschiedene Möglichkeiten an: :arrow: Du hast einen Zeiger auf das erstellte Objekt:
Delphi-Quellcode:
Ob MeineCheckBox auf eine CheckBox zeigt kannst du mit Assigned(MeineCheckbox) überprüfen. Aber achtung: damit das klappt mit FreeAndNil freigeben!
var MeineCheckBox: TCheckBox;
{...} MeineCheckBox := TCheckBox.Create(self); with MeineCheckBox do begin Parent := self; Top := 10; Left := 10; Height := 10; Width := 10; end; // Jetzt zeigt MeineCheckBox auf die eben erstellte Checkbox MeineCheckBox := TCheckBox.Create(self); with MeineCheckBox do begin Parent := self; Top := 10; Left := 10; Height := 10; Width := 10; end; // Und jetzt zeigt MeineCheckBox auf die 2. erstellte CheckBox Wenn du mehrere Checkboxen dynamisch erstellen willst bietet sich hier ein Array oder eine ObjectList an. :arrow: Du gibst der CheckBox einen Namen und wenn du darauf zugreifen willst suchst du nach diesem namen:
Delphi-Quellcode:
:arrow: Du verwendest Nachrichten... SendMessage und so... Dazu brauchst du aber das Handle von der CheckBox... hab ich auch noch nie gemacht^^
with TCheckBox.Create(self) do
begin Parent := self; Top := 10; Left := 10; Height := 10; Width := 10; name := 'MeineCheckBox'; end; with (FindComponent('MeineCheckBox') as TCheckBox).Caption := 'bla'; |
Re: Per Befehl Checkbox erstellen
Liste der Anhänge anzeigen (Anzahl: 1)
danke für die Antworten
ich wollte es eigentlich so machen, wie bei der GoogleDesktopToolbar die Aufgaben |
Re: Per Befehl Checkbox erstellen
Hi,
bei einem TListView kannst du die Eigenschaft CheckBoxes aktivieren, sowie den Eintrag ohne Code editieren. Wäre eventuell besser geeignet als mehrere Checkboxen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz