AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Möchte meinen Script verkürzen bzw. function erstellen
Thema durchsuchen
Ansicht
Themen-Optionen

Möchte meinen Script verkürzen bzw. function erstellen

Ein Thema von Homie15 · begonnen am 15. Aug 2013 · letzter Beitrag vom 16. Aug 2013
Antwort Antwort
Seite 1 von 2  1 2      
Homie15

Registriert seit: 15. Aug 2013
8 Beiträge
 
#1

Möchte meinen Script verkürzen bzw. function erstellen

  Alt 15. Aug 2013, 13:16
...

Geändert von Homie15 (16. Aug 2013 um 13:15 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Möchte meinen Script verkürzen bzw. function erstellen

  Alt 15. Aug 2013, 14:12
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;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Homie15

Registriert seit: 15. Aug 2013
8 Beiträge
 
#3

AW: Möchte meinen Script verkürzen bzw. function erstellen

  Alt 15. Aug 2013, 18:41
schonmal danke, ich hatte iwie mehr daran gedacht die ifkeypressfunktionen in eine zu packen aber kein plan wie..
  Mit Zitat antworten Zitat
ringli

Registriert seit: 7. Okt 2004
504 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Möchte meinen Script verkürzen bzw. function erstellen

  Alt 15. Aug 2013, 18:53
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.
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#5

AW: Möchte meinen Script verkürzen bzw. function erstellen

  Alt 15. Aug 2013, 18:56
Delphi-Quellcode:
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;
Geht aber noch kürzer (Der 'Sender' ist jeweils das TEdit-Control, in dem eine Taste gedrückt wurde).
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Möchte meinen Script verkürzen bzw. function erstellen

  Alt 15. Aug 2013, 18:56
Dann musst Du aber auch den Sender auswerten.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#7

AW: Möchte meinen Script verkürzen bzw. function erstellen

  Alt 15. Aug 2013, 22:15
Dann musst Du aber auch den Sender auswerten.
Ja. Wenn man es noch kürzer macht. Sonst nicht.
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: Möchte meinen Script verkürzen bzw. function erstellen

  Alt 15. Aug 2013, 22:47
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
  • den Kram ordentlich zu formatieren
  • grundlegende Sprachkonstrukte zu verstehen
  • Oberflächen-Komponenten richtige Namen zu geben?

    Das Formular "SatzdesPytagoras" (wenn schon, dann "Pythagoras", oder?) kann man ja noch machen, aber wenn man in ein paar Tagen nochmal über den Quelltext schaut hilft einem so etwas wie Edit1 und Edit2 sicher nicht weiter.

Was soll ein
Delphi-Quellcode:
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;
wirklich bewirken? Bei der Einrückung und begin/end-Benutzung weiß ich nicht, ob man wirklich verstanden hat, was man da tut.


Ich bin heute in Spaßbremsen-Stimmung.

Geändert von Der schöne Günther (15. Aug 2013 um 22:49 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Möchte meinen Script verkürzen bzw. function erstellen

  Alt 15. Aug 2013, 23:12
Dann musst Du aber auch den Sender auswerten.
Ja. Wenn man es noch kürzer macht. Sonst nicht.
Da haben sich unsere Posts überschnitten, die Antwort galt Deinem Vorredner. Bevor das aber nun in Geschwafel ausartet:
Delphi-Quellcode:
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;
Das kann man dann allen Edits als OnKeyPress-Handler zuweisen (der Code ist allerdings ungetestet).
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Homie15

Registriert seit: 15. Aug 2013
8 Beiträge
 
#10

AW: Möchte meinen Script verkürzen bzw. function erstellen

  Alt 16. Aug 2013, 05:46
Danke für die nützlichen Antworten
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:31 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