| Autor |
Beitrag |
Marco117
Hält's aus hier
Beiträge: 8
|
Verfasst: Do 12.02.09 13:05
Hi Leute
Ich habe da ein problem ich weiss nich ob das hier im richtigen bereich gepostet ist ist aber ich fange mal an zu berichten.
Ich versuche eine Edit Textbox so einzustellen das sie nur die zahlen aus dem Nummernblock
inc.+,-,* und /, einlist und alle anderen ignoriert.
(Ich habe die Ascii Tabelle als hielfe genutzt)
Mein bisheriger Text lautet:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); Var Keyindex : Integer; Keys : Boolean; begin Keyindex := Ord (Key); Keys := (Key) <= 42 and (Key) >= 57; if not Keys then Edit1.Text := ''; end;
end. |
und bekomme dann volgende Fehlermeldungen:
Quelltext 1: 2:
| [DCC Fehler] Rechner3Unit1.pas(31): E2015 Operator ist auf diesen Operandentyp nicht anwendbar [DCC Warnung] Rechner3Unit1.pas(31): W1058 Implizite String-Umwandlung mit potenziellem Datenverlust von 'string' zu 'ShortString'. |
Hoffe das ihr mir da weiter helfen könnt
ich bedanke mich schonmal.
mfG Marco
Moderiert von Gausi: Delphi-Tags hinzugefügt
Moderiert von Gausi: Titel wieder geändert. Den hab ich doch eben so gesetzt. 
|
|
baka0815
      
Beiträge: 489
Erhaltene Danke: 14
Win 10, Win 8, Debian GNU/Linux
Delphi 10.1 Berlin, Java, C#
|
Verfasst: Do 12.02.09 13:12
Titel: Re: HILFE
Du hast ja leider keine Zeilennummern angegeben, aber versuch mal die Klammerung umzusetzen.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); Var Keyindex : Integer; Keys : Boolean; begin Keyindex := Ord (Key); Keys := (Key <= 42) and (Key >= 57); if not Keys then Edit1.Text := ''; end; |
Dann sollte zumindest der Fehler nicht mehr auftreten, aber ich vermute, du möchtest auch ein or statt dem and verwenden. So suchst du nach "Taste <= 42" und gleichzeitig "Taste >= 57", aber der Wert kann ja nicht gleichzeitig kleiner als 43 udn größer als 56 sein.
PS.: Für's nächste Mal den Code bitte in delphi-Tags.
Zuletzt bearbeitet von baka0815 am Do 12.02.09 13:14, insgesamt 1-mal bearbeitet
|
|
Gausi
      
Beiträge: 8554
Erhaltene Danke: 481
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Do 12.02.09 13:14
_________________ We are, we were and will not be.
|
|
Xentar
      
Beiträge: 2077
Erhaltene Danke: 2
Win XP
Delphi 5 Ent., Delphi 2007 Prof
|
Verfasst: Do 12.02.09 13:14
Titel: Re: HILFE
baka0815 hat folgendes geschrieben : | | PS.: Für's nächste Mal den Code bitte in delphi-Tags. |
Und einen SINNVOLLEN Thread Titel..
Hilfe brauchen viele, die hier posten.
Edit: Btw. wird deine Abfrage niemals zutreffen.
Wie kann eine Zahl kleiner 42 und gleichzeitig größer 57 sein? Eins von beiden ist immer false.
_________________ PROGRAMMER: A device for converting coffee into software.
|
|
Gausi
      
Beiträge: 8554
Erhaltene Danke: 481
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Do 12.02.09 13:18
Hinweis: Den Titel habe ich gewählt, als ich die Frage von einem anderen Topic abgetrennt habe. Warum der vom OT auf "HILFE" geändert wurde, ist mir schleierhaft.
Ich habe ihn wieder zurückgesetzt. Bitte so lassen, oder meinetwegen in etwas anderes sinnvolles ändern. - Danke.
_________________ We are, we were and will not be.
|
|
Marco117 
Hält's aus hier
Beiträge: 8
|
Verfasst: Do 12.02.09 13:58
Hi ich bins nochmal
sry wegen dem dämlichen Titel^^
aber mal auf mein problem zurück zukommen das mit dem kleiner 43 und größer 57 muss ich gestehen war en Tippfehler ^^.
aber das mit dem klammern versetzen habe ich auch schon versucht da bekomme ich nur nochmehr
Fehler :
[DCC Warnung] Rechner3Unit1.pas(31): W1058 Implizite String-Umwandlung mit potenziellem Datenverlust von 'string' zu 'ShortString'
[DCC Fehler] Rechner3Unit1.pas(31): E2008 Inkompatible Typen
[DCC Warnung] Rechner3Unit1.pas(31): W1058 Implizite String-Umwandlung mit potenziellem Datenverlust von 'string' zu 'ShortString'
[DCC Fehler] Rechner3Unit1.pas(31): E2008 Inkompatible Typen
ich habe nich eine blasen schimmer wie das geht sry aber ich danke trotzdem jemand ne andre Idee ich selber sitze seit 2 tagen daran ^^
mfG Marco
Ps un ich verstehe nich wie ich diese Delphie codes so poste wie du meintest ^^
bin selten in Foren  .
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 12.02.09 14:26
Abgesehen davon sehe ich da ein logisches Problem.
| Zitat: | Delphi-Quelltext 1:
| Keys := (Key <= 42) and (Key >= 57); | |
Das kann doch niemals eintreten 
|
|
Sinspin
      
Beiträge: 1338
Erhaltene Danke: 120
Win 10
RIO, CE, Lazarus
|
Verfasst: Do 12.02.09 14:39
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); Var Keyindex : Integer; Keys : Boolean; begin Keyindex := Ord (Key); Keys := (Key <= 42) and (Key >= 57); if not Keys then Edit1.Text := ''; end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if not Key in ['0'..'9', '+', '-', '*', '/'] then Key := #0; end; |
PS: Schau mal, wenn du einen Beitrag editierst, auf die Buttons direkt über dem Texteingabefeld. Auf einem steht "Bereiche". Probier dann einfach mal ein bisschen mit den Einstellungen rum und schau dir die Ergebnisse mit dem "Vorschau" Button an (links neben "Absenden")
_________________ Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Warum sollte unser aller Mutter, die Natur, nicht die gleichen Rechte haben?
|
|
Marco117 
Hält's aus hier
Beiträge: 8
|
Verfasst: Fr 13.02.09 02:06
nochmal hi ^^
danke für schnelle Rückmeldungen übrigens habe es gemacht aber ich bekomme immer noch eine Fehler meldung und zwa :
[DCC Fehler] Rechner2Unit1.pas(5  : E2015 Operator ist auf diesen Operandentyp nicht anwendbar
sry leute aber ich weiss auch nich was das ist -.-
mfG Marco
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 13.02.09 02:36
Was hast du gemacht?
Deinen aktuellen Code, in dem der Fehler auftritt, musst du schon dazuschreiben. 
|
|
Marco117 
Hält's aus hier
Beiträge: 8
|
Verfasst: Fr 13.02.09 10:34
sry ^^
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not Key in ['0'..'9', '+', '-', '*', '/'] then
Key := #0;
end;
hier das ist der text 
|
|
Nico72
      
Beiträge: 50
Win XP, Vista
Delphi 7, Delphi 2006
|
Verfasst: Fr 13.02.09 10:39
Delphi-Quelltext 1: 2: 3: 4: 5:
| procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if not (Key in ['0'..'9', '+', '-', '*', '/']) then Key := #0; end; |
sonst will er "not Key" im Array suchen, was natürlich nicht geht...
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 13.02.09 10:44
Nur als Anmerkung: über die Zwischenablage bekommt man aber immer noch andere Zeichen hinein.
|
|
Marco117 
Hält's aus hier
Beiträge: 8
|
Verfasst: Fr 13.02.09 10:48
danke für die schnelle Antwort und es klappt 
endlich nach mittlerweile 3 tagen ^^
mfG Marco
|
|