Autor Beitrag
24karatboy
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 110

Win XP
Delphi (Delphi Win32)
BeitragVerfasst: Mo 18.06.07 10:51 
Guten Morgen!

Und zwar habe ich folgendes Problem: wollte einen Taschenrechner schreiben, der +,-,*,/ rechnen kann nur wollte ich die rechnoption über eine radiogroup auswählen nun weiss ich leider nicht wie ich abfrage welche item aus der radiogroup ausgewählt wurde ich bitte um hilfe

danke

mfg 24karatboy
Blackheart666
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: Mo 18.06.07 11:02 
ItemIndex

_________________
Blackheart666
Der Irrsinn ist bei Einzelnen etwas Seltenes, - aber bei Gruppen, Parteien, Völkern, Zeiten die Regel. (Friedrich Nietzsche)
24karatboy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 110

Win XP
Delphi (Delphi Win32)
BeitragVerfasst: Mo 18.06.07 11:09 
Titel: case
case of radiogroup.itemindex 0:.........
1:......


so ?
Blackheart666
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: Mo 18.06.07 11:20 
Genau zb. so
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
  case RadioGroup1.ItemIndex of
  0 : Edit1.Text:='+';
  1 : Edit1.Text:='-';
  2 : Edit1.Text:='*';
  3 : Edit1.Text:='/';
  end;
end;

_________________
Blackheart666
Der Irrsinn ist bei Einzelnen etwas Seltenes, - aber bei Gruppen, Parteien, Völkern, Zeiten die Regel. (Friedrich Nietzsche)
24karatboy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 110

Win XP
Delphi (Delphi Win32)
BeitragVerfasst: Mo 18.06.07 11:27 
Titel: hmmm
jetzt ist mir gerade nen neues problem aufgefallen ...

hab ja nur ein editfeld und normalerweise wenn man auf + klickt soll der denn 1. wert ich nen variable speicher und dann die rechenoperation mit dem 2. wert ausführen nur will ich ja die radiogroup benutzen um die rechenoperation auszuwählen. Hat da jemand ne gute lösung ?
oldmax
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 380


D3 Prof, D4 Prof
BeitragVerfasst: Mo 18.06.07 12:08 
Hi
Da der Taschenrechner mit nur einem Editfeld hier erst vor kurzem abgehandelt wurde, geh ich nicht mehr auf die einzelnen Details ein. Zur Not geh über die Suche. Auch mein Name ist da ein wenig Hilfreich.
Was nicht behandelt wurde, ist der Wunsch, die Rechenoperationen über ein Radiobutton zu machen. Die vorausgehenden Vorschläge sind so einzusetzen, allerdings würd ich nach erfolgter Berechnung dem Radiobutton.ItemIndex den Wert -1 zuweisen.
Stelle dir vor, du willst mehrere Zahlen addieren. Also gibst du einen Wert in dein Editfeld und klickst das Plus an. Das Ereignis tritt auf und die Zahl im Editfeld wird mit einer Variablen addiert und anschließend wieder im Editfeld dargestellt. Soweit, so gut. Nun gibst du die nächste Zahl ein, allerdings ist dein Radiobutton schon gesetzt und ein Klick in das gleiche Feld löst kein Ereignis aus. Mit Radiobutton.ItemIndex:=0; löscht du die Vorbesetzung wieder und die Ereignisse erfolgen bei jedem Button. Nachteil, du wirst kaum sehen, welche Rechenoperation angeklickt wurde. Daher sind einzelne Tasten (Buttons ) "hübscher".
Gruß oldmax

_________________
Zier dich nich so, ich krieg dich schon....
24karatboy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 110

Win XP
Delphi (Delphi Win32)
BeitragVerfasst: Mo 18.06.07 12:08 
Titel: von einem problem zum nächsten
jetzt stehe ich vor einer neuen frage und wollte deshalb nicht extra nen neuen thread aufmachen weil es ja eigentlich alles hier zu gehört.

und zwar: eine 0 darf ja prinzipiell ganz vorne stehen aber was ist mit der 0 wenn ich


0350 - 250 rechnen will ?

also meine frage ist wie mache ich das ich hatte mir das so gedacht das als 1. zeichen keine 0 erlaubt wird jetzt habe ich aber nen manko entdeckt und zwar was ist denn wenn ich mit 0, rechnen möchte dann geht die 0 ja auch nciht weil es die erste zahl ist !!

hat da jemand nen tipp für mich ? ich möchte kein code ich möchte nur tipps!

danke
oldmax
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 380


D3 Prof, D4 Prof
BeitragVerfasst: Mo 18.06.07 12:19 
Also, ob ich ganz ohne Code auskomme, mal sehen....
Du hast die Möglichkeit, über
Length(Editfeld1.Text)
die Anzahl der bereits eingegebenen Zahlen zu prüfen. Du kannst so bei der Länge 1 alle Nullen verwerfen, die nach einer Null auf Platz 1 folgen. Entweder im OnKeyPress-Ereignis oder wenn dein Zahlenfeld aus Button besteht, in den OnClick-Ereignissen der Buttons, d. H. eigentlich nur im "0"-Button. Hast du eine Ziffer >0 eingegeben so überschreibst du eine führende Null einfach. Na ja, ein Komma kannst du ja nach der Null zulassen...
Gruß oldmax

_________________
Zier dich nich so, ich krieg dich schon....


Zuletzt bearbeitet von oldmax am Mo 18.06.07 16:33, insgesamt 2-mal bearbeitet
24karatboy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 110

Win XP
Delphi (Delphi Win32)
BeitragVerfasst: Mo 18.06.07 13:40 
Titel: ein weiteres problem
jetzt habe ich noch das problem mit dem back button der soll das letzte zeichen löschen!!

jetzt habe ich mir das so gedacht:

Delete(Edit1.Text, Length(Edit1.Text), 1)

kommt aber die fehlermeldung:

[Fehler] Unit1.pas(176): Konstantenobjekt kann nicht als Var-Parameter weitergegeben werden

jemand ne idee ?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 18.06.07 13:47 
ausblenden Delphi-Quelltext
1:
Edit1.Text := Copy(Edit1.Text, 1, Length(Edit1.Text) - 1);					

oder
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
var tmp: String;
begin
  tmp := Edit1.Text;
  Delete(tmp, Length(tmp), 1);
  Edit1.Text := tmp;

Grund: Text ist keine Variable sondern eine Eigenschaft und du kannst an Delete nur Variablen übergeben...
Eine Eigenschaft wird daher als Konstantenobjekt bemängelt.