Avatar billede emptry Nybegynder
19. december 2009 - 00:41 Der er 5 kommentarer og
1 løsning

Vil have vist noget i label

procedure Tmainform.Label7Click(Sender: TObject);
function GetCurrentUserName: string;
const
  cnMaxUserNameLen = 254;
var
  sUserName: string;
  dwUserNameLen: DWORD;
begin
  dwUserNameLen := cnMaxUserNameLen - 1;
  SetLength(sUserName, cnMaxUserNameLen);
  GetUserName(PChar(sUserName), dwUserNameLen);
  SetLength(sUserName, dwUserNameLen);
  Result := sUserName;
end;
begin
  Label7.Caption := function(GetCurretUserName);
end;

^^^Hvorfor kan jeg ikke få den til at vise functions result i min label ?
Avatar billede emptry Nybegynder
19. december 2009 - 01:03 #1
Har fået det til at virke ..

Men kan man ikke gøre sådan man ikke behøver at klikke på label7 men at den bare viser det i label 7 :)
Avatar billede pej-delphi Nybegynder
19. december 2009 - 08:05 #2
Nu er det ganske vist længe siden jeg har lavet noget i Delphi, men selvfølgelig kan du det.
Den funktion du har erklæret har du jo netop lagt på eventet label7_click. Du kan ivirkeligheden lægge funktionen på et hvilken som helst event.
Det skal også være muligt at få udført funktionen i forbindelse med selve opstarten af programmet.
Du skriver jo allerede i dit hovedprogram label7.caption:= osv.
Den linie ville jeg da debugge hvis jeg var dig.
Lad mig høre fra dig, hvis du har behov for mere konkret hjælp.
Hvilken Delphi version bruger du?
Hvis jeg låner koden og får helt konkret at vide hvad du vil, kan jeg godt rette det til for dig.
mvh
Poul-Erik
PE Programmering PC
Avatar billede vallemanden Nybegynder
19. december 2009 - 11:00 #3
du ligger bare din kode i onShow på din form
Avatar billede vallemanden Nybegynder
19. december 2009 - 11:02 #4
procedure TForm2.FormShow(Sender: TObject);
function GetCurrentUserName : string;
const
  cnMaxUserNameLen = 254;
var
  sUserName: string;
  dwUserNameLen: DWORD;
begin
  dwUserNameLen := cnMaxUserNameLen - 1;
  SetLength(sUserName, cnMaxUserNameLen);
  GetUserName(PChar(sUserName), dwUserNameLen);
  SetLength(sUserName, dwUserNameLen);
  Result := sUserName;
end;begin
  Label7.Caption:=GetCurrentUserName;
end;
Avatar billede ibhe Novice
21. december 2009 - 07:34 #5
Du kan vise ændringen ved at skrive følgende:

....
begin
  Label7.Caption:=GetCurrentUserName;
  label7.invalidate;
end;

Invalidate får windows til at "repainte" din label. Jeg bruger det tit hvis jeg har en tæller der løbende skal opdateres for at vise brugeren at der "sker" noget i programmet.
Avatar billede vallemanden Nybegynder
21. december 2009 - 09:31 #6
nu har man jo ikke ikke brug for at refreshe brugernavnet, eftersom det aldrig ændre sig
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester