radiogroup1click

Rund um die LCL und andere Komponenten
Antworten
niederrheiner
Beiträge: 87
Registriert: Sa 19. Jan 2008, 17:21
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Rheinberg

radiogroup1click

Beitrag von niederrheiner »

Hallo an Alle,

ich habe folgende Procedure geschrieben:

Code: Alles auswählen

procedure TForm1.RadioGroup1Click(Sender: TObject);
var boardpreislabel : string;
begin
     showmessage('hier bin ich');
     anzahl1 := strtoint(edit1.Text);
     case radiogroup1.ItemIndex of
          0 : boardpreis := 56.66;
          1 : boardpreis := 128.37;
          2 : boardpreis := 291.94;
          3 : boardpreis := 0.00;
     end;
 
     gesamt[1] := boardpreis * anzahl1;
     str(gesamt[1]:7:2,boardpreislabel);
     label2.Caption:= '€' + boardpreislabel;
end;
Wenn ich nun einen Radiobutten betätige, passiert rein gar nichts. Die Procedure wird scheinbar nicht angesprochen, da ja noch nicht einmal die Messagebox erscheint. Habe ich einen formalen Fehler gemacht? wenn ja, wo? Ist es das richtige Ereignis?

Danke für Eure Hilfe und Tipps

MfG
Günter

Socke
Lazarusforum e. V.
Beiträge: 3178
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: radiogroup1click

Beitrag von Socke »

Einmal davon abgesehen, dass es bei mir funktioniert...
OnClick ist das richtige Event (auch wenn OnChange evlt ein besserer Name gewesen wäre...)
Aber ein paar Sicherheitsabfragen (bzw. try...except oder so) wären vielleicht angebracht. Speziell:
StrToIntDef statt StrToInt
und ein else am Ender der case-Sequenz (sonst könnte boardpreis undefiniert sein).

Zur Fehlersuche: ist die Methode wirklich mit dem Ereignis verknüpft (siehe Objectinspektor) und setzte mal einen Breakpoint auf den Anfang der Methode.

MfG Socke
(jetzt sind andere dran)
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

niederrheiner
Beiträge: 87
Registriert: Sa 19. Jan 2008, 17:21
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Rheinberg

Re: radiogroup1click

Beitrag von niederrheiner »

@Socke,
danke für deine Antwort. Den Breakpoint habe ich auch schon gesetzt, aber er wird nicht angesprungen, will sagen, das Programm läuft irgendwo hin, nur nicht auf den Breakpoint. Sonst würde ja die Messagebox angezeigt. Muss evtl. im Objektinspektor an einer Schraube gedreht werden, und wenn ja, an welcher. Ich habe die Defaulteinstellungen gelassen.

Sonst irgend welche Ideen?

MfG
Günter

Socke
Lazarusforum e. V.
Beiträge: 3178
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: radiogroup1click

Beitrag von Socke »

niederrheiner hat geschrieben:Muss evtl. im Objektinspektor an einer Schraube gedreht werden, und wenn ja, an welcher. Ich habe die Defaulteinstellungen gelassen.
Wie gesagt: das Einzige, was mir einfällt, ist, dass die Methode nicht zugewiesen sein könnte (OnClick ist leer). Vielleicht hilft es auch das zu Laufzeit zu erledigen (OnCreate oder so): raidiogroup1.OnClick := @RadioGroupClick;

Ansonsten mit dem Debugger durchsteppen (F7 bzw F8), was aber wahrscheinlich auch nur geringen Erfolg bringen dürfte....

MfG Socke
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

niederrheiner
Beiträge: 87
Registriert: Sa 19. Jan 2008, 17:21
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Rheinberg

Re: radiogroup1click

Beitrag von niederrheiner »

@Socke

Das Problem ist gelöst, es saß vor der Tastatur. Die Radiogroup hatte ich wie folgt erstellt:
1.) Die Radiogroup auf die Form gezogen und
2.) dann die 4 Radiobuttons.

Richtig ist es aber Schritt 1.) und dann im Objektinspektor unter dem Punkt Items in dem Editor die einzelnen Radiobuttons erstellen.

Nochmals Danke für Deine Anregungen, so wurde mir geholfen :-)

Mfg
Günter

Antworten