AGB  ·  Datenschutz  ·  Impressum  







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

Variabler Elementenamen

Ein Thema von MrMooed · begonnen am 18. Feb 2012 · letzter Beitrag vom 18. Feb 2012
Antwort Antwort
Benutzerbild von MrMooed
MrMooed

Registriert seit: 18. Feb 2012
101 Beiträge
 
Delphi 7 Enterprise
 
#1

Variabler Elementenamen

  Alt 18. Feb 2012, 15:36
Delphi-Version: 7
Hallo DP,

Gleich vorweg: Ich bin relativ neu in der Delphi Programmierung
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:
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;
Nun sagt mir der Compiler allerdings immer, das CheckBox und Edit nicht deklariert sein
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 )

Würde mich über eine Antwort freun.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Variabler Elementenamen

  Alt 18. Feb 2012, 15:41
Ich vermute mal du suchst .FindComponent()
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#3

AW: Variabler Elementenamen

  Alt 18. Feb 2012, 16:03
Zitat:
Delphi-Quellcode:
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;
Dazu dann noch:

* Besser niemals auf =True prüfen ... if CheckBox[nummer].Checked then ist kürzer und fehlerunanfälliger.

* if x then y := true else y := false; kann man auf x := y; kürzen.

Delphi-Quellcode:
function TForm1.IsActive(nummer: Integer): Boolean;
begin
  Edit[nummer].Active := CheckBox[nummer].Checked;
  Edit[nummer].Visible := CheckBox[nummer].Checked;
end;
bzw.
Delphi-Quellcode:
function TForm1.IsActive(nummer: Integer): Boolean;
var
  B: Boolean;
begin
  B := CheckBox[nummer].Checked;
  Edit[nummer].Active := B
  Edit[nummer].Visible := B;
end;
PS: Ist dir die Warung deines Compilers aufgefallen?
Du hast eine Funktion, aber nirgendwo wird das Result zugewiesen.

Delphi-Quellcode:
procedure TForm1.SetActive(nummer: Integer);
var
  B: Boolean;
begin
  B := CheckBox[nummer].Checked;
  Edit[nummer].Active := B
  Edit[nummer].Visible := B;
end;
oder
Delphi-Quellcode:
function TForm1.IsActive(nummer: Integer): Boolean;
begin
  Result := CheckBox[nummer].Checked;
  Edit[nummer].Active := Result
  Edit[nummer].Visible := Result;
end;
Wobei IsActive garnicht stimmt, denn schließlich liest du nicht (nur) aus, sondern setzt Eigenschaften eines Edits.
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
$2B or not $2B

Geändert von himitsu (18. Feb 2012 um 16:57 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von MrMooed
MrMooed

Registriert seit: 18. Feb 2012
101 Beiträge
 
Delphi 7 Enterprise
 
#4

AW: Variabler Elementenamen

  Alt 18. Feb 2012, 16:52
wow, vielen Dank für die schnelle Antwort und Verbesserungen

.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

Werde mich dann mal an die "Mathematik" machen (also der lustige Teil )

Wenn Interesse besteht, würde ich das fertige Programm (sofern keine weiteren Probleme aufkommen ) dann hier hochladen



Bis denne
  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 19:24 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