![]() |
variable felder, string aufspalten,....
hi
ich arbeite zur zeit an einem infoprojekt und könnte etwas hilfe gebrauchen^^ also....ich hab eine globale variable z vom typ integer. die wird auf formular 1 eingegeben. z muss zwischen 10 und 100 liegen und ungerade sein. soweit funktioniert alles wunderbar. jetzt möchte ich das jede zahl von 1 bis z in einem extra feld ausgegeben wird (bin mir noch nicht ganz sicher ob ich besser ein label oder statictext nehmen sollte?). mein problem ist ich weiß nicht wie ich das am besten mache. die zahlen sollten dabei in ziffern aufgespalten werden. also das z.b. bei 13 nicht ein feld mit 13 drin dasteht sondern ein feld mit 1 und ein feld mit 3. wär total nett wenn ihr mir sagen könntet wie ich das am besten auf die reihe kriege. ich hab delphi 7 falls das wichtig sein sollte. danke im voraus -web |
Re: variable felder, string aufspalten,....
Du könntest die Zahl in einen String umwandeln (brauchts du wahrscheinlich sowieso, um sie als Text ausgeben zu können) und den String dann mittels der Funktion "copy" in seine Teile zerlegen. Geht vielleicht auch einfacher, aber nur mal als Vorschlag.
Edit: Du kannst auch direkt auf ein Zeichen eines Strings zugreifen, in der Art:
Delphi-Quellcode:
Das entspräche dann dem ersten Zeichen in dem String.
MeinStringMitDerZahlDrin:=IntToStr(MeineZahl);
Label1.Caption:=MeinStringMitDerZahlDrin[1]; Guido |
Re: variable felder, string aufspalten,....
kleines Schnippsel, was du dir dann zurechtbiegen könntest
Delphi-Quellcode:
Macht nichts anderes, als die einzelnen Ziffern einer Zahl in ein Label zu schreiben...
s := inttostr(zahl); // s ist eine Stringvariable
for i := 1 to length(s) do label1.caption := label1.caption + s[i]+' '; Edit: komische Formatierung... |
Re: variable felder, string aufspalten,....
also....das hab ich grad ausprobiert...danke für den hinweis :)
aber mein prob ist noch....wie krieg ich das prog dazu mir alle zahlen von 1 bis z auszugeben? bis jetzt krieg ich immer nur z raus....bin noch immer für jede hilfe dankbar^^ (sry, blutiger anfänger.....) [edit] btw....aber eigentlich ist mein problem nicht die zahlen in ein label zu kriegen sondern in einzelne. ich glaub in einem label kann ich die danach nicht gut weiterverwenden. ich habe auch überlegt ein array zu erstellen. geht das überhaupt mit einer variable? [/edit] -web |
Re: variable felder, string aufspalten,....
Delphi-Quellcode:
[Edit: in einzelnen Labels:]
if TryStrToInt( s, z) then
for i := 1 to z do s2 := s2 + IntToStr(i) + ' ';
Delphi-Quellcode:
[/Edit]
with TLabel.Create( Form) do
begin Parent = Form; left := i*20; Top := 100; Name := 'Label'+IntToStr(i); Caption := IntToStr(i); end; |
Re: variable felder, string aufspalten,....
Hallo,
da bei z = 99 nicht gut alle Zahlen in einer Zeile angezeigt werden können, zielt alles auf eine zweidimensionale Darstellung hin. Dabei könnte die Komponente TStringGrid (Palettenseite "Zusätzlich") ganz hilfreich sein. Grüße vom marabu |
Re: variable felder, string aufspalten,....
Hallo Achim,
du hast natürlich recht, wir das das auch bewußt, der Code sollte ihm aber zum Verständnis reichen. |
Re: variable felder, string aufspalten,....
Also möchtest du jede Zahl in ein Label schreiben (von 1 bis z) oder nur in ein Label (1, 2, 3 ... z)?
Für das 1.: Zuerst brauchst du die Labels... Am besten in ein Array, dann sind die einfacher zu erreichen:
Delphi-Quellcode:
Nun musst du sie beim Anzeigen der Form erstellen:
var
lbls : array [0..99] of TLabel;
Delphi-Quellcode:
Diese musst du nun passend Anzeigen:
for i := 0 to 99 do
begin lbls[i] := TLabel.Create(<Besitzter>); // Das einzelne Label erstellen (Der Besitzter des Labels, ist normalerweise das Formular, und steht in der Varible "self") with lbls[i] do begin Parent := self; Top := <Y>; //Z.B.: i * 10 + 8; Der Y-Abstand => Dynamisch! Left := <X>; //Z.B.: 8; Der X-Abstand => Statisch! Visble := false; Caption := IntToStr(i + 1); end; end;
Delphi-Quellcode:
for i := 0 to z do // Alle Labels anzeigen, bis "z"
begin lbls[i].Visible := true; end; for i := z + 1 to 99 do // Den Rest ausblenden begin lbls[i].Visible := false; end; |
Re: variable felder, string aufspalten,....
danke für eure hilfe. leider kann ich die guten tipps erst am di in der schule testen wenn ich info hab. aber werdet sicher noch ne menge delphi-verzweiflung von mir zu hören kriegen^^
@xZise: ich möchte jede zahl in ein Label schreiben. und eigentlich sollten zweistellige zahlen noch aufgeteilt werden so das am ende in jedem label wirklich nur eine ziffer steht. -web |
Re: variable felder, string aufspalten,....
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:49 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 by Thomas Breitkreuz