![]() |
Möchte meinen Script verkürzen bzw. function erstellen
...
|
AW: Möchte meinen Script verkürzen bzw. function erstellen
Zumindest die eigentliche Berechnung könntest Du in Funktionen auslagern und statt der If-Abfragen eine case-Abfrage verwenden.
Delphi-Quellcode:
function Kathete(AndereKathete, Hypotenuse: double): double;
begin Result := Sqrt(Sqr(Hypotenuse) - Sqr(AndereKathete)); end; function Hypotenuse(Ankathete, Gegenkathete: double): double; begin Result := Sqrt(Sqr(Ankathete) + Sqr(Gegenkathete)); end; ... case Art of 1: ... 2: ... 3: ... end; |
AW: Möchte meinen Script verkürzen bzw. function erstellen
schonmal danke, ich hatte iwie mehr daran gedacht die ifkeypressfunktionen in eine zu packen aber kein plan wie..
|
AW: Möchte meinen Script verkürzen bzw. function erstellen
Du kannst den einzelnen Edit's im Objektinspektor jeweils die gleiche KeyPress-Procedure zuweisen. Damit hättest du nur noch eine KeyPress-Procedure die du ggf. anpasssen musst.
|
AW: Möchte meinen Script verkürzen bzw. function erstellen
Delphi-Quellcode:
Geht aber noch kürzer (Der 'Sender' ist jeweils das TEdit-Control, in dem eine Taste gedrückt wurde).
procedure DoKeyPress (aEdit : TEdit; Var aKey : Char);
Begin if not (aKey in [#48..#57,#8,#44]) then aKey:=#0; if (aKey in[',']) and (aEdit.Text='') then begin aEdit.Text:= '0,'; aEdit.Selstart:=Length(aEdit.Text); end; if (Key in[',']) and (pos(',',aAdit.Text)>0) then aKey:=#0; End; procedure TSatzdesPytagoras.Edit1KeyPress(Sender: TObject; var Key: Char); begin DoKeyPress(Edit1, Key); end; procedure TSatzdesPytagoras.Edit2KeyPress(Sender: TObject; var Key: Char); begin DoKeyPress(Edit2, Key); end; procedure TSatzdesPytagoras.Edit3KeyPress(Sender: TObject; var Key: Char); begin DoKeyPress(Edit3, Key); end; |
AW: Möchte meinen Script verkürzen bzw. function erstellen
Dann musst Du aber auch den Sender auswerten.
|
AW: Möchte meinen Script verkürzen bzw. function erstellen
Zitat:
|
AW: Möchte meinen Script verkürzen bzw. function erstellen
Ich hätte nie gedacht, dass ich auch einmal mit so etwas langeweile, aber ich glaube, wichtiger als ein paar Buchstaben einzusparen wäre erst einmal
Was soll ein
Delphi-Quellcode:
wirklich bewirken? Bei der Einrückung und begin/end-Benutzung weiß ich nicht, ob man wirklich verstanden hat, was man da tut.
if Art=3 then
c:= Sqrt(Strtofloat(Edit1.text)*Strtofloat(Edit1.text) + Strtofloat(Edit2.text) * Strtofloat(Edit2.text)); showmessage ('C ist: ' + floattostr(c)); begin end; Ich bin heute in Spaßbremsen-Stimmung. 8-) |
AW: Möchte meinen Script verkürzen bzw. function erstellen
Zitat:
Delphi-Quellcode:
Das kann man dann allen Edits als OnKeyPress-Handler zuweisen (der Code ist allerdings ungetestet).
procedure DoOnKeyPress(Sender: TObject; var Key: char);
const KEY_BACKSPACE = #8; var TheEdit: TEdit; begin TheEdit := Sender as TEdit; case Key of '0'..'9', KEY_BACKSPACE: Key := #0; ',': if Pos(',', TheEdit.Text) > 0 then Key := #0 else if TheEdit.Text = '' then begin TheEdit.Text := '0,'; TheEdit.Selstart := Length(TheEdit.Text); end; end; end; |
AW: Möchte meinen Script verkürzen bzw. function erstellen
Danke für die nützlichen Antworten :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:34 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz