Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Globale Checkbox (https://www.delphipraxis.net/146994-globale-checkbox.html)

-Phantom- 30. Jan 2010 21:19


Globale Checkbox
 
Halli Hallo,

Also mein Problem ist simpel aber ich komme einfach nicht drauf :wall:
Zum Programm :
Ich hab ein ganz normales Fenster mit einem Button und ein Label, wenn man den Button klickt erscheint Fenster2 und in Fenster 2 gibt es eine Checkbox und wenn diese Checkbox gecheckt ist soll label1.Caption := 'test';

Mein Problem ist nun ich weiß nicht wie ich Fenster1 sage das es in Fenster2 eine Checkbox gibt.

Der Code ist ja normalerweise kein Problem :

if checkbox1.checked = ture then
label1.caption := 'test';

Hoffe mal auf hilfreiche Antworten...

mkinzler 30. Jan 2010 21:22

Re: Globale Checkbox
 
Statte das 1. Formular, mit einer Methode aus, die das Label ändert. Diese rufst du dann auf

Jens Hartmann 30. Jan 2010 21:24

Re: Globale Checkbox
 
Hallo,

Du musst die Unit Fenster2 dem Unit Fenster1 bekannt machen
Delphi-Quellcode:
uses
und anschließend nur...
Delphi-Quellcode:
if Fenster2.checkbox1.checked then
  label1.caption := 'test';
Gruß Jens

-Phantom- 30. Jan 2010 21:34

Re: Globale Checkbox
 
Das ist mir schon klar >>
Delphi-Quellcode:
implementation

uses Unit2;

{$R *.dfm}
So nun wenn ich nun auf einen Button in Fester2 Drücke und wenn die Checkbox im Fester2 gescheckt ist soll in Fester1 das Label verändert werden
Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
begin
if checkbox1.Checked = true then
label1.caption := 'test';
end;
hier kommt nun der Fehler
Delphi-Quellcode:
[Error] Unit2.pas(32): Undeclared identifier: 'label1'
Form2 weiß nichts von Label1, die im Fester1 ist!
Meine Frage ist nun wie mache ich Label1 Global sodass Fenster2 auch weiß das es ein Label1 gibt ?

mkinzler 30. Jan 2010 21:35

Re: Globale Checkbox
 
Dann gib die Form mit an
Delphi-Quellcode:
Form1.Label1.Caption := ...

-Phantom- 30. Jan 2010 21:39

Re: Globale Checkbox
 
Danke dir das wollte ich wissen

Ich bin mir nicht sicher aber ich glaube bei dir fehlt beim "Label" eine "1" :wink:

mkinzler 30. Jan 2010 21:41

Re: Globale Checkbox
 
Ja, wollte dich nur Testen :mrgreen:

Jens Hartmann 30. Jan 2010 21:42

Re: Globale Checkbox
 
Zitat:

Zitat von -Phantom-
Ich bin mir nicht sicher aber ich glaube bei dir fehlt beim "Label" eine "1"

Das sollte ja auch nur ein Beispiel sein. Und Außerdem, sollte man seinen Komponenten Aussagekräftige Bezeichner geben. Wie z.B.

Delphi-Quellcode:
  Label1.Caption
  //Könnte heißen
  TextAusFenster2.Caption
Gruß Jens

Luckie 31. Jan 2010 00:26

Re: Globale Checkbox
 
Formular 1:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Form2.ShowModal;
  if Form2.IsChecked then
    Caption := 'Ist angehakt'
  else
    Caption := 'Ist nicht angehakt';
end;
Formular 2:
Delphi-Quellcode:
unit Unit2;

interface

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

type
  TForm2 = class(TForm)
    CheckBox1: TCheckBox;
    procedure CheckBox1Click(Sender: TObject);
  private
    { Private-Deklarationen }
    FIsChecked: Boolean;
  public
    { Public-Deklarationen }
    property IsChecked: Boolean read FIsChecked write FIsChecked;
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.CheckBox1Click(Sender: TObject);
begin
  IsChecked := CheckBox1.Checked;
end;

end.
Voraussetzung ist, dass Formular 2 beim Start automatisch erzeugt wird.

-Phantom- 31. Jan 2010 11:33

Re: Globale Checkbox
 
Danke dir Lucki.

Ich habs aber schon hinbekommen ^^


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:46 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