AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Label aus anderer Unit verwenden

Ein Thema von Fractal · begonnen am 16. Apr 2014 · letzter Beitrag vom 17. Apr 2014
Antwort Antwort
Seite 2 von 2     12
Fractal

Registriert seit: 16. Apr 2014
9 Beiträge
 
#11

AW: Label aus anderer Unit verwenden

  Alt 16. Apr 2014, 20:07
Ich weiß zwar nicht wie das intern aussieht, aber "Ergebnisse.Zahl.Caption := ..." könnte die Lösung sein.
Damit hats funktioniert, danke .

(Um den Counter wieder auf 0 zu setzen):
Code:
procedure TErgebnisse.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
  n := StrToIntDef(Ergebnisse.Zahl.caption, 0);
  n := 0;
  Ergebnisse.Zahl.caption := IntToStr(n);
end;
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#12

AW: Label aus anderer Unit verwenden

  Alt 16. Apr 2014, 20:18
Delphi-Quellcode:
procedure TErgebnisse.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
  Ergebnisse.Zahl.caption := IntToStr(0);
end;
Würde auch gehen.

Delphi-Quellcode:
procedure TErgebnisse.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
  Ergebnisse.Zahl.caption := '0';
end;
Auch.

Delphi-Quellcode:
procedure TErgebnisse.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
  Ergebnisse.Zahl.caption := '';
end;
Würde aber auch gehen, wegen StrToIntDef(n, 0);
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Label aus anderer Unit verwenden

  Alt 16. Apr 2014, 20:41
oder
Delphi-Quellcode:
procedure TErgebnisse.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
  //n := StrToIntDef(Ergebnisse.Zahl.caption, 0);
  n := 0;
  Ergebnisse.Zahl.caption := IntToStr(n);
end;
Der Compiler hat aber bestimmt auch erwähnt, daß n nicht verwendet wurde. (der Wert der ersten Zuweisung)
Vorallem, wozu sollte der alte Wert erst ausgelesen werden, wenn dann sowieso ein neuer/anderer Wert zugewiesen wird?

ABER, WO um Himmels Willen ist n deklariert?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
bcvs

Registriert seit: 16. Jun 2011
668 Beiträge
 
Delphi 12 Athens
 
#14

AW: Label aus anderer Unit verwenden

  Alt 17. Apr 2014, 07:16
Ich würde das sowieso etwas anders angehen:

Merke dir eine Grundregel: Visuelle Controls dienen nur zur Anzeige, nicht zum Speichern von Daten. In deinem Fall wird die aktuelle Anzahll der richtigen Antworten aber nur als Caption im Label Zahl gespeichert.

Überlege dir eine geeignete Datenstruktur für dein Quiz z.B.

Delphi-Quellcode:
var
QuizErgebnisse = record
  //.. ganz viele nützliche Felder
  AnzahlRichtig : integer;
end;
Dieser Record muss natürlich beim Programmstart oder vor einem neuen Spiel sinnvoll initialisiert werden.

Dein Form TErgebnisse erweiterst du um eine Methode, die die Anzahl derRichtigen Fragen entgegennimmt und irgendwie darstellt. Dabei kannst du dir auch die vielen einzelnen übereinanderliegenden Labels sparen:

Delphi-Quellcode:
procedure TErgebnisse.ShowErgebnis(AnzahlRichtig:integer);
begin
  Label.Caption:='Du hast '+IntToStr(AnzahlRichtig)+' / 10 Fragen richtig beantwortet!';
end;

In TFrage steht dann nur:

Delphi-Quellcode:
procedure TFrage1.SpeedButton2Click(Sender : TObject);
begin
  inc(QuizErgebnisse.AnzahlRichtig);
  Ergebnisse.ShowErgebnis(QuizErgebnisse.AnzahlRichtig);
end;
TFrage1 muss jetzt gar nicht wissen, wie TErgebnisse das Ergebnis anzeigt. Wenn du dafür später mal ein ganz anderes Control als ein Label nehmen wilst, brauchst du nur TErgebnisse.ShowErgebnis zu ändern.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 01:30 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