Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi RadioButton.Checked:=False funktioniert nicht (https://www.delphipraxis.net/58666-radiobutton-checked-%3Dfalse-funktioniert-nicht.html)

Martin.Ghosts 10. Dez 2005 13:39


RadioButton.Checked:=False funktioniert nicht
 
Bei mir funktioniert RadioButton.Checked:=False beim öffnen des Formulars nicht. Woran kann das liegen?

PierreB 10. Dez 2005 13:46

Re: RadioButton.Checked:=False funktioniert nicht
 
Moin,

hätte ein Thread nicht gereicht (siehe http://www.delphipraxis.net/internal...ct.php?t=70095) ?

Zum Thema:
Was heißt denn funktioniert nicht ? Ist der RadioButton beim Erscheinen des Forms "gechecked" ? Wo hast du denn den Code
Delphi-Quellcode:
RadioButton.Checked:=false
eingebaut ? Ein paar mehr Informationen wären wirklich nicht schlecht.

Martin.Ghosts 10. Dez 2005 13:58

Re: RadioButton.Checked:=False funktioniert nicht
 
sry, bin halt noch nicht so lange dabei.
Also, dann beschreib ich noch mal mein Problem:
Ich öffne ein Formular
hier der Quellcode(wie man das so mach wie du weiß ich nicht):

procedure TForm1.N2Click(Sender: TObject);
begin
Form2.Edit1.Clear;
Form2.ComboBox1.ItemIndex:=-1;
Form2.RadioButton1.Checked:=False;
Form2.RadioButton2.Checked:=False;
Form2.Show;
end;

Wenn ich jetzt das Formular schließe und danach wieder öffne, haben die beiden RadioButtons ihre Eigenschaft Checked:=False bzw. Checked:=True bebehalten. Sie sollen aber beide nichts anzeigen.

PierreB 10. Dez 2005 14:02

Re: RadioButton.Checked:=False funktioniert nicht
 
Moin,

Zitat:

(wie man das so mach wie du weiß ich nicht):
Umfasse deinen Delphi-Quelltext mit den [ delphi]...[ /delphi]-Tag (nur ohne Leerzeichen nach der ersten Klammer). ;)

Zu deinem Problem:
Mach mal folgendes: Klicke auf dein Form2, gehe dann im Objektinspektor auf Ereignisse und trage ins das OnShow deines Form2's folgendes ein:
Delphi-Quellcode:
 Form2.RadioButton1.Checked:=False;
Form2.RadioButton2.Checked:=False;
So sollte es gehen. ;)

Martin.Ghosts 10. Dez 2005 14:15

Re: RadioButton.Checked:=False funktioniert nicht
 
Vielen Dank erst mal für deine Einführung. :-D
Wenn ich bei OnShow jedoch den Quelltext

Delphi-Quellcode:
Form2.RadioButton1.Checked:=False;
(juhu, hat geklappt :) )
kommt eine Fehlermeldung, dass dies kein gültiger Bezeichner sei.

PierreB 10. Dez 2005 14:18

Re: RadioButton.Checked:=False funktioniert nicht
 
Lass mal Form2. im Quelltext weg und versuch es nochmal, sonst könnte ich mir das auch nicht erklären. :gruebel:

Martin.Ghosts 10. Dez 2005 14:23

Re: RadioButton.Checked:=False funktioniert nicht
 
Ne, funktioniert auch nicht. Trotzdem Danke für deine Hilfe.

Ach ja, dir auch ein frohes Fest :wink:

PierreB 10. Dez 2005 14:28

Re: RadioButton.Checked:=False funktioniert nicht
 
Zitat:

Zitat von Martin.Ghosts
Ne, funktioniert auch nicht.

:?

Hm, bist du sicher das es die RadioButtons gibt ? Dann versuch mal was anderes: In das OnClose Ereignis von Form2 schreibst du rein:
Delphi-Quellcode:
RadioButton1.checked := false;
RadioButton2.checked := false;
Dann versuch mal ob das dann geht wenn du das Form schließt und wieder öffnest. Ansonsten weiß ich auch nicht. ;)

*Heute irgendwie auf dem Schlauch steht*

Martin.Ghosts 10. Dez 2005 14:38

Re: RadioButton.Checked:=False funktioniert nicht
 
Ne, auch nicht. Aber so, wie ich es ganz am Anfang gemacht habe, müsste es doch eigendlich auch gehen? Ich glaube ich laufe heute die ganze Zeit vor ne Wand? :wall:

Lannes 10. Dez 2005 14:39

Re: RadioButton.Checked:=False funktioniert nicht
 
Hallo,

das hängt damit zusammen welches Element der Form2 den Focus hat, wenn die Form2 geschlossen wird.
In OnClose der Form2 folgendes einfügen:
Delphi-Quellcode:
Edit1.SetFocus;

Martin.Ghosts 10. Dez 2005 15:01

Re: RadioButton.Checked:=False funktioniert nicht
 
Hier kommt auch die Fehlermeldung, dass
Delphi-Quellcode:
Edit1.SetFocus;
kein gültiger Bezeichner sei.

ichbins 10. Dez 2005 15:04

Re: RadioButton.Checked:=False funktioniert nicht
 
Wie heisst denn dein Radiobutton oder dein Edit? Kein gültiger Bezeichner heisst dass es das Ding nicht gibt. Um an den Namen zu kommen klickst du auf die Komponente und im OI wird dir unter "name" der Name angezeigt.

Wenn du sagst, dass etwas nicht funktioniert, solltest du auch immer sagen, ob dir Delphi einen Compiler-Fehler liefert oder ob eine Fehlermeldung vom Programm kommt. Ein Compiler-Fehler wird immer unten in dem Kästchen unter dem Editor angezeigt.

Lannes 10. Dez 2005 15:05

Re: RadioButton.Checked:=False funktioniert nicht
 
Hallo,
hast Du das in OnClose der Form2 gesetzt?

leddl 10. Dez 2005 15:08

Re: RadioButton.Checked:=False funktioniert nicht
 
:lol: Wenn ihr euch seinen Code mal anschaut, werdet ihr feststellen, daß er es in Form1 schreibt. ;)

@Martin.Ghosts:
Damit das funktioniert, mußt du die Unit des anderen Forms deinem Form1 bekannt machen. Dazu fügst du zu einfach den Namen deiner Unit zu den "Uses" hinzu. ;)

faux 10. Dez 2005 15:15

Re: RadioButton.Checked:=False funktioniert nicht
 
Zitat:

Zitat von leddl
Damit das funktioniert, mußt du die Unit des anderen Forms deinem Form1 bekannt machen. Dazu fügst du zu einfach den Namen deiner Unit zu den "Uses" hinzu. ;)

Das macht Delphi doch sowieso automatisch, sobald man Form2 tippt. Oder?
Vielleicht hat er garkeine Form2?!

Grüße
Faux

Lannes 10. Dez 2005 15:19

Re: RadioButton.Checked:=False funktioniert nicht
 
Hallo,
Zitat:

Zitat von leddl
:lol: Wenn ihr euch seinen Code mal anschaut, werdet ihr feststellen, daß er es in Form1 schreibt. ;)

@Martin.Ghosts:
Damit das funktioniert, mußt du die Unit des anderen Forms deinem Form1 bekannt machen. Dazu fügst du zu einfach den Namen deiner Unit zu den "Uses" hinzu. ;)

wenn die Form noch nicht eingebunden wäre, hätte er nicht feststellen können das die Checkboxen falsch reagieren, oder :?

Martin.Ghosts 10. Dez 2005 15:22

Re: RadioButton.Checked:=False funktioniert nicht
 
Edit1, RadioButton1, RadioButton2 gibt es alles. Das ist ja zum verrückt werden. :oops:
Zu Lannes: Jo, das ist wohl in Form2.
Zu leddl: Die Unit ist Bekannt.

Ich gebe noch mal gerade den Quellcode an:
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, TabNotBk, Menus, Grids, Calendar;

type
  TForm1 = class(TForm)
    MainMenu1: TMainMenu;
    Name1: TMenuItem;
    N2: TMenuItem;
    Datei1: TMenuItem;
    Speichern1: TMenuItem;
    Drucken1: TMenuItem;
    Beenden1: TMenuItem;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    GroupBox2: TGroupBox;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    ComboBox2: TComboBox;
    Bearbeiten1: TMenuItem;
    RichEdit1: TRichEdit;
    RichEdit2: TRichEdit;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure Beenden1Click(Sender: TObject);
    procedure Bearbeiten1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure ComboBox2Change(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

uses Unit2, Unit3;

{$R *.dfm}

procedure TForm1.N2Click(Sender: TObject);
begin
  Form2.Edit1.Clear;
  Form2.ComboBox1.ItemIndex:=-1;
  Form2.RadioButton1.Checked:=False;
  Form2.RadioButton2.Checked:=False;
  Form2.Show;
end;

end.

Lannes 10. Dez 2005 15:29

Re: RadioButton.Checked:=False funktioniert nicht
 
Hallo,

da ist alles ok, und was steht in Unit2 ?

Martin.Ghosts 10. Dez 2005 15:36

Re: RadioButton.Checked:=False funktioniert nicht
 
Da steht folgendes:
Delphi-Quellcode:
unit Unit2;

interface

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

type
  TForm2 = class(TForm)
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    Beenden1: TMenuItem;
    Speichern1: TMenuItem;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Edit1: TEdit;
    Label2: TLabel;
    ComboBox1: TComboBox;
    GroupBox2: TGroupBox;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    procedure Beenden1Click(Sender: TObject);
    procedure Speichern1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.Speichern1Click(Sender: TObject);

var speichername, speicheralter, speichergeschlecht:TStringList;

begin
  begin
    speichername:=TStringList.Create;
    speichername.Add(Edit1.Text);
    speichername.SaveToFile('Name/'+Edit1.Text+'.Name.txt');
  end;
  begin
    speicheralter:=TStringList.Create;
    speicheralter.Add(ComboBox1.Text);
    speicheralter.SaveToFile('Alter/'+Edit1.Text+'.Alter.txt');
  end;
  begin
    speichergeschlecht:=TStringList.Create;
    begin
      if RadioButton1.Checked=True then
        speichergeschlecht.Add('männlich')
      else
        speichergeschlecht.Add('weiblich');
    end;
    speichergeschlecht.SaveToFile('Geschlecht/'+Edit1.Text+'.Geschlecht.txt');
  end;
  begin
    Form2.Close;
  end;
end;

end.
Es werden also nur alle Eingaben gespeichert und das Form2 geschlossen.

Lannes 10. Dez 2005 16:09

Re: RadioButton.Checked:=False funktioniert nicht
 
Hallo,

ich vermisse die Ereignisbehandlungsroutine für Beenden1Click die in der Unit 2 deklariert ist.
Abgesehen davon:
Zitat:

Zitat von Lannes
Hallo,
das hängt damit zusammen welches Element der Form2 den Focus hat, wenn die Form2 geschlossen wird.
In OnClose der Form2 folgendes einfügen:
Delphi-Quellcode:
Edit1.SetFocus;

Eine Ereignisbehandlungsroutine zu OnClose sehe ich auch nicht.
Setz mal Edit1.SetFocus vor Close in die vorhandene Routine.
Delphi-Quellcode:
//...
    speichergeschlecht.SaveToFile('Geschlecht/'+Edit1.Text+'.Geschlecht.txt');
  end;
  begin
    Edit1.SetFocus;//<-----------!!!!
    Form2.Close;
  end;
end;
//...
Ps.: vergess nicht Deine Stringlisten wieder freizugeben!

Martin.Ghosts 10. Dez 2005 17:07

Re: RadioButton.Checked:=False funktioniert nicht
 
Jawoll, das war es. Großes Lob und vielen Dank. :thumb: :-D
Vielen Dank an alle anderen, die sich bemuht haben.


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