AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi procedure in Checkbox nicht nochmal in OnShow schreiben?
Thema durchsuchen
Ansicht
Themen-Optionen

procedure in Checkbox nicht nochmal in OnShow schreiben?

Ein Thema von Hallo_Thomas · begonnen am 28. Jul 2005 · letzter Beitrag vom 28. Jul 2005
Antwort Antwort
Hallo_Thomas

Registriert seit: 18. Apr 2005
Ort: Dresden
405 Beiträge
 
Delphi 2005 Professional
 
#1

procedure in Checkbox nicht nochmal in OnShow schreiben?

  Alt 28. Jul 2005, 10:40
Ich benötige 2x den exakt gleichen Text in der Checkbox und in Form2.OnShow, damit beim starten die Einstellungen übernommen werden.
Gibt es da ne Möglichkeit/ nenn Befehl, dass ich das ganze nur einmal schreiben muss.



Delphi-Quellcode:
procedure TForm2.CheckBox15Click(Sender: TObject);
begin
  if Form2.checkbox15.Checked then
    begin
      Form2.blau.Enabled:=True;
      Form2.pink.Enabled:=True;
      Form2.E12z.Enabled:=True;
      Form2.blau.Color:=clWindow;
      Form2.pink.Color:=clWindow;
      Form2.E12z.Color:=clWindow;
      begin
        If (E12Z.ItemIndex = 1)
        Or (E12Z.ItemIndex = 3)
        Or (E12Z.ItemIndex = 4)
        Or (E12Z.ItemIndex = 5) Then
        Begin
          A12Z.Enabled:=False;
          A12Z.Color:=cl3DLight;
        end else
        begin
          A12Z.Enabled:=True;
          A12Z.Color:=clWindow;
        end;
      end;
    end else
    begin
      Form2.blau.Enabled:=False;
      Form2.pink.Enabled:=False;
      Form2.E12z.Enabled:=False;
      Form2.A12z.Enabled:=False;
      Form2.blau.Color:=cl3DLight;
      Form2.pink.Color:=cl3DLight;
      Form2.E12z.Color:=cl3DLight;
      Form2.A12z.Color:=cl3DLight;
   end;
end;
Delphi-Quellcode:
procedure TForm2.FormShow(Sender: TObject);
begin
  if Form2.checkbox15.Checked then
    begin
      Form2.blau.Enabled:=True;
      Form2.pink.Enabled:=True;
      Form2.E12z.Enabled:=True;
      Form2.blau.Color:=clWindow;
      Form2.pink.Color:=clWindow;
      Form2.E12z.Color:=clWindow;
      begin
        If (E12Z.ItemIndex = 1)
        Or (E12Z.ItemIndex = 3)
        Or (E12Z.ItemIndex = 4)
        Or (E12Z.ItemIndex = 5) Then
        Begin
          A12Z.Enabled:=False;
          A12Z.Color:=cl3DLight;
        end else
        begin
          A12Z.Enabled:=True;
          A12Z.Color:=clWindow;
        end;
      end;
    end else
    begin
      Form2.blau.Enabled:=False;
      Form2.pink.Enabled:=False;
      Form2.E12z.Enabled:=False;
      Form2.A12z.Enabled:=False;
      Form2.blau.Color:=cl3DLight;
      Form2.pink.Color:=cl3DLight;
      Form2.E12z.Color:=cl3DLight;
      Form2.A12z.Color:=cl3DLight;
   end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#2

Re: procedure in Checkbox nicht nochmal in OnShow schreiben?

  Alt 28. Jul 2005, 10:42
Delphi-Quellcode:
procedure EineProzedur; // Name kann man (fast) beliebig wählen, sollte dann aber auch beim Aufruf geändert werden!
begin
if Form2.checkbox15.Checked then
    begin
      Form2.blau.Enabled:=True;
      Form2.pink.Enabled:=True;
      Form2.E12z.Enabled:=True;
      Form2.blau.Color:=clWindow;
      Form2.pink.Color:=clWindow;
      Form2.E12z.Color:=clWindow;
      begin
        If (E12Z.ItemIndex = 1)
        Or (E12Z.ItemIndex = 3)
        Or (E12Z.ItemIndex = 4)
        Or (E12Z.ItemIndex = 5) Then
        Begin
          A12Z.Enabled:=False;
          A12Z.Color:=cl3DLight;
        end else
        begin
          A12Z.Enabled:=True;
          A12Z.Color:=clWindow;
        end;
      end;
    end else
    begin
      Form2.blau.Enabled:=False;
      Form2.pink.Enabled:=False;
      Form2.E12z.Enabled:=False;
      Form2.A12z.Enabled:=False;
      Form2.blau.Color:=cl3DLight;
      Form2.pink.Color:=cl3DLight;
      Form2.E12z.Color:=cl3DLight;
      Form2.A12z.Color:=cl3DLight;
   end;
end;

procedure TForm2.FormShow(Sender: TObject);
begin
  EineProzedur;
end;

procedure TForm2.CheckBox15Click(Sender: TObject);
begin
  EineProzedur;
end;
Du musst einfach nur eine eigene Prozedur schreiben. Einfach das Schlüsselwort "Procedure", danach der Prozedurenname (ggf. Parameter), dann ein Semikolon. Und danach der Anweisungsblock (Begin-End). In den Anweisungsblock schreibst du deinen Code rein. Dann kannst du später die Prozedur aufrufen. Aber achtung! Die Prozedur muss VOR dem COde, der die Prozedur aufruft!

//edit: Das natürlich nur, wenn die Prozedur vorher nicht deklariert wurde, zum Beispiel als Methode
  Mit Zitat antworten Zitat
Hallo_Thomas

Registriert seit: 18. Apr 2005
Ort: Dresden
405 Beiträge
 
Delphi 2005 Professional
 
#3

Re: procedure in Checkbox nicht nochmal in OnShow schreiben?

  Alt 28. Jul 2005, 10:47
Ich Dank Dir!
  Mit Zitat antworten Zitat
Benutzerbild von fylo
fylo

Registriert seit: 18. Feb 2004
Ort: Rostock
155 Beiträge
 
Delphi 7 Personal
 
#4

Re: procedure in Checkbox nicht nochmal in OnShow schreiben?

  Alt 28. Jul 2005, 11:17
Moin,

wenn du ein TForm2 vor den Prozedurnamen schreibst und die Prozedure noch im Privatebereich der Form integierst kannst du in deiner Prozedure die ganzen Form2's weglassen.
Delphi-Quellcode:
type
  TForm2 = class(TForm)
    Label1: TLabel;
    ...
  private
    { Private-Deklarationen }
    procedure EineProzedure;
  public
    { Public-Deklarationen }
  end;
und aus
Delphi-Quellcode:
procedure EineProzedur;
begin
...
end;
machst du
Delphi-Quellcode:
procedure TForm2.EineProzedur;
begin
...
end;
und läßt anschließend alle Form2-Ausdrücke weg
have fun
fylo
  Mit Zitat antworten Zitat
Benutzerbild von BlackJack
BlackJack

Registriert seit: 2. Jul 2005
Ort: Coesfeld
246 Beiträge
 
Delphi 2005 Personal
 
#5

Re: procedure in Checkbox nicht nochmal in OnShow schreiben?

  Alt 28. Jul 2005, 13:26
du kannst auch einfch nur eine der beiden proceduren deines ausgangspostings stehen lassen, und die anderen jeweils beim OnClick der CheckBox15 und beim OnShow der Form angeben, da beide proceduren ja auch die selben parameter benötigen. ist vielleicht einfacher.

ach ja und wenn du schon eine methode einer klasse schreibst, dann lass bitte das Form2 die ganze zeit da weg - wenn du jetzt z.b. eine 2. form namens Form3 erstellen würdest, könntest du sonst diese beiden proceduren so nicht benutzen, da sie komplett nur mit der Form2 arbeiten.
See my shadow changing, stretching up and over me.
Soften this old armor. Hoping I can clear the way
By stepping through my shadow, coming out the other side.
Step into the shadow. Forty six and two are just ahead of me.
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#6

Re: procedure in Checkbox nicht nochmal in OnShow schreiben?

  Alt 28. Jul 2005, 13:30
Zitat von BlackJack:
wenn du jetzt z.b. eine 2. form namens Form2 erstellen würdest,
dann würde Delphi motzen, weil der Bezeichner schon vorhanden ist
  Mit Zitat antworten Zitat
Benutzerbild von BlackJack
BlackJack

Registriert seit: 2. Jul 2005
Ort: Coesfeld
246 Beiträge
 
Delphi 2005 Personal
 
#7

Re: procedure in Checkbox nicht nochmal in OnShow schreiben?

  Alt 28. Jul 2005, 13:31
Zitat von Spider:
Zitat von BlackJack:
wenn du jetzt z.b. eine 2. form namens Form2 erstellen würdest,
dann würde Delphi motzen, weil der Bezeichner schon vorhanden ist
arrg, ich meine natürlich Form3 oder so...
See my shadow changing, stretching up and over me.
Soften this old armor. Hoping I can clear the way
By stepping through my shadow, coming out the other side.
Step into the shadow. Forty six and two are just ahead of me.
  Mit Zitat antworten Zitat
Antwort Antwort


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:39 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