abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 
abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 

Wir schätzen Ihren Input!
Bitte nehmen Sie an der Umfrage zu Archicad 28 Startbildschirm und Lerninhalte/Schnell-Tutorials teil

Programmierung
Alles über Programmierung in GDL und Python

Tabelle

Hmooslechner
Moderator
Ein anderse Beispiel zur Textverwendung
wäre eine Tabelle, bei der sich die
angegebenen Werte selber zur Summe addieren.

beigefügt ein Beispiel aus meinen Archicad 5.5 er Tagen:

Bei diesem Ding wird die Größe der Tabelle über
das Userinterface - Textgröße gesteuert.

Tabellenteil - rechte Maustaste

Vergeßts die Kritik über das Userinterface - war damals eines der ersten Versuche damit..

Da gehts eher um das raussuchen der maximalen Zeichenbreite, das Anzeigen nur bestimmter Zeilen usw.
AC5.5-AC27EduAut, PC-Win10, MacbookAirM1, MacbookM1Max, Win-I7+Nvidia
24 ANTWORTEN 24
andreaszeike
Newcomer
Das ist ein feines Objekt, das! Nützlich!

folgende Frage fällt mir dazu ein:

wie kann man eine solche Konstruktion ma besten vereinfachen?

if oft=1 then Summe=(z1)*100
if oft=2 then Summe=(z1+z2)*100
if oft=3 then Summe=(z1+z2+z3)*100
if oft=4 then Summe=(z1+z2+z3+z4)*100

Ich würde ja gern eine FOR-TO Schleife bilden, aber...
:confused:

Gruß, az
Hmooslechner
Moderator
Wenn man Parameternamen berechnen könnte... :sauer:
AC5.5-AC27EduAut, PC-Win10, MacbookAirM1, MacbookM1Max, Win-I7+Nvidia
andreaszeike
Newcomer
Ja!! geht aber nicht, was? Ich glaub, ich hab das irgedwann mal gemacht, vor Jahren... war das T-Pascal?? Basic? ich weiss es nicht mehr. Oder Excel: gib mir die Summe von A22 bis A89...

Aber vielleicht weiß Joachim noch einen Rat?

Gruß, az
Bernhard Binder
Graphisoft Partner
Graphisoft Partner
man muss das in einem Array machen!
zuerst z definieren mit zB
</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">Code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">dim z [20]und dann kann man die Array-Nummer sehr wohl mit einem Paramter angeben:

</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">Code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">for i=1 to 20
if oft=i then
for j=1 to i
Summe=Summe+(z[j])*100
next j
endif
next iOder viel eleganter ist es auf IF-THEN und FOR-NEXT zu verzichten und das ganze mit DO-WHILE zu machen:
</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">Code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">i=1
DO
summe = summe+(z)*100
i = i + 1
WHILE i <= oftoder alternativ mit REPEAT-UNTIL:
</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">Code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">i = 1
REPEAT
summe = summe+(z)*100
i = i + 1
UNTIL i > oftje nach Geschmack. GDL bietet halt für jeden was 😉
AC4.5-AC28 AUT, GER, INT www.a-null.com
Hmooslechner
Moderator
Hallo Bernhard!

Danke für deine so locker und leicht erscheinenden Code-Beispiele. : 😛

Mich schauderts nur, wenn ich den Zeitpunkt Deiner Eintragung sehe... 00:33 - brr
AC5.5-AC27EduAut, PC-Win10, MacbookAirM1, MacbookM1Max, Win-I7+Nvidia
Hmooslechner
Moderator
Hallo Bernhard!

Bei Deiner Methode mußt Du aber auch im Parameter-script angeben, welche einzelnen Werte in den Indizes vergeben sind:

</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">Code:</font><hr /><pre style="font-size:x-small; font-family: monospace;"> PARAMETERS z[1]=z1 z1=als Parameter = im Interface definiert..

(Eine direkte Eingabe der Ansammlungswerte kann man dem User nicht zumuten, weil er dann für jeden Wert mit der Maus hinzeigen muß, dann wieder in das Eingabefeld zeigen muß um einen neuen Wert einzugeben. - Statt direkt in der Ansammlungstabelle Werte einzugeben. )
Der Schreibaufwand bleibt annähernd derselbe.
AC5.5-AC27EduAut, PC-Win10, MacbookAirM1, MacbookM1Max, Win-I7+Nvidia
Bernhard Binder
Graphisoft Partner
Graphisoft Partner
</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">Zitat:</font><hr /><font size="2" face="Verdana, Helvetica, sans-serif">Original erstellt von Heimo:
Mich schauderts nur, wenn ich den Zeitpunkt Deiner Eintragung sehe... 00:33 - brrund wenn ich 06:55 bei dir sehe, dann denke ich nur: <img src="http://www.smilies.at/sonstiges/smiley74.gif" alt=" - " />
AC4.5-AC28 AUT, GER, INT www.a-null.com
andreaszeike
Newcomer
Jedenfalls klasse! Mir völlig egal, um welche Uhrzeit diese genialen Vorschläge kommen!!

Ich hatte auf so eine Lösung gehofft, werd´s gleich mal austesten!! sieht guuut aus!

Gruß, az
Bernhard Binder
Graphisoft Partner
Graphisoft Partner
Ich habe einen Blödsinn geschrieben!
statt
</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">Code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">for i=1 to 20
if oft=i then
for j=1 to i
Summe=Summe+(z[j])*100
next j
endif
next ikann man natürlich viel einfacher folgendes schreiben:
</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">Code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">for i=1 to oft
Summe=Summe+(z)*100
next idas kommt davon, wenn man unbedingt einen vorhandenen Code in eine Schleife packen will, ohen es nochmal neu zu behirnen :verzweifelt:
AC4.5-AC28 AUT, GER, INT www.a-null.com