Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi RadioGroup Items Disablen (https://www.delphipraxis.net/3323-radiogroup-items-disablen.html)

Daniel B 6. Mär 2003 21:21


RadioGroup Items Disablen
 
Hallöchen,

bin ich nur Blind, oder gibt es wirklich keine möglichkeit einzelne Items zu Disablen? Ich möchte sie wegen der Optik jetzt schon vorsehen, aber manche werde nur in späteren Versionen funktionieren, daher müsste ich welche ausschalten, aber ich finde einfach nichts. Es würde mir aber einiges erleichtern wenn ich damit arbeite, anstatt mit GroupBox und einzelnen CheckBoxen, wegen dem Index.

Grüsse, Daniel :hi:

jbg 6. Mär 2003 22:26

Hier hast du mal 2 Lösungen. Die erste funktioniert immer. Die 2. müsste immer funktionieren. Es kann aber vorkommen, dass bei der 2. die Komponentenreihenfolge durch weitere Sub-Komponenten durcheinander gerät. Aber das jemand Komponenten mit TRadioGroup als Owner erzeugt habe ich noch nicht gesehen.

Delphi-Quellcode:
type
  TRadioGroupPrivate = class(TCustomGroupBox)
  public
    FButtons: TList;
   { Wir müssen nur auf FButtons zugreifen können }
  end;

function GetRadioButtonFromGroup(RadioGroup: TCustomRadioGroup; Index: Integer): TRadioButton;
begin
  Result := TRadioButton(TRadioGroupPrivate(RadioGroup).FButtons[Index]);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  GetRadioButtonFromGroup(RadioGroup1, 3).Enabled := False;
end;

// 2. Lösung
procedure TForm1.Button2Click(Sender: TObject);
begin
  TRadioButton(RadioGroup1.Components[3]).Enabled := False;
end;

Daniel B 6. Mär 2003 22:36

Hmm, es war jetzt nicht vorgesehen die Items zur Laufzeit einzuschalten. In späteren Versionen, wo die jeweiligen sachen unterstützt werden, gibts eh ne neue .exe. Da kann ich die dann wieder per Hand einschalten.
Man soll einfach nur sehen das bestimmte Funktionen irgendwann kommen. Ausserdem kann ich das Design so zusagen jetzt fertig machen und muss es später nicht mehr ändern.
Dachte an ein einfaches "RadioButton.Enabled := False;" und ich einer neueren Verion stell ich die jeweiligen einfach wieder an.
Sozusagen nur "Werbung" machen. ;)
Aber trotzdem Danke für Deine Mühe!

Grüsse, Daniel :hi:

Luckie 7. Mär 2003 06:06

Ist aber doch eine Lösung. Dann machst du eine bedingte Kompilierung raus und dann kannst du das per Schalter im Source an- und ausschalten.

Also diese DEFINE und IFDEF und ENDDEF Dingens eben. :wink:

Daniel B 7. Mär 2003 06:25

Zitat:

Zitat von Luckie
Also diese DEFINE und IFDEF und ENDDEF Dingens eben. :wink:

Das stimmt, da hab ich jetzt auch wieder nicht gedacht. :roll:

Grüsse, Daniel :hi:

Luckie 7. Mär 2003 06:30

Zitat:

Zitat von Daniel B
Das stimmt, da hab ich jetzt auch wieder nicht gedacht. :roll:

:zwinker:


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:29 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz