![]() |
2 Probleme....
Hi, also problem 1: möchte einen taschenrechner programmieren bei dem man die rechnung in ein editfeld eingibt und das tool das dann rechent. beispiel: man gibt '8*(3+5)' ein und dann gibt das tool 64 aus.
Problem 2: es ist mir schon öfters vorgekommen dass ich um die 20 labels ändern musste und da hab ich immer folgendes gemacht: label1.caption... label2.caption... .. label20.caption... kann man das nicht schneller machen? So auf die art for i:=1 to 20 do label[i].caption.. oder so, bin ratlos MFG NightFox |
Re: 2 Probleme....
Bitte nur eine Frage pro Thread. Editiere also deinen Beitrag bitte so um und erstell für deine 2. Frage einen eigene Thread.
|
Re: 2 Probleme....
Delphi-Quellcode:
(FindComponent('Label'+IntToStr(i)) as TLabel).Caption:='huhu'
|
Re: 2 Probleme....
Zitat:
Delphi-Quellcode:
schneller bzw. schöner
MyLabels : array[1..20] of Tlable
BTW: "lösche" lieber die erste Frage sonst müssen wir alle Antworten ändern :stupid: |
Re: 2 Probleme....
Hallo,
zu Deinem 2. Problem. Deine Idee war schon mal nicht schlecht :-) Hier eine Lösung (ungetestet):
Delphi-Quellcode:
Grüsse,
for i := 1 to 20 do (findcomponent('label' + inttostr (i))as tlabel).caption := 'Das ist label Nr. ' + IntToStr(i);
SCRaT EDIT: Ohhh, da waren grad einige schneller als ich :-) EDIT2: Source verbessert, danke an fLaSh11 :-) |
Re: 2 Probleme....
scrat du hast eine Klammer vor FindComponent vergessen!
|
Re: 2 Probleme....
Als Ergänzung zu Jelly noch folgendes: Ändere Bitte Deinen Titel in was Aussagekräftiges!
Probleme haben hier alle. |
Re: 2 Probleme....
Zum 1.Problem:
Du musst die Gleichung (8+...) parsen. Das heißt sie rekursiv auseinandernehmen. Und danach alles von innen nach außen ausrechnen :)... Hier ist ein sehr schönes Beispiel: ![]() |
Re: 2 Probleme....
bzw.: man muss die array-labels nicht zur laufzeit erzeugen ... es reicht vollkommen, wenn man sie einmalig (onCreate oder so) zuweist (label[1] := Label1, ...) und danach kann man sie einfach über Label[1].Caption ansprechen.
|
Re: 2 Probleme....
Ok vielen dank!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:25 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz