AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Komponenteneigenschaften gehen verloren

Ein Thema von Mojito · begonnen am 1. Nov 2012 · letzter Beitrag vom 1. Nov 2012
 
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Komponenteneigenschaften gehen verloren

  Alt 1. Nov 2012, 23:34
Zuerst einmal hilft es immer ungemein, den Code richtig zu formatieren:
Delphi-Quellcode:
function Formular1.starting : boolean;
var
  Indexwert, Zaehlung : byte;
begin
  Zaehlung := SpnEdtCount.Value;
  Indexwert := RdGrpOperator.ItemIndex;

  case ShowModal of

    mrOk :
      begin
        if not ( SpnEdtCount.Value > 5 ) and ( RdGrpOperator.ItemIndex <> - 1 )
        then
          starting := FALSE
        else
          starting := True;
      end;

    mrCancel :
      begin
        SpnEdtCount.Value := Indexwert;
        RdGrpOperator.ItemIndex := Zaehlung;
        starting := FALSE;
      end;
  end;
end;
Und schon sieht man etwas klarer ... und ich hätte folgende Fragen:
  1. Warum haben Indexwert und Zaehlung den Typen Byte ? Damit kannst du nur Werte von 0..255 speichern. Reicht das wirklich aus?
    Interessant wird es, wenn du z.B. den Wert 256 zuweist, daraus wird dann 0
  2. Der Wert von SpnEdtCount.Value wird in Zaehlung gespeichert und RdGrpOperator.ItemIndex in Indexwert - ok
    Bei Cancel werden diese gespeicherten Werte aber "verdreht" zurückgeschrieben ... ist das so gewünscht?

EDIT: Kleiner Optimierungstip:

Statt
Delphi-Quellcode:
    mrOk :
      begin
        if not ( SpnEdtCount.Value > 5 ) and ( RdGrpOperator.ItemIndex <> - 1 )
        then
          starting := FALSE
        else
          starting := True;
      end;
einfach
Delphi-Quellcode:
    mrOk :
      starting := ( SpnEdtCount.Value > 5 ) or ( RdGrpOperator.ItemIndex < 0 );
das hilft auch den Code besser zu verstehen

EDIT2:

Ich habe jetzt erst bemerkt, dass starting ja der Funktionsname ist und somit in deinem Code der Rückgabewert ist.
Für das bessere Codeverständnis wäre es ratsam statt den Funktionsnamen Result zu verwenden. Dann ist jedem auf den ersten Blick klar, dass hier der Rückgabewert der Funktion gemeint ist.
Delphi-Quellcode:
    mrOk :
      Result := ( SpnEdtCount.Value > 5 ) or ( RdGrpOperator.ItemIndex < 0 );
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo ( 1. Nov 2012 um 23:43 Uhr)
  Mit Zitat antworten Zitat
 

 

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 07:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz