Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Aktualisieren der Fensterklasse (https://www.delphipraxis.net/160480-aktualisieren-der-fensterklasse.html)

wolfaa 15. Mai 2011 16:57

Aktualisieren der Fensterklasse
 
hallo ich schreibe an einem programm das das volumen von körpern ausrechnet und habe ein extra eingefügt. wenn man mit dem radiobutton den körper auswählt dann sollen die editfelder erscheinen in die man die werte einträgt. mein problem: die edit felder werden nicht angezeigt ich denke das hängt damit zusammen das die prozedur ja nur einmal durchlaufen wird und am anfang noch kein radio button checked war.
Delphi-Quellcode:
procedure TKorperberechnung.FormCreate(Sender: TObject);
begin
        Korperrechnung:= TKorperrechnung.Create;
        EdQuader1.Visible := false;
        EdQuader2.Visible := false;
        EdQuader3.Visible := false;
        EdZylinder1.Visible := false;
        EdZylinder2.Visible := false;
        EdKegel1.Visible := false;
        EdKegel2.Visible := false;
        EdKugel.Visible := false;



        if RBtnQuader.Checked = true then
        begin
                EdQuader1.Visible := true;
                EdQuader2.Visible := true;
                EdQuader3.Visible := true;
        end;

        if RBtnZylinder.Checked = true then
        begin
                EdZylinder1.Visible := true;
                EdZylinder2.Visible := true;
        end;

        if RBtnKegel.Checked = true then
        begin
                EdKegel1.Visible := true;
                EdKegel2.Visible := true;
        end;

        if RBtnKugel.Checked = true then
        begin
                EdKugel.Visible := true;
        end;
end;
meine frage nun: wie kann ich es machen das die edit felder auftauchen wenn man ein radiobutton auswählt?

s.h.a.r.k 15. Mai 2011 17:04

AW: Aktualisieren der Fensterklasse
 
Packe den Quelltext in eine Procedure und rufe diese dann bei einem Klick auf ein RadioButton und im OnCreate auf:
Delphi-Quellcode:
type
TForm1 = class(TForm)
private
  procedure Blub();
end;

procedure TForm1.Blub();
begin
  // Hier der Code
end;

procedure TForm1.OnCreate();
begin
  Blub();
end;

Sir Rufo 15. Mai 2011 17:08

AW: Aktualisieren der Fensterklasse
 
Igitt wie grauslich
Delphi-Quellcode:
if RBtnQuader.Checked = true then
nicht nur das es zu Problemen führen kann es liest sich auch noch schrecklich.
Das hier ist doch schon fast ein Satz mit Poesie
Delphi-Quellcode:
if RBtnQuader.Checked then

wolfaa 15. Mai 2011 17:20

AW: Aktualisieren der Fensterklasse
 
naja meine informatiklehrerin sieht das anders ;-)

Luckie 15. Mai 2011 17:29

AW: Aktualisieren der Fensterklasse
 
Aber was hat das jetzt mit der Fensterklasse zu tun?

himitsu 15. Mai 2011 17:34

AW: Aktualisieren der Fensterklasse
 
Jupp, eine Fensterklasse wird hier nicht aktualisiert und eigentlich will er es auch nicht.
Er will bestimmt nur die Anzeige aktualisieren, wenn sich was ändert (siehe meine letzen Sätze)

Zitat:

Zitat von wolfaa (Beitrag 1100957)
naja meine informatiklehrerin sieht das anders ;-)

Dann schick die mal zu uns ... die bekommt schon was auf die Pfoten.


Delphi-Quellcode:
procedure TKorperberechnung.FormCreate(Sender: TObject);
begin
  Korperrechnung := TKorperrechnung.Create;
  Blub;
end;

procedure TKorperberechnung.Blub;
begin
  EdQuader1.Visible := RBtnQuader.Checked;
  EdQuader2.Visible := RBtnQuader.Checked;
  EdQuader3.Visible := RBtnQuader.Checked;
  EdZylinder1.Visible := RBtnZylinder.Checked;
  EdZylinder2.Visible := RBtnZylinder.Checked;
  EdKegel1.Visible := RBtnKegel.Checked;
  EdKegel2.Visible := RBtnKegel.Checked;
  EdKugel.Visible := EdKugel.Visible;
end;
Und Blub natürlich auch in den OnChange oder OnClick der CheckBoxen aufrufen.
Statt Blub könnte man auch direkt eine gemeinsame OnChange-Methode nutzen.

wolfaa 15. Mai 2011 19:23

AW: Aktualisieren der Fensterklasse
 
danke euch :) klappt jetzt alles super :)


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