Autor Beitrag
Vamos
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 44



BeitragVerfasst: Mi 02.09.09 10:35 
Hallo liebe Community,

ich habe ein neues Problem, das die Checkboxen betrifft.

Ich erzeuge zur Laufzeit Checkboxen, die gechecked sind. Man soll diese nun bei Bedarf abwählen können und ich möchte NUR mit den gecheckten Boxen weiterarbeiten. Also habe ich mir folgendes überlegt:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure TForm1.BRestartActionClick(Sender: TObject);

var
check: Tcomponent;
i:integer;

begin
          For i:=ComponentCount-1 Downto 0 Do Begin
          check:=Components[i];
          If check is TCheckbox and if checkbox[i].checked = true Then
          Showmessage('Rechner'+IntToStr(S));
end;


aber, was eigentlich klar ist, fuktioniert folgendes nicht:

ausblenden Delphi-Quelltext
1:
If check is TCheckbox and if checkbox[i].checked = true Then					


Wie bring ich meinem Programm bei, dass mich nur die gecheckten Boxen von denen, die zur Laufzeit erzeugt wurden, interessieren?

Vielen Dank für eure Bemühungen im Voraus.
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 02.09.09 10:42 
ausblenden Delphi-Quelltext
1:
If (check is TCheckbox) and TCheckbox(check).checked Then					
nagel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 708

Win7, Ubuntu 10.10

BeitragVerfasst: Mi 02.09.09 10:43 
S sollte auch irgendwo ein Wert zugewiesen werden.
Vamos Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 44



BeitragVerfasst: Mi 02.09.09 10:44 
user profile iconDeddyH hat folgendes geschrieben Zum zitierten Posting springen:
ausblenden Delphi-Quelltext
1:
If (check is TCheckbox) and TCheckbox(check).checked Then					


Ich danke Dir, klappt hervorragend!

Leider zeigt mir diese Funktionalität mein nächstes Problem auf : (

An dieser Stelle erstelle ich Checkboxes zur Laufzeit, je nach Anzahl der Einträge in einer TXT.-Datei, wobei der Eintrag in der TXT = Meinem Checkbox Caption ist:

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
var
F: TextFile;
S: string;
pfad, Path1, Path2, Path3: string;
a, chkboxnr,i :integer;
temp : TComponent; //
myCkeckbox : TCheckbox;   //array

begin
          For i:=ComponentCount-1 Downto 0 Do Begin
          Temp:=Components[i];  //alle alten Checkboxes Löschen (Free)
          If Temp is TCheckbox Then
          Temp.Free;
end;
     if ListBoxRaum.ItemIndex > -1 then
     pfad:= (ListBoxRaum.Items[ListBoxRaum.ItemIndex]);
     Path1:='C:\Programme\Programmnname\';
     Path2:=pfad;
     Path3:='.txt';

      AssignFile(F, Path1+Path2+Path3);
      Reset(F);
      a:=3;
      chkboxnr:=0;

        if eof(f) then begin

          MessageDlg('Die Datei enthält keine Einträge!', mterror, [mbOK], 0);  //Überprüfung, ob File leer
        end
      else

        while not EoF(f) do
        begin
          Readln(F, S);
          a:=a+1;                 //Zähler für Anordnung
          chkboxnr:=chkboxnr+1;   //Zähler für Namensgebung
          with TCheckbox.Create(self) do
          begin
              parent := self;
              left := 570;          
              top := a * 25;
              name := 'Checkbox'+IntToStr(chkboxnr);
              caption:=S;
              visible:=true;
              checked:=true;

          end;
        end;

end;


Soweit so gut. Dank DeddyH kann ich nun in einer zweiten Prozedur festellen, welche dieser Boxen gecked sind. Allerdings komme ich jetzt nichtmerh an die Namen (Captions) die ich zu weiterarbeiten jedoch bräuchte. Er spuckt mir in meiner Test Showmessage Rechnernamen wie 21-35 aus. Dort hätte ich gerne meine Caption aus der anderen Prozedur.

So wie: Der Rechner 2M11-21 wurde angewählt.

Diese Rechner sollen nämlich später per WOL geweckt werden, wobei ich da noch die Cations + MACs der Rechner verknüpfen muss. Das wird für mich Noob nochmal ein Spaß! :-/
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 02.09.09 12:30 
Vielleicht hab ich es nicht richtig verstanden, aber meinst Du vielleicht sowas?
ausblenden Delphi-Quelltext
1:
2:
If (check is TCheckbox) and TCheckbox(check).checked Then
  ShowMessage(TCheckbox(check).Caption);
Vamos Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 44



BeitragVerfasst: Mi 02.09.09 12:35 
user profile iconDeddyH hat folgendes geschrieben Zum zitierten Posting springen:
Vielleicht hab ich es nicht richtig verstanden, aber meinst Du vielleicht sowas?
ausblenden Delphi-Quelltext
1:
2:
If (check is TCheckbox) and TCheckbox(check).checked Then
  ShowMessage(TCheckbox(check).Caption);


Wie doof von mir! Klar kann man die Captions einfach wieder auslesen und damit weiterabriten... warum bin ich da net drauf gekommen!? *grrrr*

Danke Vielmals!