Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Kleines Rechenproblem (https://www.delphipraxis.net/28092-kleines-rechenproblem.html)

dizzy 19. Aug 2004 15:16

Re: Kleines Rechenproblem
 
Wenn man einen Integer auf Boolean castet ist alles <> 0 = true, aber ein boolsches true wurde bei mir bisher immer nach 1 gecastet, sowie ein false nach 0.

Das wäre imho auch die eleganteste Lösung, gegenüber diesem ganzen if..then..else-Gedönse. Ist auch leichter erweiterbar wenn man eine Checkbox dazu kommt, und man spart eine Menge Konvertierungen.

SirThornberry 19. Aug 2004 15:18

Re: Kleines Rechenproblem
 
bei einer Checklistbox könnte man das ja dann in ne Schleife machen wenn es da nicht so ne Eigenschaft "Count" oder ähnliches gibt. (hatte auch an die Checklistbox gedacht aber hab die ni gefunden und dachte dann das ich mir das vielleicht nur eingebildet hab das es mal sowas gab)

Stevie 19. Aug 2004 15:24

Re: Kleines Rechenproblem
 
Zitat:

Zitat von SirThornberry
bei einer Checklistbox könnte man das ja dann in ne Schleife machen wenn es da nicht so ne Eigenschaft "Count" oder ähnliches gibt. (hatte auch an die Checklistbox gedacht aber hab die ni gefunden und dachte dann das ich mir das vielleicht nur eingebildet hab das es mal sowas gab)

Nö, haste nicht! :mrgreen: (unter zusätzlich)
Delphi-Quellcode:
function CheckCount(CheckListBox: TCheckListBox): Integer;
var
  i, c: Integer;
begin
  c := 0;
  with CheckListBox do
    for i := 0 to Pred(Count) do
      if Checked[i] then
        Inc(c);
  Result := c;
end;

hhb_man 19. Aug 2004 19:37

Re: Kleines Rechenproblem
 
Mir wird aber der Fehler gemeldet, dass String und Integer inkompatible Typen sind, wenn ich das eingebe:
Delphi-Quellcode:
procedure TForm2.CheckBox2Click(Sender: TObject);
begin
if CheckBox2.Checked then
  Edit1.Text := IntToStr(StrToInt(Edit1.Text + 1));
end;
WARUM ???

dizzy 19. Aug 2004 19:49

Re: Kleines Rechenproblem
 
Edit1.Text := IntToStr(StrToInt(Edit1.Text + 1));
wird
Edit1.Text := IntToStr(StrToInt(Edit1.Text) + 1);

dann gehts

SirThornberry 20. Aug 2004 07:44

Re: Kleines Rechenproblem
 
Das Problem ist das laut Screenshot in dem Editfeld "Edit1" steht. Das Editfeld müsste mit "0" vorbelegt werden oder du nimmst die Lösung:
Delphi-Quellcode:
procedure TForm1.CheckBox1Click(Sender: TObject);
var LKurse: Integer;
begin
  LKurse := 0;
  if Checkbox1.Checked then inc(LKurse);
  if Checkbox2.Checked then inc(LKurse);
  Edit1.Text := inttostr(LKurse);
end;

Sharky 20. Aug 2004 08:14

Re: Kleines Rechenproblem
 
Hai,

was haltet ihr denn von der Idee für das "Hochzählen" einfach die Eigenschaft .Tag des TEdits zu missbrauchen.
Zum einen ist dann egal was in dem Edit steht und zum anderen muss man keine extra Variable deklarieren.

SirThornberry 20. Aug 2004 08:17

Re: Kleines Rechenproblem
 
Dann müsste die Tag-Eigenschaft aber auch jedesmal geändert werden wenn die Checkbox gescheckt bzw. unchecked wird?

Sharky 20. Aug 2004 08:22

Re: Kleines Rechenproblem
 
Zitat:

Zitat von SirThornberry
Dann müsste die Tag-Eigenschaft aber auch jedesmal geändert werden wenn die Checkbox gescheckt bzw. unchecked wird?

Jup,
mir ging es nur darum das man es ohne eine zusätzliche, möglicherweise auch noch globale, Variable machen kann ;-)

SirThornberry 20. Aug 2004 08:31

Re: Kleines Rechenproblem
 
Wenn man sich den Screenshot ansieht weill er ja eigentlich nicht hochzählen sondern anzeigen wieviel checkboxen gecheckt sind. Würde man den wert im Editfeld immer hoch zählen so würde die zahl ja ständig steigen wenn ich die checkbox ein paar mal anklicke und so wie der screenshot aussieht ist das nicht gewollt


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:55 Uhr.
Seite 2 von 3     12 3      

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