![]() |
Delphi-Version: 7
Variabler Elementenamen
Hallo DP,
Gleich vorweg: Ich bin relativ neu in der Delphi Programmierung :roll: Als ein neues Projekt wollte ich einen Zeitrechner erstellen. Also ein Programm das die Vergangene (respektive verbleibende) Zeit zu einem Bestimmten Datum errechnet und ausgibt. Nun wollte ich mir die Ausgabe aber nicht nur in Jahren/ Monaten/ Wochen/ ... angeben lassen, sondern Selbst auswählen können, welche Felder angezeigt werden sollen (also z.B. nur Stunden, Minuten und Sekunden, o.Ä.) Zu diesem Zweck wollte ich mir eine Funktion erstellen, welche den "checked" Wert der CheckBox ausliest, und dann das zugehörige Edit-Feld an-, bzw. ausschaltet.
Delphi-Quellcode:
Nun sagt mir der Compiler allerdings immer, das CheckBox und Edit nicht deklariert sein :shock:
function TForm1.IsActive(nummer: Integer): Boolean;
begin if CheckBox[nummer].Checked = true then begin Edit[nummer].Active := True; Edit[nummer].Visible := True; end else begin Edit[nummer].Active := False; Edit[nummer].Visible := False; end; end; geht sowas mit Delphi einfach nicht oder muss ich die beiden in der Function noch irgendwie deklarieren ? Die Suche hat mir nichts hilfreiches geliefert (oder ich habe nach was falschem gesucht :pale:) Würde mich über eine Antwort freun. |
AW: Variabler Elementenamen
Ich vermute mal du suchst .FindComponent()
|
AW: Variabler Elementenamen
Zitat:
* Besser niemals auf
Delphi-Quellcode:
prüfen ...
=True
Delphi-Quellcode:
ist kürzer und fehlerunanfälliger.
if CheckBox[nummer].Checked then
*
Delphi-Quellcode:
kann man auf
if x then y := true else y := false;
Delphi-Quellcode:
kürzen. :zwinker:
x := y;
Delphi-Quellcode:
bzw.
function TForm1.IsActive(nummer: Integer): Boolean;
begin Edit[nummer].Active := CheckBox[nummer].Checked; Edit[nummer].Visible := CheckBox[nummer].Checked; end;
Delphi-Quellcode:
PS: Ist dir die Warung deines Compilers aufgefallen?
function TForm1.IsActive(nummer: Integer): Boolean;
var B: Boolean; begin B := CheckBox[nummer].Checked; Edit[nummer].Active := B Edit[nummer].Visible := B; end; Du hast eine Funktion, aber nirgendwo wird das Result zugewiesen. :shock:
Delphi-Quellcode:
oder
procedure TForm1.SetActive(nummer: Integer);
var B: Boolean; begin B := CheckBox[nummer].Checked; Edit[nummer].Active := B Edit[nummer].Visible := B; end;
Delphi-Quellcode:
Wobei IsActive garnicht stimmt, denn schließlich liest du nicht (nur) aus, sondern setzt Eigenschaften eines Edits.
function TForm1.IsActive(nummer: Integer): Boolean;
begin Result := CheckBox[nummer].Checked; Edit[nummer].Active := Result Edit[nummer].Visible := Result; end; Abgesen davon ist der restlich Name IsActive auch nicht wirklich aussagefähig, denn was und wo/womit wird denn gemacht? > z.B. SetInputEditActive oder so ähnlich |
AW: Variabler Elementenamen
wow, vielen Dank für die schnelle Antwort und Verbesserungen :thumb:
.FindComponent() habe ich noch nie von gehört (aber habe ja auch erst angefangen ;) ) Damit klappt es bestens. Und mit den Verbesserungen / Kürzungen von himitsu sieht es sogar für die Augen ansprechend aus :dancer2: Werde mich dann mal an die "Mathematik" machen (also der lustige Teil :lol:) Wenn Interesse besteht, würde ich das fertige Programm (sofern keine weiteren Probleme aufkommen :oops:) dann hier hochladen :?: Bis denne :coder: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:36 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