Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Radiobutton und Radiogroup aber WIE?


phantazy - Di 19.06.07 10:39
Titel: Radiobutton und Radiogroup aber WIE?
Hey Leute,
da mir gestern shcon so gut geholfen wurde dachte ich mir wende ich mich mal wieder hierhin bevor ich wieder den ganzen tag mit googel verbringe.
Ich würde gerne zwei Radiogroups bilden mit jeweils 3 Radiobuttons und die auswahl dann jeweils in ein array im record einlesen.
Also das ganze ist ein programm zur archivierung von weinflaschen und jetzt möchte ich das die art des weins (Rotwein, Weißwein oder Rosè) eine gruppe bildet und in eine bestimmte stelle im record geschrieben wird und das ganze nochmal mit geschmack (Trocken, Halbtrocken, Lieblich).

Hier mein Code vom Array im record:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
TWein = record
      art,
      preis,
      Jahrgang,
      Lage,
      geschmack,
      verfuegbar,
      name,
      memo,
      lagerzeit: string [50];
        end;
TweinArray = array [0..100of Twein;
var
  i:integer;
  wein:Tweinarray;
  Form1: TForm1;
  Datensatz: twein;


Danke schonmal für jede Hilfe.

Gruß
Daniel


Narses - Di 19.06.07 11:29
Titel: Re: Radiobutton und Radiogroup aber WIE?
Moin und :welcome: im Forum!

user profile iconphantazy hat folgendes geschrieben:
Ich würde gerne zwei Radiogroups bilden mit jeweils 3 Radiobuttons und die auswahl dann jeweils in ein array im record einlesen.

Was ist denn jetzt das Problem bzw. was funktioniert nicht? :gruebel:

user profile iconphantazy hat folgendes geschrieben:
Hier mein Code vom Array im record:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
TWein = record
      art,
      preis,
      Jahrgang,
      Lage,
      geschmack,
      verfuegbar,
      name,
      memo,
      lagerzeit: string [50];

        end;

Bist du sicher, dass es klug ist, alle Elemente im record als String[50] zu deklarieren? :shock: :nixweiss: Ich würde sagen, nein... :|

cu
Narses


phantazy - Di 19.06.07 11:40

Ka obs klug is ^^ is zumindest mal bis jetzt der einfachste weg gewesen.
Mein Problem ist das ich nicht weis wie ich die radiogroup erstelle da momentan alle 6 radiobutton zu einer gruppe gehören. Es sollen aber 2 Gruppen mit jeweils 3 buttons sein. Und pro Gruppe soll ein Platz im array zugewiesen werden das wnen ich jetzt z.B. in Radiogroup 1 (geschmack) den radiobutton 3 (Lieblich) drücke soll in das array an der stelle wein[i].geschmack der wert 'Lieblich' geschrieben werden das wnen ich später auslese in ein Edit feld das wort Lieblich geschrieben wird.
Und das ganze soll halt bei radiogroup 1 (geschmack) mit den drei Radiobuttons (trocken,halbtrocken,lieblich) und bei der radiogroup 2 (art) die drei Radiobuttons (Weißwein,Rotwein,Rosè) zur auswahl stehen.

Radiogroup 1 wird in das feld: 'wein[i].geschmack' geschrieben
Radiogroup 2 wird in das feld: 'wein[i].art' geschrieben


Narses - Di 19.06.07 11:57

Moin!

Du kannst der Eigenschaft TRadioGroup.ItemIndex entnehmen, welcher (Radio-)Button ausgewählt ist. Der Wert ist 0-basiert (0=der erste Button, 1=zweiter Button, etc.pp.), -1 bedeutet, es ist kein Button ausgewählt. :idea: ;)

Deshalb würde es sich anbieten, für diese Weineigenschaften im record den Typ Integer zu wählen, dann kannst du nämlich mit Wein[i].Geschmack := RadioGroupGeschmack.ItemIndex; ganz leicht die Auswahl übernehmen. :mahn: ;)

cu
Narses


phantazy - Di 19.06.07 12:17

Ich habe imemnroch das Problem das ich die einzelnen Button nicht den einzelnen Radiogroups zuordnen kann. der Zeigt mir immer ItemIndex -1 an egal was ich mache.
Und vorallem wie kann ich dann den Radiobuttons die einzelnen werte zuordnen habe jetzt wein[i].art und wein[i].geschmack mal als integer gemacht komem aber nicht weiter stehe irgendwie aufm schlauch :cry:


24karatboy - Di 19.06.07 12:32

du musst 2 radiogroups erstellen und dann tust du die einzelnen punkte im objekt manager unter items eintragen.

eine zeile entspricht einem button

ansprechen tuhst du die dann mit radiogroup1.itemindex=0 dann ist der 1. ausgewählt

1 der 2.
2 der 3.

und -1 dann ist keiner ausgewählt

ich hoffe ich konnte dir helfen


phantazy - Di 19.06.07 12:49

Soweit sogut
ABER
er sieht das ganze immernoch als eine gruppe wenn ich in der radio group 1 etwas mackiere und dann in der 2 dann nimmt er die auswahl aus 1 wiedre raus


phantazy - Di 19.06.07 12:54

Achja und wie muss ich das machen damit das programm merk welches feld aktiviert ist?


24karatboy - Di 19.06.07 12:57

stell die frage bitte noch ein wenig konkreter


Jann1k - Di 19.06.07 12:58

Dann machst du was falsch. Zieh eine Radiogroup auf die Form, markiere sie, Doppelklick im objectinspector auf Items und dort trägst du deine Weinarten ein (Weißwein, Rotwein, etc.) und zwar UNTEREINANDER. Dann ziehst du eine zweite Radiougroup auf die Form udn machst mit der dasselbe (nur mitm Geschmack)


€: Okay, hastes wohl schon. Wenn du ein Ereignis auslösen will wenn man in der Radiogroup was ändert, nimm das Onklick ereignis der radiogroup


phantazy - Di 19.06.07 13:18

OK also Das ist schonmal klasse und funzt auch jedoch gibt es noch EIN ABER:
Er soll mir jetzt die auswahl später als text ausgeben also z.B. Halbtrocken und das ganze in ein Editfeld.
Wie kann ich das machen ohne jetzt lästige verzweigungen zu basteln?


Jann1k - Di 19.06.07 13:37

mit


Delphi-Quelltext
1:
2:
3:
4:
radiogroup1.items[0];
radiogroup1.items[1];
radiogroup1.items[2];  
...


hast du zugriff auf die strings der radiogroup


phantazy - Di 19.06.07 14:09

Wunderbar VIELEN DANK AN ALLE mal wieder hat dieses klasse Forum mir geholfen. :D :D :D


24karatboy - Di 19.06.07 14:18

tja siehste mal 10 leute können mehr als einer