Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Fehler: Operator ist auf diesen Operandentyp nicht anwendbar
Marco117 - Do 12.02.09 13:05
Titel: Fehler: Operator ist auf diesen Operandentyp nicht anwendbar
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. :motz:
baka0815 - 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.
Gausi - Do 12.02.09 13:14
Das ist ein Standard-Fehler. Du muss hier nur die Klammern anders setzen. ;-)
Delphi-Quelltext
1:
| Keys := (Key <= 42) and (Key >= 57); |
Xentar - 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.
Gausi - 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.
Marco117 - 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 :).
Delete - 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 :gruebel:
Sinspin - 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")
Marco117 - 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(58): E2015 Operator ist auf diesen Operandentyp nicht anwendbar
sry leute aber ich weiss auch nich was das ist -.-
mfG Marco
jaenicke - Fr 13.02.09 02:36
Was hast du gemacht? :lol:
Deinen aktuellen Code, in dem der Fehler auftritt, musst du schon dazuschreiben. ;-)
Marco117 - 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 - 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...
Delete - Fr 13.02.09 10:44
Nur als Anmerkung: über die Zwischenablage bekommt man aber immer noch andere Zeichen hinein.
Marco117 - Fr 13.02.09 10:48
danke für die schnelle Antwort und es klappt :):)
endlich nach mittlerweile 3 tagen ^^
mfG Marco
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!