Delphi-PRAXiS
Seite 2 von 3     12 3      

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 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!


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:19 Uhr.
Seite 2 von 3     12 3      

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