Einzelnen Beitrag anzeigen

originalhanno

Registriert seit: 20. Feb 2006
33 Beiträge
 
#1

dynamisch den Text eines Labels ändern

  Alt 20. Mär 2006, 16:29
Hallo,
ich habe ein Problem mit dem folgenden Programm.
Ich würde gerne den Text meines Labels zur Laufzeit ändern, und habe auch schon gemerkt, dass es so wohl nicht geht..
Hilft mir jemand?

Delphi-Quellcode:
program StaticText;

{$R resource.res}

uses
  Windows,
  Messages,
  SysUtils;

  const
  ClassName = 'WndClass';
  AppName = 'Label-Demo';
  WindowWidth = 200;
  WindowHeight = 130;
  Fontname = 'MS Sans Serif';
  FontSize = -12;

const
  IDC_LABEL1 = 1;
  IDC_LABEL2 = 2;

var
  hwndLabel1: DWORD;
  hwndLabel2: DWORD;
  MyFont: HFONT;

{Fensterfunktion}
function WndProc(hWnd: HWND; uMsg: UINT; wParam: wParam; lParam: LParam):
  lresult; stdcall;
 var
   i:integer;
   ausdruck:pchar;
  //x, y : integer; //Variablen für Fensterposition
begin
  Result := 0;
  case uMsg of
    WM_CREATE:
      begin
        {Label erstellen}
        for i:=1 to 2 do
        if i=1 then ausdruck:='1';
        if i=2 then ausdruck:='2';
        begin
        hwndLabel1 := CreateWindowEx(0, 'STATIC', ausdruck,
          WS_VISIBLE or WS_CHILD, 15, 25, 160, 20, hWnd, IDC_LABEl1, hInstance,
          nil);
        end;

      end;
    WM_DESTROY: PostQuitMessage(0);
  else
    Result := DefWindowProc(hWnd, uMsg, wParam, lParam);
  end;
end;

var
  {Struktur der Fensterklasse}
  wc: TWndClassEx = (
    cbSize : SizeOf(TWndClassEx);
    Style : CS_HREDRAW or CS_VREDRAW;
    lpfnWndProc : @WndProc;
    cbClsExtra : 0;
    cbWndExtra : 0;
    hbrBackground : COLOR_APPWORKSPACE;
    lpszMenuName : nil;
    lpszClassName : Classname;
    hIconSm : 0;
  );
  msg: TMsg;

begin
  {Fenster registrieren}
  RegisterClassEx(wc);

  {Fenster anzeigen}
  CreateWindowEx(0, ClassName, AppName, WS_CAPTION or WS_VISIBLE or WS_SYSMENU,
    CW_USEDEFAULT, CW_USEDEFAULT, WindowWidth, WindowHeight, 0, 0, hInstance,
    nil);

  {Nachrichtenschleife starten}
  while GetMessage(msg,0,0,0) do
  begin
    TranslateMessage(msg);
    DispatchMessage(msg);
  end;

  ExitCode := msg.wParam;
end.
  Mit Zitat antworten Zitat