Autor Beitrag
Marco117
Hält's aus hier
Beiträge: 8



BeitragVerfasst: 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:

ausblenden 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:

ausblenden 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 user profile iconGausi: Delphi-Tags hinzugefügt
Moderiert von user profile iconGausi: Titel wieder geändert. Den hab ich doch eben so gesetzt. :motz:
baka0815
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 489
Erhaltene Danke: 14

Win 10, Win 8, Debian GNU/Linux
Delphi 10.1 Berlin, Java, C#
BeitragVerfasst: Do 12.02.09 13:12 
Titel: Re: HILFE
Du hast ja leider keine Zeilennummern angegeben, aber versuch mal die Klammerung umzusetzen.

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 481

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Do 12.02.09 13:14 
Das ist ein Standard-Fehler. Du muss hier nur die Klammern anders setzen. ;-)

ausblenden Delphi-Quelltext
1:
Keys := (Key <= 42and (Key >= 57);					

_________________
We are, we were and will not be.
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: Do 12.02.09 13:14 
Titel: Re: HILFE
user profile iconbaka0815 hat folgendes geschrieben Zum zitierten Posting springen:
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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 481

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: 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



BeitragVerfasst: Do 12.02.09 14:26 
Abgesehen davon sehe ich da ein logisches Problem.
Zitat:
ausblenden Delphi-Quelltext
1:
Keys := (Key <= 42and (Key >= 57);					

Das kann doch niemals eintreten :gruebel:
Sinspin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1338
Erhaltene Danke: 120

Win 10
RIO, CE, Lazarus
BeitragVerfasst: Do 12.02.09 14:39 
ausblenden 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; // wozu?
    Keys : Boolean; // wozu?
begin
Keyindex := Ord (Key); // du verwendest das doch nie!
Keys := (Key <= 42and (Key >= 57); // wozu der umweg? außerdem ist Key von Typ Char was zumindest bedeutet das ein "#" vor deine Zahl muss.
if not Keys then
Edit1.Text := ''// warum willst du den ganzen text platt machen wenn ein zeichen nicht passt?
end;
// über deine Formatierung lässt sich streiten.

// versuch es doch einfach mal so:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if not Key in ['0'..'9''+''-''*''/'then
    Key := #0// Key ist VAR also ein I/O Parameter. Liefert man Key = #0 zurück wird die Eingabe ignoriert
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 Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 13.02.09 02:36 
Was hast du gemacht? :lol:
Deinen aktuellen Code, in dem der Fehler auftritt, musst du schon dazuschreiben. ;-)
Marco117 Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 50

Win XP, Vista
Delphi 7, Delphi 2006
BeitragVerfasst: Fr 13.02.09 10:39 
ausblenden 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



BeitragVerfasst: Fr 13.02.09 10:44 
Nur als Anmerkung: über die Zwischenablage bekommt man aber immer noch andere Zeichen hinein.
Marco117 Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Fr 13.02.09 10:48 
danke für die schnelle Antwort und es klappt :):)

endlich nach mittlerweile 3 tagen ^^

mfG Marco