Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - If Abfrage mit mehren Befhelen ohne Ends?
Robii - Mo 01.06.09 22:56
Titel: If Abfrage mit mehren Befhelen ohne Ends?
Hallo.
Delphi-Quelltext
1:
| if i = 65 then if shift = true then t:='A' else t:='a';; |
klappt ja noch. Aber ich möchte gerne folgendes:
Delphi-Quelltext
1:
| if i = 65 then if shift = true then t:='A' shift := false else t:='a';; |
Allerdings dürfen keine Ends vorhanden seien, da das ganze in
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| if i = 53 then t:='5'; if i = 54 then t:='6'; if i = 55 then t:='7'; if i = 56 then t:='8'; if i = 57 then t:='9'; if i = 65 then if shift = true then t:='A' else t:='a';; if i = 66 then t:='B'; if i = 67 then t:='C'; if i = 68 then t:='D'; |
geschieht und mit einem End die Variablen die zugewiesen sind nicht mehr funktionieren.
Wie kann ich dies realisieren?
Ps.: Mit einer eigenen Procedure habe ich es versucht scheitere aber daran, das ich nicht weiß wie ich die Werte i & t später wieder übergeben soll.
Grüße.
Regan - Mo 01.06.09 23:01
Wie wäre es mit case?
BenBE - Mo 01.06.09 23:03
Außerdem sollte man NIE explizit gegen True oder False Abgleichen; ein Boolean ist ein Boolean ist ein Boolean!
Robii - Mo 01.06.09 23:04
Sorry, kenne mich noch nicht so gut mit Delphi aus,
BenBE hat folgendes geschrieben : |
| Außerdem sollte man NIE explizit gegen True oder False Abgleichen; ein Boolean ist ein Boolean ist ein Boolean! |
was willst du mir hiermit sagen?
Grüße.
Moderiert von
Narses: Zitat repariert
Robii - Mo 01.06.09 23:15
Kann mir jemand einen Beispiel-Code zu dem 'case' geben ?
Weiß nicht genau, wie ich das da eibringen soll.Grüße.
jaenicke - Mo 01.06.09 23:19
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| case i of ... 53: t:='5'; 54: t:='6'; 55: t:='7'; 56: t:='8'; 57: t:='9'; 65: if shift then t:='A' else t:='a'; 66: t:='B'; 67: t:='C'; 68: t:='D'; ... end; |
oder einfach (wie gesagt):
Delphi-Quelltext
1: 2: 3: 4:
| if shift then t := Chr(i) else t := Chr(i + 32); |
Robii - Mo 01.06.09 23:21
Moderiert von
Narses: Komplett-Zitat des letzten Beitrags entfernt.
Das war mir schon klar, aber es ging ja darum, das der untere Code ergänz auf folgendes werden muss :
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| 53: t:='5'; 54: t:='6'; 55: t:='7'; 56: t:='8'; 57: t:='9'; 65: if shift then t:='A' shift := false else t:='a'; 66: t:='B'; 67: t:='C'; 68: t:='D'; |
das nachdem dann ein großes A geschrieben worden ist, die Shift - Taste indirekt auch wieder false ist.
Grüße.
jaenicke - Mo 01.06.09 23:23
Da fehlt dann begin und end, aber was hast du gegen Chr, da sparst du dir doch die ganze manuelle Behandlung...
Robii - Mo 01.06.09 23:27
Chr ?
Wie benutze ich das?
Weiß gar nicht was das ist und bin aus dem Beitrag eben auch nicht wirklich schlau geworden wie ich mir das vorstelllen soll.
jaenicke - Mo 01.06.09 23:29
Das gibt den Buchstaben zu dem Asciicode zurück, wie gesagt...
Robii - Mo 01.06.09 23:31
Ok, und wie unterscheide ich dann zwischen groß & klein ? Verstehe das Prinzip noch nicht so ganz.
Grüße.
Georg08 - Mo 01.06.09 23:31
Delphi-Syntax:
Delphi-Quelltext
1:
| function Chr(X: Byte): Char; |
Beschreibung
Chr gibt das Zeichen zurück, das dem im Byte-Wert X angegebenen Ordinalwert (ASCII-Wert) entspricht.
Robii - Di 02.06.09 00:04
ich weiß nicht wie ich das einbringen soll. Kann mir da jemand evtl. einen Beispiel-Code schreiben?
Steh auf der Leitung.
Grüße.
jaenicke - Di 02.06.09 00:06
Das
ist das Beispiel... :roll:
Das macht von dem Shift abgesehen das selbe wie dein ganzes if bzw. case...
Robii - Di 02.06.09 00:28
Wie kann ich die Funktion denn jetzt noch so erweiter, das sie groß & klein Schreibung beachtet ?
Grüße.
jaenicke - Di 02.06.09 00:30
Die Funktion beachtet die von sich aus, streng nach Tabelle (siehe oben). Wenn du den Asciicode anders interpretieren willst, dann musst du z.B. 32 addieren um aus einem Groß- einen Kleinbuchstaben zu machen und umgekehrt.
Boldar - Di 02.06.09 00:54
Oder mir lowercase bzw. uppercase arbeiten...
mein delphi hat da sone schöne funktion wenn man f1 drückt...
Robii - Di 02.06.09 01:25
Mein Delphi hat keine schöne Funktion wenn man F1 drückt, weil man mit Vista die Hilfe-Datei nicht mehr lesen kann.
Mein Programm basiert aber auf der Eingabe, das heißt, das wenn jemand etwas eingibt die Funktion aktiv wird, wie kann ich da feststellen, ob ein großes A oder ein kleines a eingegebn worden ist?
Grüße.
Boldar - Di 02.06.09 02:11
Benutz halt Chr...
Oder
das hier [
http://tinyurl.com/nn5ufc], erster Eintrag, und sag nicht, du kannst kein Englisch, dann kannst du gleich mit Programmieren aufhören und dich hier nie mehr blicken lassen :wink:
alzaimar - Di 02.06.09 06:18
Mir scheint, Du postest den falschen Code.
WO wird etwas eingegeben und WAS willst Du damit machen.
Wenn du eine TEdit-Komponente auf ein Formular schmeisst, steht dort doch schon drin, WAS eingegeben wird... Ich versteh's nicht.
P.S.: Wenn Du eine alte Delphi-Version verwendest, dessen Hilfesystem von Vista nicht mehr unterstützt wird, dann besorg Dir eine neuere Delphi-Version.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!