Delphi-PRAXiS
Seite 1 von 2  1 2      

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 OnClick trotz Enabled=False? (https://www.delphipraxis.net/43302-onclick-trotz-enabled%3Dfalse.html)

glkgereon 1. Apr 2005 09:05


OnClick trotz Enabled=False?
 
Hi

wie der Titel schon sagt, ich möchte das bei 4 labeledEdits das OnClick auch ausgeführt wird wenn diese auf enabled=false stehen.
das is nur leider nicht so :(

ich möcht den effekt erzielen, das man 4 verschiedene sachen eingeben kann, aber jeweils nur eins. hmm, blöder satz.
beispiel:

eins für inch, eins für cm, eins für km und eins für seemeilen.
nun soll in eins was eingetragen werden. im onclick von inch zb werden die anderen deaktiviert und im onchange der errechnete wert eingetragen.
wenn sich aber nun mein dau überlegt "nehm ich doch lieber km" dann soll er auf km klicken können, und inch wird deaktiviert, km aktiviert.

hat das jetzt irgendwer verstanden?
wenn ja: geht das irgendwie?
es ginge wenn er disabled is trotzdem das onclick ausführt, aber das tut der offensichtlich net.
oder kann ich dieses graue und das man nichts eingeben kann anders als mit enabled=false kriegen?

mfg gereon

freak4fun 1. Apr 2005 09:12

Re: OnClick trotz Enabled=False?
 
Wieso nimmst du keine ComboBox? :gruebel:
Da kann man dann einefach auswählen.

MfG
freak

glkgereon 1. Apr 2005 09:13

Re: OnClick trotz Enabled=False?
 
hmm, ma überlegen...

teebee 1. Apr 2005 09:29

Re: OnClick trotz Enabled=False?
 
Klingt nach dem klassischen Anwendungsfall für RadioButton/RadioGroup.

Gruß, teebee

jfheins 1. Apr 2005 09:32

Re: OnClick trotz Enabled=False?
 
Du brauchst die Edits doch gar nicht deaktivieren ...

Mach die Rechnungen im OnChange der 4 Edits, dann steht immer in jedem der richtige Wert drin ...

freak4fun 1. Apr 2005 09:34

Re: OnClick trotz Enabled=False?
 
Sag dann mal bitte bescheid, wofür du dich entschieden hast. ;)

MfG
freak

Khabarakh 1. Apr 2005 10:14

Re: OnClick trotz Enabled=False?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Man könnte auch ein PageControl mit Style = tsButtons oder tsFlatButtons nehmen, sieht auch nicht schlecht aus.

3_of_8 1. Apr 2005 10:42

Re: OnClick trotz Enabled=False?
 
Man kann glaub ich, wenn sie nicht enabled sind kein OnClick Ereignis auslösen

glkgereon 1. Apr 2005 15:53

Re: OnClick trotz Enabled=False?
 
also, ich hab mir jetzt selber was gebastelt.

ich hab praktisch das "enabled=false" imitiert.

hier der Code:
OnClick
Delphi-Quellcode:
procedure TForm_Main.Wertung_Click(Sender: TObject);
begin
  //Alle Deaktivieren
  Edt_DWZ_Spieler.ReadOnly:=True;
  Edt_Ingo_Spieler.ReadOnly:=True;
  Edt_Elo_Spieler.ReadOnly:=True;
  Edt_BCF_Spieler.ReadOnly:=True;

  Edt_DWZ_Spieler.Color:=clBtnFace;
  Edt_Ingo_Spieler.Color:=clBtnFace;
  Edt_Elo_Spieler.Color:=clBtnFace;
  Edt_BCF_Spieler.Color:=clBtnFace;

  //Angelklicktes Aktivieren
  TLabeledEdit(Sender).ReadOnly:=False;
  TLabeledEdit(Sender).Color:=clWindow;
end;
OnChange
Delphi-Quellcode:
procedure TForm_Main.Wertung_Change(Sender: TObject);
begin
  //Erneuten OnChange-Aufruf umgehen
  Edt_DWZ_Spieler.OnChange:=nil;
  Edt_Elo_Spieler.OnChange:=nil;
  Edt_Ingo_Spieler.OnChange:=nil;
  Edt_BCF_Spieler.OnChange:=nil;
  try
    if Sender=Edt_DWZ_Spieler then //Wenn Sender Edt_DWZ
      begin
      //Umrechnen und in andere Edits eintragen
      Edt_Ingo_Spieler.Text:=IntToStr(Umrechnen.DwzToIngo(StrToInt(Edt_DWZ_Spieler.Text)));
      Edt_Elo_Spieler.Text:=IntToStr(Umrechnen.DwzToElo(StrToInt(Edt_DWZ_Spieler.Text)));
      Edt_BCF_Spieler.Text:=IntToStr(Umrechnen.DwzToBcf(StrToInt(Edt_DWZ_Spieler.Text)));
      end
    else if Sender=Edt_Ingo_Spieler then //Wenn Sender Edt_Ingo
      begin
      //Umrechnen und in andere Edits eintragen
      Edt_DWZ_Spieler.Text:=IntToStr(Umrechnen.IngoToDwz(StrToInt(Edt_Ingo_Spieler.Text)));
      Edt_Elo_Spieler.Text:=IntToStr(Umrechnen.IngoToElo(StrToInt(Edt_Ingo_Spieler.Text)));
      Edt_BCF_Spieler.Text:=IntToStr(Umrechnen.IngoToBcf(StrToInt(Edt_Ingo_Spieler.Text)));
      end
    else if Sender=Edt_Elo_Spieler then //Wenn Sender Edt_Elo
      begin
      //Umrechnen und in andere Edits eintragen
      Edt_DWZ_Spieler.Text:=IntToStr(Umrechnen.EloToDwz(StrToInt(Edt_Elo_Spieler.Text)));
      Edt_Ingo_Spieler.Text:=IntToStr(Umrechnen.EloToIngo(StrToInt(Edt_Elo_Spieler.Text)));
      Edt_BCF_Spieler.Text:=IntToStr(Umrechnen.EloToBcf(StrToInt(Edt_Elo_Spieler.Text)));
      end
    else if Sender=Edt_BCF_Spieler then //Wenn Sender Edt_BCF
      begin
      //Umrechnen und in andere Edits eintragen
      Edt_DWZ_Spieler.Text:=IntToStr(Umrechnen.BcfToDwz(StrToInt(Edt_BCF_Spieler.Text)));
      Edt_Elo_Spieler.Text:=IntToStr(Umrechnen.BcfToElo(StrToInt(Edt_BCF_Spieler.Text)));
      Edt_Ingo_Spieler.Text:=IntToStr(Umrechnen.BcfToIngo(StrToInt(Edt_BCF_Spieler.Text)));
      end;
  except
    //Falls Fehler (kein Integer im Edit)
    TLabeledEdit(Sender).Clear; //Leeren
  end;
  //"Echte" Onchanges zurück
  Edt_DWZ_Spieler.OnChange:=Wertung_Change;
  Edt_Elo_Spieler.OnChange:=Wertung_Change;
  Edt_Ingo_Spieler.OnChange:=Wertung_Change;
  Edt_BCF_Spieler.OnChange:=Wertung_Change;
end;
hat wer ideen zur kürzung, sicherung oder vereinfachung?
jederzeit gerne...

Airblader 1. Apr 2005 15:54

Re: OnClick trotz Enabled=False?
 
Delphi-Referenz durchsuchencase ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:28 Uhr.
Seite 1 von 2  1 2      

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