![]() |
Schleife
hab heute schon so viele dumme ´Fragen gestellt dann kommts auf die letzte auch nicht mehr an
Wie kann ich die zeilen auch noch hochzählen lassen
Delphi-Quellcode:
//====================Desks Umbennen============================================
procedure TForm1.desk0Bis4Umbenennen; var zahl,zahl2,a, i : integer ; desk0 : String; Desk: array [0..99] of String; begin zahl := StrToInt (Edit1.text) ; zahl2 := StrToInt (Edit3.text) ; desk0:= ('DESK-0' +' = TASK(' + Edit1.text + ') LPT(PP0) WX() WY() FONT() TITLE('+ Edit2.Text + ') START(pw)'); for i:=0 to zahl2 do begin zahl:=zahl +1 ; Desk[i]:=('DESK-' +(IntToStr (i +1))+' = TASK(' + (IntToStr (zahl)) + ') LPT(PP0) WX() WY() FONT() TITLE('+ Edit2.Text + ') START(pw)'); for a:= 38 to zahl2 do begin Memo2.Lines[a]:= desk[i]; end; end; Memo2.Lines[37]:=(desk0); end; |
Re: Schleife
warum nimmst du nicht
Memo2.Lines[i+38]:= desk[i]; ? |
Re: Schleife
das geht doch so nicht oder
Die zeile 37 ist festgelegt danach soll die zeilen und die desks erhöht werden also ab zeile 38 und nur so hoch zählen wie die eingabe im edit3 ist |
Re: Schleife
Sorry, aber ich verstehe nicht was du erreichen willst. Bitte bemühe dich klar zu äußern:
1. Was soll der Code tun 2. Was klappt nicht/Wo liegt das Problem. Ich nehme an (der Kristallkugel sei dank) dass du von 0 bis zahl2 den Desk[i] ändern möchtest und das Ergebnis im Memo speichern möchtest, und zwar ab Zeile 38. Also wenn i=0, dann in Zeile 38, bei i=1 Zeile 39 usw. Deswegen kannst du in jedem Schleifendurchlauf einfach auf Memo2.Lines[i+38] zugreifen. |
Re: Schleife
Also eigentlich will ich genau das erreichen
so habe ich es jetzt per hand mal gemacht und das in einer schleife so hoch wie Edit3 ist
Delphi-Quellcode:
Memo2.Lines[37]:=(desk0);
Memo2.Lines[38]:= desk[0]; Memo2.Lines[39]:= desk[1]; Memo2.Lines[40]:= desk[2]; Memo2.Lines[41]:= desk[3]; Memo2.Lines[42]:= desk[4]; Memo2.Lines[43]:= desk[5]; Memo2.Lines[44]:= desk[6]; Memo2.Lines[45]:= desk[7]; Memo2.Lines[46]:= desk[8]; // usw. |
Re: Schleife
Und wo ist jetzt das Problem? Mach es doch mit Memo2.Lines[38+i]
|
Re: Schleife
bekomm das irgenwie net hin
Delphi-Quellcode:
hab ich es an die falsche stelle gesetzt
for i:=0 to Zahl2 do
begin zahl:=zahl +1 ; Desk[i]:=('DESK-' +(IntToStr (i +1))+' = TASK(' + (IntToStr (zahl)) + ') LPT(PP0) WX() WY() FONT() TITLE('+ Edit2.Text + ') START(pw)'); Memo2.Lines[38+i]:= desk[i]; end; Memo2.Lines[37]:=(desk0); end; |
Re: Schleife
So hatte ich mir das gedacht. Und was funktioniert daran nicht? *Kristallkugelrauskram*
|
Re: Schleife
egal welche zahl ich ins edit3 eingeben es wird nur bis 6 hochgezählt
|
Re: Schleife
Sicher? Zeig mal deinen ganzen Code dieser Stelle.
|
Re: Schleife
So hab ich es jetzt
Delphi-Quellcode:
rocedure TForm1.desk0Bis4Umbenennen;
var zahl,zahl2,a, i : integer ; desk0 : String; Desk: array [0..99] of String; begin zahl := StrToInt (Edit1.Text) ; zahl2 := StrToInt (ComboBox3.Text) ; desk0:= ('DESK-0' +' = TASK(' + Edit1.Text + ') LPT(PP0) WX() WY() FONT() TITLE('+ Edit2.Text + ') START(pw)'); for i:=0 to Zahl2 do begin zahl:=zahl +1 ; Desk[i]:=('DESK-' +(IntToStr (i +1))+' = TASK(' + (IntToStr (zahl)) + ') LPT(PP0) WX() WY() FONT() TITLE('+ Edit2.Text + ') START(pw)'); Memo2.Lines[38+i]:= desk[i]; end; Memo2.Lines[37]:=(desk0); end; |
Re: Schleife
Hat dein Memo auch genug Zeilen?
Weil sonnst scheint der Code ok zu sein ... Thorben |
Re: Schleife
ich habe dem memo scrollbars gegeben
|
Re: Schleife
Du schreibst oben etwas von Edit3, fragst aber Edit1 ab :gruebel:
|
Re: Schleife
Ich habe jetzt eine ComboBox gesetzt mit der ich den Schleifendurchlauf Steuer
Delphi-Quellcode:
und Edit1 erweitert nur die zahl im Taskzahl2 := StrToInt (ComboBox3.Text) ; for i:=0 to Zahl2 do
Delphi-Quellcode:
zahl := StrToInt (Edit1.Text) ; TASK(' + (IntToStr (zahl)) |
Re: Schleife
Hmm... dann sehe ich auf den ersten Blick auch nichts weiter. Aber wieso nimmst Du ein statisches Array, wenn Du die Anzahl der Elemente nicht kennst?
|
Re: Schleife
das sollte eigentlich nur ein kleines Projekt werden das jetzt schon ausgeartet ist und ich wollte eigentlich nicht soviel aúfwand betreiben.
Mich ärgert es jetzt schon das diese Schleife nicht geht. |
Re: Schleife
Liste der Anhänge anzeigen (Anzahl: 1)
Vielleicht will sich das ja mal jemand angucken und einer findet den Fehler keine Angst das Programm ändert nichts am system es erzeugt ledigtlich nur eine datei
|
Re: Schleife
In einem schnell dahingeschriebenen Projekt funktioniert Dein Code. Wenn ich Dein Projekt öffne, kann ich die Edits nicht fokussieren (hab den Grund auf die Schnelle nicht herausgefunden).
|
Re: Schleife
Du musst zuerst oben auf den Linken Button drücken dann wir die GroupBox freigegeben
|
Re: Schleife
---------------------------
Medistar_updater --------------------------- Datei C:\Dokumente und Einstellungen\Fukner\Desktop\Mediestar_Updater\Dat eisysconfs\Sysconf.S kann nicht geöffnet werden. Das System kann den angegebenen Pfad nicht finden. --------------------------- OK --------------------------- |
Re: Schleife
Liste der Anhänge anzeigen (Anzahl: 1)
Danke hab ich garnicht gesehen habs geändert
|
Re: Schleife
Ich hab mal die ganzen ReadOnlys und Disables entfernt, einen Haufen Zeilen in Memo1 eingegeben und siehe da... funzt. Bist Du sicher, dass Memo1 auch genug Zeilen hat (immerhin weist Du Memo2 die Zeilen von Memo1 zu)?
[edit] Ich sehe gerade im Bezug auf Deinen anderen Thread: das Programm heißt wohl Medistar_Updater.exe ohne ie, deshalb wird die Verknüpfung nicht angelegt. [/edit] |
Re: Schleife
Ja das mit der Verknüpfung habe ich gestern auch schon gesehen und siehe das es funzt mit der verknupfung hätte mich auch gewundert denn deine Komonete ging ja vorher
Hab jetzt auch mal Memo1 ReadOnly auf True gesetzt . Die zeilen sollen aber erst imemo zwei erzeugt werden |
Re: Schleife
Du kannst in einer Stringliste (Memo.Lines) nicht einfach etwas in die i.te Zeile schreiben. Statt
Delphi-Quellcode:
Müsstest Du
Memo.Lines[x] := Foo;
Delphi-Quellcode:
schreiben.
Procedure AddOrAppend (aLines : TStrings; Const anIndex : Cardinal; aLine : String);
Begin While aLines.Count >= anIndex Do aLines.Add(''); aLines[anIndex] := aLine; End; ... AddOrAppend(Memo.Lines,x,Foo); ... Ab Delphi 2005(?) kannst Du die Funktionalität mit einem Class Helper an die TStrings kleben, was OOP-mäßig besser ist. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:41 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