Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Tschenrechner -> Buttons (https://www.delphipraxis.net/87639-tschenrechner-buttons.html)

gekkorist 3. Mär 2007 14:32


Tschenrechner -> Buttons
 
Hallo, ich habe mir nen Taschenrechner gemacht wo man die Zahlen auch mit der Maus eingeben kann... aber wie kann ich das machen das ich einen Button nur 1 mal drücken kann wenn zB ein ',' schon im editfeld steht?

p0w3r5tr34m3r 3. Mär 2007 14:37

Re: Tschenrechner -> Buttons
 
ich würde es so machen
Delphi-Quellcode:
var comma: boolean; // globale variable
{...}
procedure TForm1.CommaClick(Sender: TObject);
begin
  if comma then
    exit
  else begin
    edit1.text := edit1.text + ',';
    comma := true;
  end;
end;

CK_CK 3. Mär 2007 14:39

Re: Tschenrechner -> Buttons
 
Hi!
Das geht noch einfacher (ohne globale Variable).
Du prüfst einfach, ob das Zeichen schon im Edit steht und wenn nein, dann wird es hinzugefügt...
Code:
Delphi-Quellcode:
[...OnClick...]
var
  tmp: String;
begin
  tmp := Edit1.Text;
  if Pos(',',tmp) = -1 then Edit1.Text := tmp + ',';
end;
Noch kürzer:
Delphi-Quellcode:
[...OnClick...]
begin
  if Pos(',',Edit1.Text) = -1 then Edit1.Text := Edit1.Text + ',';
end;
Chris

Edit: Mein "Noch kürzer"-Edit kam gleichzeitig mit Nils_13s post... :stupid:

Nils_13 3. Mär 2007 14:40

Re: Tschenrechner -> Buttons
 
Es geht noch einfacher :mrgreen:
Delphi-Quellcode:
if Pos(',', Edit1.Text) = -1 then
  Edit1.Text := Edit1.Text + ',';

Thorben_K 3. Mär 2007 14:47

Re: Tschenrechner -> Buttons
 
Ich muss die herren darauf hinweisen das Pos 0 zurückgibt wenn das gesucht nicht gefunden wurde :D

Zitat:

Wird der Teil-String gefunden, gibt Pos den Integer-Index des ersten Zeichens von Substr in S zurück. Die Groß/Kleinschreibung wird von Pos nicht berücksichtigt. Ist Substr nicht vorhanden, wird der Wert Null zurückgegeben.
also muss es so aussehen
Delphi-Quellcode:
if Pos(',', Edit1.Text) = 0 then
  Edit1.Text := Edit1.Text + ',';
Thorben ;D

CK_CK 3. Mär 2007 14:50

Re: Tschenrechner -> Buttons
 
Du hast Recht! Sowas passiert, wenn man ständig zwischen verschiedenen Programmiersprachen hin-und-her springt... :drunken:
Bei Delphi beginnt ein String ja mit Position 1 (Erster Buchstabe: TestVariable[1]) :oops:

Chris

Nils_13 3. Mär 2007 15:17

Re: Tschenrechner -> Buttons
 
Ich werd wohl nie begreifen, dass Strings bei 1 statt bei 0 anfangen....

yankee 3. Mär 2007 15:29

Re: Tschenrechner -> Buttons
 
Zitat:

Zitat von Nils_13
Ich werd wohl nie begreifen, dass Strings bei 1 statt bei 0 anfangen....

Vor dem String ist noch ein cardinal (glaube ich zumindest, dass es ein Cardinal ist) in dem die Länge des Strings steht :-).
Das kann man sich doch merken ;-).

Nils_13 3. Mär 2007 15:31

Re: Tschenrechner -> Buttons
 
Abgesehen von Strings fängt so ziemlich alles bei 0 an, z.B. ein Array. Deshalb bringe ich das immer durcheinander.

gekkorist 5. Mär 2007 22:06

Re: Tschenrechner -> Buttons
 
Danke liebe community... das boarg hier gefällt mir jedenfalls besser als das dsdt. Danke für die schnelle hilfe.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:58 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