![]() |
label´s zählen
hey
ich bins mal wieder ich hab folgende frage: ich hab jetzt 13 label´s und wenn angenommen 4 davon ein 'x' zeigen dann sollen diese zusammen gezählt werden und in tedit1 ausgegeben werden. kann mir jemand helfen :) :coder2: mfg tobi |
Re: label´s zählen
Überwache Änderungen an der Caption der Labels und zähle dann in einer Variable
|
Re: label´s zählen
:wiejetzt:
kannst mir bitte einen code geben mfg tobi |
Re: label´s zählen
Stichwortartig :
gehe die Label.Caption's mit FindComponent "is TLabel" durch und prüfe mit Pos ('x',...), ob eines den Kriterien entspricht. Genauer stahts hier : F1 |
Re: label´s zählen
Wie werden die Captions gesetzt?
|
Re: label´s zählen
Ich glaube, das ist schneller...
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i, lCount: Integer; cLabel: TLabel; begin lCount := 0; for i:=0 to ComponentCount-1 do begin if Components[i] is TLabel then begin cLabel := TLabel(Components[i]); // jetzt gewünschte abfrage machen if cLabel.Caption = 'x' then begin // hier zusammen zählen Inc(lCount); end; end; end; end; |
Re: label´s zählen
Sauber ist das natürlich nicht wirklich. Wie gesagt: Die beste Lösung wäre, dass du dir einfach mit einem Counter (global oder dem Formular gehörend) merkst, wie viele Labels gerade den entsprechenden Wert haben und bei einer Änderung den Counter inkrementierst bzw. dekrementierst.
|
Re: label´s zählen
ich verstehe das Problem nicht. Ich glaub dein Programmablauf ist nicht richtig durchdacht. Du als Programmierer sorgst dafür das sich die Caption eines Labels ändert. Also weißt du auch wann ein X dazu kommt oder verschwindet. Wenn du die Caption änderst kannst du doch im gleichen Moment auch einen Zähler hoch bzw. runter zählen:
Delphi-Quellcode:
var
lIsX, lWasX : Boolean; begin lWasX := DeinLabel.Caption = 'X'; DeinLabe.Caption := NeueCaption; lIsX := DeinLabel.Caption = 'X'; if (lWasX and not(lIsX)) then XAnzahl := XAnzahl - 1 else if (not(lWasX) and lIsX) then XAnzahl := XAnzahl + 1; |
Re: label´s zählen
oder so:
Delphi-Quellcode:
Gruß Hawkeye
begin
Dec (XAnzahl, Ord(DeinLabel.Caption = 'X')); DeinLabel.Caption := NeueCaption; Inc (XAnzahl, Ord(DeinLabel.Caption = 'X')); end; |
Re: label´s zählen
Wozu wird ein Zähler gebraucht ? Sniper hat die von mir angesprochene Logik bereits (fast) realisiert. :mrgreen:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:19 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