AGB  ·  Datenschutz  ·  Impressum  







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

Nue eine CheckBox wird gefunden !

Ein Thema von Minibike · begonnen am 12. Nov 2015 · letzter Beitrag vom 14. Nov 2015
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#11

AW: Nue eine CheckBox wird gefunden !

  Alt 12. Nov 2015, 19:15
Man könnte das ganze natürlich auch in ein Array packen:
Delphi-Quellcode:
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    btn1: TButton;
    mmo1: TMemo;
    procedure btn1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    MyCheckBoxes: array [0..9] of TCheckBox;
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btn1Click(Sender: TObject);
var
  I: Integer;
begin
  mmo1.Lines.Clear;
  for I := 0 to 9 do
    if MyCheckBoxes[i].Checked then
      mmo1.Lines.Add(Format('Checkbox %d ist checked', [i])) else
      mmo1.Lines.Add(Format('Checkbox %d ist nicht checked', [i]));
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  I: Integer;
begin
  for I := 0 to 9 do
  begin
    MyCheckBoxes[i]:=TCheckBox.Create(self);
    with MyCheckBoxes[i] do
    begin
      Parent:=self;
      Name:='Checkbox'+IntToStr(i);
      Caption:='CheckBox '+IntToStr(i);
      Left:=80;
      Width:=120;
      Top:=64 + (i * 24);
      Visible:=True;
    end;
  end;
end;

end.
Möglicherweise bietet sich für sowas auch eine CheckListBox an.
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#12

AW: Nue eine CheckBox wird gefunden !

  Alt 12. Nov 2015, 19:56
Oder eben ohne dieses Zusammengebaue (s. Anhang Source + EXE zum Herumspielen)
Angehängte Dateien
Dateityp: zip dp_187264.zip (951,1 KB, 6x aufgerufen)
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Minibike
Minibike

Registriert seit: 22. Feb 2008
3 Beiträge
 
#13

AW: Nue eine CheckBox wird gefunden !

  Alt 12. Nov 2015, 20:27
@Sir Rufu
Danke für die vielen Antworten, ich hoffe Du kannst mir noch öfter Helfen, und sorry , dass ich nicht wußte, wie man den Source anständig Postet,
aber jetzt weiß ich es ja.

@hoika
Deine Antwort : newCheckBox := TCheckBox.Create(Self);
Und fertig.
Du hast mich in Grund und Boden versenkt, Tagelang zerbrach ich mir den Kopf, unzählige Versionen Probiert, immer wieder bekamm ich von
Delphi eine Ohrfeige. Und jetzt siehe da, es können alle Checkboxen abgefragt werden, NUR DURCH EIN WORT >>> SELF <<<< warum auch immer, es geht.

Wie gesagt, ich hab mir Delphi selbst beigebracht, und verstehe deshalb nicht alles, und bin froh, das es dieses Forum gibt, Danke nochmal an alle.........
Und jetzt ab in die Nachtschicht von 22.00Uhr - 6.00Uhr.

Gruß Mike
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#14

AW: Nue eine CheckBox wird gefunden !

  Alt 12. Nov 2015, 21:52
NUR DURCH EIN WORT >>> SELF <<<< warum auch immer, es geht.
Das ist eigentlich ganz einfach zu verstehen: Wenn du ein visuelles Objekt erstellst, muß der Compiler (bzw. das compilierte Programm) ja wissen, wo er das hinmalen soll – auf dein Formular oder auf ein Panel, das sich auf deinem Formular befindet oder wo sonst auch immer. Self ist die Variable, die das Formular bezeichnet. Wenn du also beim Create-Befehl Self als Owner (= Eigentümer) angibst, weiß der Compiler, daß das Objekt auf dem Formular gezeichnet werden soll. Die Eigenschaften Left und Top beziehen sich dann auf das Formular. Gibst du z.B. MeinPanel als Owner an, wird das Objekt auf dem Panel gezeichnet, das den Namen MeinPanel hat. Beim Suchen nach einem visuellen Objekt muß der Compiler ebenfalls wissen, wo er denn überhaupt suchen soll: Ist das ein Objekt der Form oder ein Objekt auf dem Panel oder gehört es zu irgend einer anderen visuellen Komponente?

Create ist der Konstruktor, der ein Objekt erzeugt. Verschiedene Objekte verfügen über unterschiedliche Konstruktoren. So muß z.B. nicht bei jedem Create der Owner angegeben werden, das beschränkt sich auf visuelle Objekte. Andere Objekte wie z.B. TStringList verlangen gar keine Angabe im Create-Befehl, wieder andere wie z.B. TFileStream erwarten einen Dateinamen und den Stream-Modus als Parameter im Create-Befehl.

Übrigens hab ich mir Delphi auch selbst beigebracht und kann ebenfalls kein Informatikstudium vorweisen. Soweit mir bekannt lernen auch Informatiker nicht wirklich eine Programmiersprache in ihren Vorlesungen, sondern müssen sich diese Kenntnisse ebenfalls selber beibringen. Man sollte sich da nicht "künstlich" selbst herabsetzen, nur weil man nicht studiert hat, denn das Verständnis für eine Programmiersprache verlangt zuallererst einmal eine gewisse Affinität zum Programmieren, und die wirst du wohl haben, sonst würdest du das gar nicht erst betreiben.

Als Einstieg und zum Erwerben von Basis-Kenntnissen und Erlernen der Objekt-Orientierung hat sich das Ebook vom Delphi-Treff bewährt.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#15

AW: Nue eine CheckBox wird gefunden !

  Alt 12. Nov 2015, 22:23
Das mit dem Self lässt sehr leicht aufklären, wenn man weiß, dass Delphi in Methoden dieses Self in den Scope nimmt und dieses hier
Delphi-Quellcode:
If TCheckBox(FindComponent(Test)).Checked = true then
      ShowMessage('Ergebnis : True')
    ELSE
      ShowMessage('Ergebnis : False') ;
intern so
Delphi-Quellcode:
If TCheckBox( Self.FindComponent( Test ) ).Checked = true then
      ShowMessage('Ergebnis : True')
    ELSE
      ShowMessage('Ergebnis : False') ;
abgearbeitet wird

Jetzt sollte man auch die Information aus der Dokumentation geistig zusammenführen können.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#16

AW: Nue eine CheckBox wird gefunden !

  Alt 14. Nov 2015, 18:30
Self ist die Variable, die das Formular bezeichnet. Wenn du also beim Create-Befehl Self als Owner (= Eigentümer) angibst, weiß der Compiler, daß das Objekt auf dem Formular gezeichnet werden soll. Die Eigenschaften Left und Top beziehen sich dann auf das Formular. Gibst du z.B. MeinPanel als Owner an, wird das Objekt auf dem Panel gezeichnet, das den Namen MeinPanel hat.
Dass eine Komponente auf ihrem Owner gezeichnet wird, darauf würde ich mich nicht verlassen und würde es auch so niemals ausdrücken, denn gezeichnet wird die Komponente auf dem Parent und nicht auf dem Owner.

Natürlich können Owner und Parent gleich sein, aber eben nicht zwingend.
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#17

AW: Nue eine CheckBox wird gefunden !

  Alt 14. Nov 2015, 20:26
Hallo,
dann noch viel Erfolg beim Delphi-Lernen!
Solche Schüler haben wir hier gern

LG
Heiko
Heiko
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#18

AW: Nue eine CheckBox wird gefunden !

  Alt 14. Nov 2015, 20:27
Wo du recht hast ...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 16:27 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