Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi variable felder, string aufspalten,.... (https://www.delphipraxis.net/87477-variable-felder-string-aufspalten.html)

webtiger 6. Mär 2007 10:44

Re: variable felder, string aufspalten,....
 
ja. das ist mir so langsam auch klar geworden^^ aber jetzt hab ich das prog angefangen, jetzt will ich es auch fertig kriegen *g* naja, und ich hab noch max. 3 infostunden. aber wird schon....


-web

webtiger 6. Mär 2007 11:26

Re: variable felder, string aufspalten,....
 
mal noch ne kleine frage hierzu:

Delphi-Quellcode:
   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);
ich krieg es nur hin das die zahlen untereinander stehen. wie kann ich programmieren, dass 9 labels in einer reihe stehen?


-web

marabu 6. Mär 2007 12:10

Re: variable felder, string aufspalten,....
 
Hallo,

das Prinzip ist einfach:

Delphi-Quellcode:
function LabelToPoint(lbl: TLabel; index: Integer): TPoint;
const
  MarginLeft = 20;
  MarginTop = 30;
  LabelCols = 9;
  VertGap = 8;
  HorzGap = 8;
begin
  Result := Point(
              MarginLeft - HorzGap + (index mod LabelCols) * (lbl.Width + HorzGap),
              MarginTop - VertGap + (index div LabelCols) * (lbl.Height + VertGap)
            );
end;
Die Konstanten kannst du an deine Bedürfnisse anpassen. Das Ergebnis liefert die Top und Left für Label[i] in Y und X - wenn ich keinen Fehler eingebaut habe.

Grüße vom marabu

webtiger 7. Mär 2007 11:22

Re: variable felder, string aufspalten,....
 
danke für die hilfe. leider geht mein pc in info nicht richtig, also kann ich es erst morgen testen und euch dann weiter mit meiner unwissenheit nerven^^ danke für den tipp, werd's versuchen.
was mir grad noch einfällt: wenn in einem label z.b. 11 stehen hätte.....wie krieg ich es hin dass das in 2 label aufgespalten wird? ich würd das gerne selbst probieren aber ich hab inzwischen wegen den pc-probs richtigen zeitmangel mit meinem projekt.

wenn ich alle labels mit einer bestimmten hintergrundfarbe kopieren und neu einfügen möchte mach ich das über copy, oder?

danke für eure hilfe.


-web

TonyR 7. Mär 2007 13:10

Re: variable felder, string aufspalten,....
 
Zitat:

Zitat von webtiger
....wie krieg ich es hin dass das in 2 label aufgespalten wird? ...

im Prinzip musst du jetzt nur das anwenden, was z.B. in Beitrag #3 oder #5 geschrieben wurde!
Dafür könntest prüfen, ob der in einen String umgewandelte Wert mehr als eine Stelle hat oder ob der vorherige Integer größer als 9 ist.

Zitat:

Zitat von webtiger
...ich würd das gerne selbst probieren aber ich hab inzwischen wegen den pc-probs richtigen zeitmangel mit meinem projekt....

Warum arbeitest du nicht ein bisschen zu Hause daran??? Lade dir TurboDelphi, D7 PE, D6 PE oder D2005 PE herunter und probier ein bisschen rum!

Zitat:

Zitat von webtiger
...wenn ich alle labels mit einer bestimmten hintergrundfarbe kopieren und neu einfügen möchte mach ich das über copy, oder?...

:?: Willst du jetzt doch labels schon im Designer erschaffen? Vorher war doch noch die Rede von einer Erstellung zur Laufzeit!?
Um die Frage zu beantworten, im Prinzip JA, denke ich (wenn ichs richtig verstanden habe, was du vorhast).

webtiger 13. Mär 2007 10:50

Re: variable felder, string aufspalten,....
 
Zitat:

Zitat von TonyR
Warum arbeitest du nicht ein bisschen zu Hause daran??? Lade dir TurboDelphi, D7 PE, D6 PE oder D2005 PE herunter und probier ein bisschen rum!

danke für den tipp. wusste garnicht das es delphi zum runterladen gibt. danke, werd mir das programm gleich mal als mail schicken und dannzu hause dran arbeiten. danke :)

Zitat:

Zitat von TonyR
:?: Willst du jetzt doch labels schon im Designer erschaffen? Vorher war doch noch die Rede von einer Erstellung zur Laufzeit!?
Um die Frage zu beantworten, im Prinzip JA, denke ich (wenn ichs richtig verstanden habe, was du vorhast).

ja, ich will die labels zur laufzeit erstellen und dann sollen sich durch anklicken von 2 bestimmten labels die labels schwarz färben. ich hab da vllt. noch etwas hohe ansprüche dran^^ aber wird schon funzen am ende....


-web

webtiger 15. Mär 2007 10:13

Re: variable felder, string aufspalten,....
 
sry, ich glaub ich bin inzwischen die blödheit in person....
ich krieg das string teilen und in 2 labels ausgeben einfach nicht auf die reihe. ich hab jetzt insgesamt in der prozedur stehen:

Delphi-Quellcode:
procedure tform1.geben;
var
    i : integer;
    s : string;
lbls : array [0..99] of TLabel;
begin
               
with unit2.form2 do begin

for i := 0 to 99 do
begin
  lbls[i] := TLabel.Create (form2); // Das einzelne Label erstellen (Der Besitzter des Labels, ist normalerweise das Formular, und steht in der Varible "self")
  with lbls[i] do begin
    Parent := form2;
    Top := i*19 ; //dynamischer y-abstand
    Left := 19; //statischer x-abstand
    Visible := false;
    Caption := IntToStr(i + 1);
  end;
end;

for i := 0 to z do // labels bis z anzeigen
begin
  lbls[i].Visible := true;
end;
for i := z to 99 do // anderen labels nicht anzeigen
begin
  lbls[i].Visible := false;
end;

if i>9 then begin
   s := inttostr(i);


end;

spielen;

end;
end;
ich kriegs einfach nicht auf die reihe so weiter zu machen das ich die zahlen die größer als 9 sind in 2 benachbarten labels auszugeben. wie mach ich das jetzt am besten?

thx für die ganzen hilfen aber ich kriegs absolut nicht auf die reihe....


-web

marabu 15. Mär 2007 10:44

Re: variable felder, string aufspalten,....
 
Hallo,

angenommen du hast deine Labels bereits alle erzeugt und sie stehen in einer TComponentList bereit:

Delphi-Quellcode:
procedure ShowDigits(
  cl: TComponentList;     // Liste mit den Labels
  const number: Cardinal; // darzustellende Zahl
  var index: Integer      // erster zu verwendender Label
);
var
  s: string;
  i: Integer;
begin
  s := IntToStr(number);
  for i := 1 to Length(s) do
  begin
    TLabel(cl[index]).Caption := s[i];
    Inc(index);
  end;
end;
Getippt und nicht getestet.

Das sind so wenige Zeilen - da solltest du dir einen Zugang erarbeiten können.

Aufmunternde Grüße

webtiger 20. Mär 2007 20:20

Re: variable felder, string aufspalten,....
 
danke :)
ich hab mein projekt jetzt fertig, muss es morgen vorstellen und abgeben. danke für die ganzen hilfen :) ich schreib euch dann was bei rausgekommen ist.


-web

webtiger 29. Mär 2007 18:28

Re: variable felder, string aufspalten,....
 
nochmal ein dickes thx!
hab auf mein programm 14 punkte, also ne 1 bekommen. :)
thx an alle!!


-web


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:44 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz