Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Warum klappt das Label nicht (https://www.delphipraxis.net/23872-warum-klappt-das-label-nicht.html)

sui 10. Jun 2004 23:58


Warum klappt das Label nicht
 
Delphi-Quellcode:
     
function CurrentUserName: String;
var
  u: array[0..127] of Char;
  sz: DWord;
begin
  sz:=SizeOf(u);
  GetUserName(u,sz);
  Result:=u;
  label1.caption := CurrentUserName;
end;
Warum zeigt er mir den Namen nicht automatisch an, ohne das ich etwas
klicken muss.

sui

dizzy 11. Jun 2004 00:08

Re: Warum klappt das Label nicht
 
Wahahaaas du da machst, ist ein Endlosaufruf dieser Funktion :!: Eigentlich dürfte dein Programm nicht mehr reagieren wenn diese Fkt. aufgerufen wird :gruebel:

Und wenn du möchtest, dass es etwas sofort nach Programmstart passiert, mach es im OnCreate von deinem Formular, oder setz den Namen fest im OI zur Designtime. So dürfte das garnicht hinhauen.

gruss,
dizzy

sui 11. Jun 2004 00:15

Re: Warum klappt das Label nicht
 
Versteh ich jetzt nicht so ganz :?:

Pseudemys Nelsoni 11. Jun 2004 00:17

Re: Warum klappt das Label nicht
 
deine funktion ist rekursiv, sie ruft sich immer wieder selbst auf:

Zitat:

label1.caption := CurrentUserName;

Luckie 11. Jun 2004 00:17

Re: Warum klappt das Label nicht
 
Bist du sicher dass deine Funktion Labe11 überhauot kennt? Sie ist ja keine Methode deiner Formklasse. Und Btw fände ich es so besser:
Delphi-Quellcode:
function UserName: String;
var
  Size: DWORD;
begin
  Size := MAX_COMPUTERNAME_LENGTH + 1;
  SetLength(Result, Size);
  if GetUserName(PChar(Result), Size) then
    SetLength(Result, Size)
  else
    Result := '';
end;

sui 11. Jun 2004 00:26

Re: Warum klappt das Label nicht
 
Hm, also ich möchte einfach ein Label oder sonst ein Feld haben,
wo gleich von Anfang an der Windows-Benutzername drin steht.
Soll eine Begrüssung werden.
Ist mir schon lange ein Rätsel, wie solche Sachen realisiert werden.
Das irgendeine Information ausgelesen, (wie auch immer) und dann in einem
Feld dargestellt wird. Kann mir das nicht mal einer unterbreiten?
Bin unterinformiert... :stupid:

Pseudemys Nelsoni 11. Jun 2004 00:28

Re: Warum klappt das Label nicht
 
wie sieht denn die function "GetUsername" aus?

wenn würde ich es so machen:

Code:
label1.caption := u;

sui 11. Jun 2004 00:30

Re: Warum klappt das Label nicht
 
Hatt ich schon, passiert nix. Vielleiht hab ich auch wieder mal
alles grundlegend falsch.

Luckie 11. Jun 2004 01:12

Re: Warum klappt das Label nicht
 
Delphi-Quellcode:
type
  TForm1 = class(TForm)
    Label1: TLabel;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function UserName: String;
var
  Size: DWORD;
begin
  Size := MAX_COMPUTERNAME_LENGTH + 1;
  SetLength(Result, Size);
  if GetUserName(PChar(Result), Size) then
    SetLength(Result, Size)
  else
    Result := '';
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Label1.Caption := UserName;
end;
Ein paar Grundlagentutorials / -bücher wären wohl nicht schlecht. ;)

sui 11. Jun 2004 01:25

Re: Warum klappt das Label nicht
 
Hach wie doof, doppelt aufs Formular und dann caption :=!!!
Warum hat mich denn keiner an den Doppelklick aufs Formular
gebracht, dann hätt ichs wieder gehabt. :mrgreen:

Hat grad ne andere Lösung mit der Timer-Komponente :mrgreen: :mrgreen:

Danke Luckie, aber ich lass mir meinen Namen lieber alle 1000ms neu generieren. *lol

dizzy 11. Jun 2004 02:39

Re: Warum klappt das Label nicht
 
:gruebel: du ...naja, ich weiss nicht wie ich's sagen soll... du redest wirsche Dinge :oops:

Doppelclick? Aufs Formular!? Ein Timer!? Alle 1000ms nen quasi statischen Wert abfragen!? Ein Timer war sicher NICHT die Lösung - eher die Umbauten die durch dessen Einsatz nötig waren... Ich habe ehrlich gesagt den Eindruck, dass du nicht wirklich weisst, was du tust (sorry, aber so scheint es mir). Ich würde da Luckies Rat beherzigen, und mich zunächst mal eingehend mit a) Literatur zu Delphi/Programmierung allgemein, und b) Tutorials auseinandersetzen. Zu beidem findest du hier in der DP reichlich Links und Empfehlungen.
Und mir kommt es zusätzlich so vor, als redest (naja, schreibst) du z.T. von Dingen, die du uns noch garnicht erzählt hast. Demnächst vielleicht ein paar mehr Randinfos und Erklärungen zu dem was überhaupt passieren soll geben, es wäre den potentiellen Antwortern sicher sehr dienlich ;)

Ich würd's so machen wie Luckie. Das ist sauber und effizient.

MfG,
dizzy

:angle:


\\edit: those tags drive me crazy one day...

sui 11. Jun 2004 04:05

Re: Warum klappt das Label nicht
 
Ich erklärs euch spääääter, bin zu grad zu kaputt um sinnvolle Zusammenhänge zu posten :duck:


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:04 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