Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Inhalt von textfeldern verarbeiten - brauche schnelle Hilfe


Riddig - Mi 27.08.08 15:58
Titel: Inhalt von textfeldern verarbeiten - brauche schnelle Hilfe
Hey Leute. ich bin Delphi Anfänger, habe früher ei9n bisschen mit Visual Basic gearbeitet, aber es gibt schon ein paar Unterschiede.

Ich bin gerade dabei soeine Art paint zu machen.

Jetzt soll jemand Zahlen in Textfelder eingeben. Diese zahlen, sollen dann die Positionen für ein Strich sein, den der PC dann in einer Imagebox zeichnen soll. ich zeigs euch mal:

im prinzip so:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TForm1.Button17Click(Sender: TObject);
begin

image1.canvas.LineTo (edit1.text,edit2.text) ;
image1.canvas.moveto (edit3.text,edit4.text) ;

end;


Wie geht das, dass delphi diese Infos aus dem Textfeld verarbeiten kann? Ich ahne nur von VB5, dass man irgendwo eine Deklaration vornehmen muss...aber keine Ahnung.

Moderiert von user profile iconTino: Delphi-Tags hinzugefügt


Marc. - Mi 27.08.08 16:01

Delphi unterscheidet strikt zwischen unterschiedlichen Typen. Daher musst Du den Text mit Hilfe von StrToInt (String To Integer) erst entsprechend umwandeln. ;)
Das Gegenteil wäre IntToStr. Für Fließkommazahlen heißt lauten die Begriffe FloatToStr bzw. StrToFloat.


Riddig - Mi 27.08.08 16:18

ok danke, das habe ich soweit verstanden, aber wo wandle ich das um also wo setze ich dieses StringtoInteger denn um???? und wie genau heißt dieser befehl??


elundril - Mi 27.08.08 16:22

du suchst dir einfach einen string aus (zeichenkette) und setzt den in klammern. davor schreibst du noch IntToStr. IntToStrDef schaut ob man den string umwandeln kann, wenn nicht, dann nimmt es die zahl die du als zweiten parameter angegeben hast.

und aussehen tut das ganze ungefähr so:


Delphi-Quelltext
1:
2:
3:
4:
5:
procedure TForm1.Button17Click(Sender: TObject); 
begin 
image1.canvas.LineTo(IntToStrDef(edit1.text, 0),IntToStrDef(edit2.text, 0)) ; 
image1.canvas.moveto(IntToStrDef(edit3.text, 1),IntToStrDef(edit4.text, 1)) ; 
end;


lg elundril


Marc. - Mi 27.08.08 16:22
Titel: Re: Inhalt von textfeldern verarbeiten - brauche schnelle Hilfe
In Deinem Beispiel so:

Delphi-Quelltext
1:
2:
3:
4:
5:
procedure TForm1.Button17Click(Sender: TObject);
begin
  image1.canvas.LineTo (IntToStr(edit1.text), IntToStr(edit2.text));
  image1.canvas.moveto (IntToStr(edit3.text), IntToStr(edit4.text));
end;

Ich empfehle Dir übrigens zum einen eine Paintbox zu nehmen, die für solche Dinge auch da ist (Images dienen zum anzeigen statiger Bilder) und zum anderen mal einen Blick in das Tutorial [http://christian-stelzmann.de/index_tutorials_crashkurs.html] von unserm user profile iconChristian zu werfen. ;)


Riddig - Mi 27.08.08 16:29

okay, vielen vielen dank für die schnelle hilfe klappt alles