AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Per Befehl Checkbox erstellen

Ein Thema von STS301 · begonnen am 17. Feb 2008 · letzter Beitrag vom 18. Feb 2008
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von STS301
STS301

Registriert seit: 6. Nov 2007
668 Beiträge
 
Delphi 7 Personal
 
#1

Per Befehl Checkbox erstellen

  Alt 17. Feb 2008, 12:50
hi

wie kann ich per Befehl zb. eine Checkbox erstellen.
Sebastian

ölpölp

Linux will rule the universe!!
  Mit Zitat antworten Zitat
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Per Befehl Checkbox erstellen

  Alt 17. Feb 2008, 12:54
Delphi-Quellcode:
with TCheckBox.Create(self) do
  begin
    Parent := self;
    Top := 10;
    Left := 10;
    Height := 10;
    Width := 10;
  end;
Dominik
Wer anderen eine Grube gräbt, hat ein Gruben-Grab-Gerät!
  Mit Zitat antworten Zitat
Benutzerbild von STS301
STS301

Registriert seit: 6. Nov 2007
668 Beiträge
 
Delphi 7 Personal
 
#3

Re: Per Befehl Checkbox erstellen

  Alt 17. Feb 2008, 13:04
danke

und wie kann ich dann etwas in die neue Checkbox eingeben, ohne eine editbox?
Sebastian

ölpölp

Linux will rule the universe!!
  Mit Zitat antworten Zitat
Noobinator

Registriert seit: 9. Mai 2006
147 Beiträge
 
Delphi 7 Personal
 
#4

Re: Per Befehl Checkbox erstellen

  Alt 17. Feb 2008, 13:05
Dabei würde ich aber mindestens noch einen Namen setzen, damit man auf diese zugreifen kann.

Delphi-Quellcode:
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;
...
wenn nicht sogar:

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;
  Mit Zitat antworten Zitat
Benutzerbild von STS301
STS301

Registriert seit: 6. Nov 2007
668 Beiträge
 
Delphi 7 Personal
 
#5

Re: Per Befehl Checkbox erstellen

  Alt 17. Feb 2008, 13:17
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?
Sebastian

ölpölp

Linux will rule the universe!!
  Mit Zitat antworten Zitat
busybyte

Registriert seit: 15. Sep 2006
165 Beiträge
 
#6

Re: Per Befehl Checkbox erstellen

  Alt 17. Feb 2008, 13:33
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.
  Mit Zitat antworten Zitat
Noobinator

Registriert seit: 9. Mai 2006
147 Beiträge
 
Delphi 7 Personal
 
#7

Re: Per Befehl Checkbox erstellen

  Alt 17. Feb 2008, 13:38
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:
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
2. Weg:

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;
  Mit Zitat antworten Zitat
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#8

Re: Per Befehl Checkbox erstellen

  Alt 17. Feb 2008, 13:41
"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:
Du hast einen Zeiger auf das erstellte Objekt:
Delphi-Quellcode:
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
Ob MeineCheckBox auf eine CheckBox zeigt kannst du mit Assigned(MeineCheckbox) überprüfen. Aber achtung: damit das klappt mit FreeAndNil freigeben!
Wenn du mehrere Checkboxen dynamisch erstellen willst bietet sich hier ein Array oder eine ObjectList an.

Du gibst der CheckBox einen Namen und wenn du darauf zugreifen willst suchst du nach diesem namen:
Delphi-Quellcode:
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';
Du verwendest Nachrichten... SendMessage und so... Dazu brauchst du aber das Handle von der CheckBox... hab ich auch noch nie gemacht^^
Dominik
Wer anderen eine Grube gräbt, hat ein Gruben-Grab-Gerät!
  Mit Zitat antworten Zitat
Benutzerbild von STS301
STS301

Registriert seit: 6. Nov 2007
668 Beiträge
 
Delphi 7 Personal
 
#9

Re: Per Befehl Checkbox erstellen

  Alt 17. Feb 2008, 15:22
danke für die Antworten

ich wollte es eigentlich so machen, wie bei der GoogleDesktopToolbar die Aufgaben
Miniaturansicht angehängter Grafiken
image1_189.jpg  
Sebastian

ölpölp

Linux will rule the universe!!
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Per Befehl Checkbox erstellen

  Alt 17. Feb 2008, 17:38
Hi,

bei einem TListView kannst du die Eigenschaft CheckBoxes aktivieren, sowie den Eintrag ohne Code editieren.
Wäre eventuell besser geeignet als mehrere Checkboxen.
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz