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...