Ĺadny brzuch
W Ekspercie nr 4/2006 jest super artykuł o zmianie języka w programie.
Jest on bardzo przydatny i chcę go wykorzystać.
Chciałbym jednak umożliwić wczytanie (zmianę języka) nie za pomocą (jak to ma miejsce obecnie) TMenuItem lecz np.: za pomocą TComboBox lub przynajmniej TPopupMenu. Nie chcę dodawać panelu MenuItem w swojej aplikacji...
Próbuję zmienić odwołania do komponentu TMenuItem na TPopupMenu, ale mi nie wychodzi...
Czy mógłby mi ktoś pomóc zmienić...
Nie wiem czy mogę wkleić tutaj źródło pliku lang.pas
Jeśli ktoś pomoże to proszę mnie nakierować co mam zmienić głównie w dwóch sekcjach:
procedure TJezyki.Menu(M : TMenuItem); var n : TMenuItem; i : Integer; SearchRec : TSearchRec; begin i:=1; FindFirst(fPath+'*.lng',faAnyFile, SearchRec); repeat n := TMenuItem.Create(fForm); n.Hint:=Copy(SearchRec.Name,1,Length(SearchRec.Name)-4); n.Caption:=n.Hint; if n.Hint=fName then n.Checked:=TRUE; n.Name:='MN_DYN_Jezyk_'+IntToStr(i); n.onclick:=ZmianaClick; M.Add(n); Inc(i); until FindNext(SearchRec)<>0; FindClose(SearchRec); end; procedure TJezyki.ZmianaClick(Sender : TObject); var K : TComponent; i : Integer; begin if fForm=nil then exit; fName:=TMenuItem(Sender).Hint; for i:=1 to 20 do begin K:=fForm.FindComponent('MN_DYN_Jezyk_'+IntToStr(i)); if Assigned(K) and (K is TMenuItem) then TMenuItem(K).Checked:=FALSE; end; WczytajJezyk; TMenuItem(Sender).Checked:=TRUE; end;
Dziękuję !
Użytkownik Opi edytował ten post 05 kwiecień 2006, 22:28
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Jest on bardzo przydatny i chcę go wykorzystać.
Chciałbym jednak umożliwić wczytanie (zmianę języka) nie za pomocą (jak to ma miejsce obecnie) TMenuItem lecz np.: za pomocą TComboBox lub przynajmniej TPopupMenu. Nie chcę dodawać panelu MenuItem w swojej aplikacji...
Próbuję zmienić odwołania do komponentu TMenuItem na TPopupMenu, ale mi nie wychodzi...
Czy mógłby mi ktoś pomóc zmienić...
Nie wiem czy mogę wkleić tutaj źródło pliku lang.pas
Jeśli ktoś pomoże to proszę mnie nakierować co mam zmienić głównie w dwóch sekcjach:
procedure TJezyki.Menu(M : TMenuItem); var n : TMenuItem; i : Integer; SearchRec : TSearchRec; begin i:=1; FindFirst(fPath+'*.lng',faAnyFile, SearchRec); repeat n := TMenuItem.Create(fForm); n.Hint:=Copy(SearchRec.Name,1,Length(SearchRec.Name)-4); n.Caption:=n.Hint; if n.Hint=fName then n.Checked:=TRUE; n.Name:='MN_DYN_Jezyk_'+IntToStr(i); n.onclick:=ZmianaClick; M.Add(n); Inc(i); until FindNext(SearchRec)<>0; FindClose(SearchRec); end; procedure TJezyki.ZmianaClick(Sender : TObject); var K : TComponent; i : Integer; begin if fForm=nil then exit; fName:=TMenuItem(Sender).Hint; for i:=1 to 20 do begin K:=fForm.FindComponent('MN_DYN_Jezyk_'+IntToStr(i)); if Assigned(K) and (K is TMenuItem) then TMenuItem(K).Checked:=FALSE; end; WczytajJezyk; TMenuItem(Sender).Checked:=TRUE; end;
Dziękuję !
Użytkownik Opi edytował ten post 05 kwiecień 2006, 22:28