Autor Beitrag
xilos
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 59



BeitragVerfasst: Di 28.11.06 18:33 
hallo...ich habe mal wieder ein problem und zwar habe ich ein labelfeld und darin sind "..." vorhanden. darin soll jetzt aber ein ergebniss aus einem editfeld übernommen werde!!!
(die punkte in dem satz sollen in das ergebniss umgewandelt werde, nicht der komplette satz ^^)
geht das mit irgend so ner funktion die format string heißt??
und wenn ja...wie geht das?? :S
Coder
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1383
Erhaltene Danke: 1

WinXP
D2005 PE
BeitragVerfasst: Di 28.11.06 19:28 
Wenn ich dich richtig verstanden habe variiert die Anzahl der Punkte im Label
und du willst so viele Buchstaben im Label anzeigen wie Punkte vorhanden sind.
Mit Length zählst du die Zeichen im Label.
Mit Copy kopierst du einen Teil des Textes aus dem Editfeld.
Zu den Funktionen findest du im Forum und in der Delphi Hilfe Beispiele.

MfG
raiguen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 374

WIN 2000prof, WIN XP prof
D7EP, MSSQL, ABSDB
BeitragVerfasst: Di 28.11.06 21:48 
Moin :-)
Angenommen, das Label (bzw dessen Text) sieht so aus:
ausblenden Quelltext
1:
Du hast ... Punkte erreicht.					

dann kannst du mithilfe der Format()-Funktion bspw. das Ergbenis aus dem Editfeld so 'einbauen':
ausblenden Delphi-Quelltext
1:
2:
3:
4:
  //--wenn Ergebnis direkt aus dem Editfeld übernommen werden soll, also ein String:
  Label1.Caption := Format('Du hast %s Punkte erreicht', [Edit1.Text]);
  //--wenn eine IntegerVariable 
  Label1.Caption := Format('Du hast %d Punkte erreicht', [Ergebnis]);

Der 'Platzhalter' %s (für eine StringVariable) bzw %d (für eine ganzzahlige=IntegerVariable) wird durch den Ausdruck in der []-Klammer ersetzt.
Danny W.
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 296

Windows XP, WIN 2000
Delphi 2005 PE
BeitragVerfasst: Mi 29.11.06 10:43 
Ich hab das bis jetzt immer so gemacht:
ausblenden Delphi-Quelltext
1:
Label1.Caption := 'Du hast '+Edit1.Text+' Punkte erreicht';					


Damals mit den alten Versionen ging es noch so:
ausblenden Delphi-Quelltext
1:
Label1.Caption := 'Du hast ',Edit1.Text,' Punkte erreicht';					


Mittlerweile wurde das "," durch ein "+" ersetzt =)

mfG,
Danny

_________________
"Ich find den Fehler nicht. Der Artist wird immer als "Syntax Error" gezeigt :("
"Ach verdammt, der Artist heißt wirklich "Syntax Error" xD"


Zuletzt bearbeitet von Danny W. am Mi 29.11.06 16:09, insgesamt 1-mal bearbeitet
xilos Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 59



BeitragVerfasst: Mi 29.11.06 15:35 
wieso machst du ganz am ende eine klammer??
wo muss ich das denn einfügen auf de button den ich klicken will oder wo hin?? :S
xilos Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 59



BeitragVerfasst: Mi 29.11.06 15:40 
okay das hab ich hinbekommen ^^....(mit der lösung von raiguen...aber noch mal eine frage dazu...
er soll 2 felder zusammenrechnen..muss ich dann die beiden felder erst in strtoint umwandeln oder geht das auch ander?? weil sonst schreibt er sie ja hintereinander
Danny W.
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 296

Windows XP, WIN 2000
Delphi 2005 PE
BeitragVerfasst: Mi 29.11.06 16:07 
Die Klammern dahinter waren keine Absicht..hab das einfach so hingeschreiben ohne zu testen :P
Ich glaube du solltest dich nochmal mit den Grundlagen befassen.. denn was willst du mit einem strtoint wenn du z.B. float hast?
Aber angenommen du hast 2 edit felder und willst per button beide addieren...

ausblenden Delphi-Quelltext
1:
ergebnis:=strtoint(edit1.text)+strtoint(edit2.text);					


Natürlich auch nur wenn du ganze zahlen in den feldern stehen hast
So steht in der Variable "ergebnis" der integer wert, der sich aus dem ergebnis ergibt.

mfG,
Danny

_________________
"Ich find den Fehler nicht. Der Artist wird immer als "Syntax Error" gezeigt :("
"Ach verdammt, der Artist heißt wirklich "Syntax Error" xD"


Zuletzt bearbeitet von Danny W. am Mi 29.11.06 16:10, insgesamt 1-mal bearbeitet
raiguen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 374

WIN 2000prof, WIN XP prof
D7EP, MSSQL, ABSDB
BeitragVerfasst: Mi 29.11.06 16:09 
Moin :-)
Wenn du mehrere EingabeFelder (Edit) hast,diese zusammengezählt und das Ergebnis angezeigt werden soll, dann gibt es zwei Möglichkeiten:
1.zunächst eine lokale Integer-Variable, in der das Ergebnis aufgenommen und anschließend über einen formatierten String ausgegeben wird:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
procedure ErgebnisAusgeben;
var Ergebnis: Integer;
begin
  Ergebnis := StrToIntDef(Edit1.Text, 0) +   //Text in Integer, falls fehlschlägt nehme 0
              StrToIntDef(Edit2.Text, 0) + 
              StrToIntDef(Edit3.Text, 0);

  LabelErgebnis.Caption := Format('Du hast %d Punkte erreicht', [Ergebnis]);
end;


2. Ergebnis aus den einzelnen EditFeldern direkt im Format() ausrechnen und anzeigen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure ErgebnisAusgeben;
begin
  LabelErgebnis.Caption := Format('Du hast %d Punkte erreicht', [StrToIntDef(Edit1.Text, 0) +
                                                                 StrToIntDef(Edit2.Text, 0) + 
                                                                 StrToIntDef(Edit3.Text, 0)]);
end;
Danny W.
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 296

Windows XP, WIN 2000
Delphi 2005 PE
BeitragVerfasst: Mi 29.11.06 16:13 
raiguen: Mich würde interessieren wie du einen String mit mehreren Variablen ausgibst.

ausblenden Delphi-Quelltext
1:
 string := 'das ist der '+zahl1+' Text, der sich aus '+zahl2+' Worten ergibt wobei '+zahl3+' davon Variablen sind';					


Wie würdest du das lösen?

_________________
"Ich find den Fehler nicht. Der Artist wird immer als "Syntax Error" gezeigt :("
"Ach verdammt, der Artist heißt wirklich "Syntax Error" xD"
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 29.11.06 16:23 
ausblenden Delphi-Quelltext
1:
s := Format('das ist der %d Text, der sich aus %d Worten ergibt wobei %d davon Variablen sind', [zahl1, zahl2, zahl3]);					
Danny W.
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 296

Windows XP, WIN 2000
Delphi 2005 PE
BeitragVerfasst: Mi 29.11.06 16:32 
Hat das Vorteile das so zu lösen? Ich meine...ich würde da noch spätestens 5 Variablen durcheinander kommen :)

_________________
"Ich find den Fehler nicht. Der Artist wird immer als "Syntax Error" gezeigt :("
"Ach verdammt, der Artist heißt wirklich "Syntax Error" xD"
ZeitGeist87
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1593
Erhaltene Danke: 20

Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
BeitragVerfasst: Mi 29.11.06 16:43 
musst ihn halt dann zusammensetzen xD

_________________
Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 29.11.06 16:51 
user profile iconMantis1987 hat folgendes geschrieben:
Hat das Vorteile das so zu lösen? Ich meine...ich würde da noch spätestens 5 Variablen durcheinander kommen :)

Zum einem finde ich es übersichtlicher und zum anderen sollte man Zeichenketten sowieso nicht hard coden. Willst du deine Anwendung später mal übersetzen, musst du dir überall im Quellcode deine Zeichenketten zusammensuchen und übersetzen. Und ich garantiere dir, dass du mindestens eine vergisst oder übersiehst. Zum dem kann es niemand anders tun, da du teilweise auch, wegen der Satzstellung, deine Zeichenketten anders zusammensetzen musst.

Deswegen packe ich alle meine Stringkonstanten in eine extra Unit oder Include-Datei und definiere sie dort als Konstanten oder als Ressourcenstrings (Ressourcenstrings werden als Zeichkettentabellen in die Exe mit einkompiliert, so dass man sie auch noch nachträglich mit einem Ressourceneditor editieren könnte.):
ausblenden Delphi-Quelltext
1:
2:
resourcenstring
  rsMeineZeichenkette = 'das ist der %d Text, der sich aus %d Worten ergibt wobei %d davon Variablen sind';


ausblenden Delphi-Quelltext
1:
s := Format(rsMeineZeichenkette, [zahl1, zahl2, zahl3]);					


Jetzt hast du alles übersichtlich zusammen und kannst die Datei sogar einer Freundin zum Übersetzen geben. Sie muss nur wieder die Platzhalter an der entsprechenden Stelle im Satz einbauen. Du tauscht nur die Datei aus und kompilierst es neu. Fertig.
xilos Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 59



BeitragVerfasst: Mi 29.11.06 17:43 
noch mal ne frage raiguen^^
was bedeutet dieses DEf hinter StrToInt???
alzaimar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: Mi 29.11.06 18:19 
user profile iconxilos hat folgendes geschrieben:
noch mal ne frage raiguen^^
was bedeutet dieses DEf hinter StrToInt???

Das bedeutet, das man mit dem Cursor rauf und F1 drücken soll. :wink:

ausblenden Delphi-Quelltext
1:
StrToIntDef(MyString, NimmDieseZahlWennMyStringKeineZahlErgibt)					

_________________
Na denn, dann. Bis dann, denn.