Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   variable zahl eintäge in tlistbox oder advsmoothlistbox (https://www.delphipraxis.net/156325-variable-zahl-eintaege-tlistbox-oder-advsmoothlistbox.html)

Marcoo 28. Nov 2010 10:37


variable zahl eintäge in tlistbox oder advsmoothlistbox
 
Hallo und schönen Sonntag Morgen
Ich hab Delphi 2010 und folgendes Problem
und zwar möchte ich mit einträgen in einer advsmoothtlistbox was machen das mach ich bis her so
Delphi-Quellcode:
if advsmoothlistbox1.Items[0].Info = DatetoStr(Date) then begin
timer1.Enabled:=False ;beep;showmessage(advsmoothlistbox1.Items[0].Caption+' hat heute Geburtstag');
if advsmoothlistbox1.Items[0].ButtonCaption <> 'E-Mail Adresse' then begin
mail := 0;
action3.Execute;
end;end;
aber ich möchte nicht da eine 0 haben sondern so das er das bei 0-100 macht und es geht bestimmt kürzer als immer hinternander das machen nur mit einer zahl mehr
ihr könnt mir das auch anhand einer normalen listbox erklären:-D

toms 28. Nov 2010 10:52

AW: variable zahl eintäge in tlistbox oder advsmoothlistbox
 
Da bietet sich z.B. eine For-Schleife an.

Sir Rufo 28. Nov 2010 10:52

AW: variable zahl eintäge in tlistbox oder advsmoothlistbox
 
Huch, so macht man das eigentlich gar nicht ;)

Die Daten hält man in einer Liste
Delphi-Quellcode:
TDataItem = class
property Geburtstag : TDateTime;
property Email : string;
end;

TDataList = TObjectList< TDataItem >;
Die Einträge aus dieser Liste werden dann in der ListBox angezeigt.
Irgendwelche Arbeiten werden dann direkt mit den ListenEinträgen der TDataList erledigt.

Die ganze Logik baut man um die Daten und nicht um die Anzeige.

fkerber 28. Nov 2010 10:54

AW: variable zahl eintäge in tlistbox oder advsmoothlistbox
 
Hi,

darüberhinaus würde ich dir dringend empfehlen, deinen Code besser zu strukturieren - z.B. durch Einrückungen.

Folgendes finde ich viel übersichtlicher und somit besser verständlich:

Delphi-Quellcode:
if advsmoothlistbox1.Items[0].Info = DatetoStr(Date) then
  begin
    timer1.Enabled:=False;
    beep;
    showmessage(advsmoothlistbox1.Items[0].Caption+' hat heute Geburtstag');
    if advsmoothlistbox1.Items[0].ButtonCaption <> 'E-Mail Adresse' then
      begin
        mail := 0;
        action3.Execute;
      end;
  end;

LG, Frederic

Sir Rufo 28. Nov 2010 10:58

AW: variable zahl eintäge in tlistbox oder advsmoothlistbox
 
Vor allem, weil Delphi 2010 einen Code-Formatter hat, wo das mit einer Tasten-Kombination erledigt ist
Code:
Strg-D

Marcoo 28. Nov 2010 11:12

AW: variable zahl eintäge in tlistbox oder advsmoothlistbox
 
Ok dann müsste es so besser sein aber wie krig ich das hin das ich unendlich einträge haben kann und nicht nur wie in diesem falle 2
Delphi-Quellcode:
if AdvSmoothListBox1.Items[0].Info = Datetostr(Date) then
    begin
      Timer1.Enabled := False;
      beep;
      showmessage(AdvSmoothListBox1.Items[0].Caption + ' hat heute Geburtstag');
      if AdvSmoothListBox1.Items[0].ButtonCaption <> 'E-Mail Adresse' then
      begin
        mail := 0;
        Action3.Execute;
      end;
    end;
    if AdvSmoothListBox1.Items[1].Info = Datetostr(Date) then
    begin
      Timer1.Enabled := False;
      beep;
      showmessage(AdvSmoothListBox1.Items[1].Caption + ' hat heute Geburtstag');
      if AdvSmoothListBox1.Items[1].ButtonCaption <> 'E-Mail Adresse' then
      begin
        mail := 1;
        Action3.Execute;
      end;
    end;

Sir Rufo 28. Nov 2010 11:15

AW: variable zahl eintäge in tlistbox oder advsmoothlistbox
 
Was erwartest du?

Du formatierst deinen Code und alles ist gut?

Bitte benutze doch die Delphi-Tags

DeddyH 28. Nov 2010 11:16

AW: variable zahl eintäge in tlistbox oder advsmoothlistbox
 
Delphi-Quellcode:
for i := 0 to AdvSmoothListBox1.Items.Count - 1 do
  begin
    if AdvSmoothListBox1.Items[i].Info = Datetostr(Date) then
      ...

Marcoo 28. Nov 2010 11:17

AW: variable zahl eintäge in tlistbox oder advsmoothlistbox
 
Ich glaub so funktionierts an ne for schleife hab ich garnicht gedacht Fail
Delphi-Quellcode:
var I:integer;
begin
  try
  for I := 1 to advsmoothlistbox1.Items.Count -1 do begin
    if AdvSmoothListBox1.Items[i].Info = Datetostr(Date) then
    begin
      Timer1.Enabled := False;
      beep;
      showmessage(AdvSmoothListBox1.Items[i].Caption + ' hat heute Geburtstag');
      if AdvSmoothListBox1.Items[i].ButtonCaption <> 'E-Mail Adresse' then
      begin
        mail := i;
        Action3.Execute;
      end;
    end;
*edit*0ist besser ok Danke

DeddyH 28. Nov 2010 11:19

AW: variable zahl eintäge in tlistbox oder advsmoothlistbox
 
Und was ist mit dem ersten Eintrag? Und was passiert, wenn überhaupt keine Einträge vorhanden sind? Übrigens: verwende doch Delphi-Tags anstatt Code-Tags.

[edit] Aha, selber gemerkt :) [/edit]


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:35 Uhr.
Seite 1 von 2  1 2      

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