![]() |
Komponenteneigenschaften gehen verloren
Hallo liebe Delphi-Freunde,
ich möchte das die letzten Werte von den Variablen des Typs TRadioGroup(Indexwert) und TSpinButton(Zaehlung) bei dem Drücken auf Cancel beibehalten werden. Also die letzten Werte die eingegeben wurden worden, wenn auf OK gedrückt wurde sollen bei erneutem Aufruf des Formulars vorausgewählt sein. Leider ist das nicht der Fall und es werden willkürlich andere Zahlen angegeben. Was mag ich übersehen haben? Vielen Dank euch!
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; |
AW: Komponenteneigenschaften gehen verloren
Zuerst einmal hilft es immer ungemein, den Code richtig zu formatieren:
Delphi-Quellcode:
Und schon sieht man etwas klarer ... und ich hätte folgende Fragen:
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;
EDIT: Kleiner Optimierungstip: Statt
Delphi-Quellcode:
einfach
mrOk :
begin if not ( SpnEdtCount.Value > 5 ) and ( RdGrpOperator.ItemIndex <> - 1 ) then starting := FALSE else starting := True; end;
Delphi-Quellcode:
das hilft auch den Code besser zu verstehen ;)
mrOk :
starting := ( SpnEdtCount.Value > 5 ) or ( RdGrpOperator.ItemIndex < 0 ); EDIT2: Ich habe jetzt erst bemerkt, dass
Delphi-Quellcode:
ja der Funktionsname ist und somit in deinem Code der Rückgabewert ist.
starting
Für das bessere Codeverständnis wäre es ratsam statt den Funktionsnamen
Delphi-Quellcode:
zu verwenden. Dann ist jedem auf den ersten Blick klar, dass hier der Rückgabewert der Funktion gemeint ist.
Result
Delphi-Quellcode:
mrOk :
Result := ( SpnEdtCount.Value > 5 ) or ( RdGrpOperator.ItemIndex < 0 ); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:08 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