Autor Beitrag
dragi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 88



BeitragVerfasst: Di 17.06.03 21:34 
Hallo,

ich bin blutiger Delphi anfänger und habe ein Problem mit folgendem code:
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Edit1Change(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  a: Char;
implementation

{$R *.dfm}



procedure TForm1.Button1Click(Sender: TObject);
begin
Edit2.Text := IntToStr(Ord(a));
end;

procedure TForm1.Edit1Change(Sender: TObject);
begin
Edit1.Text := a;
end;

end.

Ich kann nun in das erste Edit Feld(Edit1) nichts eintippen?! Wieso nicht? Ich möchte das, das eigebene Zeichen in Edit1 als ASCII in Edit2 ausgegeben wird.

Vielen Dank für eure Hilfe

Sollte ich die falsche Rubrik gewählt haben, sorry!

Moderiert von user profile iconTino: Delphi-Tags hinzugefügt. Titel geändert.
sCrAPt
Gast
Erhaltene Danke: 1



BeitragVerfasst: Di 17.06.03 23:07 
Die Procedure "Edit1Change" tritt ein wenn du was in Edit1 eingibst. In der Procedure steht das der Text von Edit1 in a(Char) geändert wird. Es ist dann logisch das wenn du a nichts gegeben hast, auch nichts im Edit ist.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
procedure TForm1.Button1Click(Sender: TObject);
begin
edit2.text:=inttostr(ord(edit1.text[length(edit1.text)]));
end;
Popov
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1655
Erhaltene Danke: 13

WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
BeitragVerfasst: Di 17.06.03 23:29 
Edit1Change wird immer dann ausgeführt wenn sich in dem Feld etwas ändert. Dabei ist es egal ob durch Direkteingabe oder anders. Jedes mal also, wenn du etwas in das EditFeld eingibst, wird auch:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
procedure TForm1.Edit1Change(Sender: TObject); 
begin 
  Edit1.Text := a; 
end;


ausgeführt.

Außerdem ist a nie ein Wert zugewiesen worden. Deshalb ist es wahrscheinlich #0. Der Wert Null hat weiterhin der Effekt, daß er das Ende des Strings markiert, d.h. auch wenn du hinter dem Zeichen #0 in ein Editfeld eingibst, so wird es nicht angezeigt.

_________________
Popov
dragi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 88



BeitragVerfasst: Mi 18.06.03 00:15 
THX, also ich hab den Grund verstanden weshalb es nicht funktioniert hat. Aber warum muss ich der Function Ord auch die länge des Textes übergeben? Dafür ist doch dieses length, oder? Also die Anzahl der Zeichen!
sCrAPt
Gast
Erhaltene Danke: 1



BeitragVerfasst: Mi 18.06.03 01:11 
So edit1.text[length(edit1.text)] findet man das letzte zeichen raus.
Wenn du edit1.text[hier]eine Position angibst, gibt die function das Zeichen an der Postition aus. (Das funktioniert auch mit Variablen:Strings)