Koristim Zeos komponente i firebird server.
Imam tabelu tblmenu sa kojom uredjujem meni na glavnoj formi, poenta svega je da se ceo meni nalazi u tabeli zato sto bih menjao pozicije i sl. dinamicki.
Code 1:
Kad pokrenem aplikaciju izvrsavam ovo:
var
M, P: TMenuItem;
ParentName, MenuName, FormName: String;
begin
FormNames := TStringList.Create;
while not tblMenu.Eof do
begin
ParentName := tblMenu.FieldByName('Parent').AsString;
MenuName := tblMenu.FieldByName('Name').AsString;
FormName := tblMenu.FieldByName('Form').AsString;
P := FindMenuItem(mnuMain.Items, ParentName);
if P = nil then
begin
P := TMenuItem.Create(mnuMain);
P.Name := ParentName;
P.Caption := P.Name;
mnuMain.Items.Add(P);
end;
M := TMenuItem.Create(mnuMain);
M.Name := MenuName;
M.Caption := M.Name;
P.Add(M);
if FormName <> '' then
begin
FormNames.Add(FormName);
M.Tag := FormNames.Count - 1;
M.OnClick := MenuClick;
end;
tblMenu.Next;
end;
Kad kliknem na neki item menija radi ovo:
Code: 2;
var
F: TForm;
C: TComponentClass;
begin
F := nil;
try
C := TComponentClass(FindClass(FormNames[TMenuItem(Sender).Tag]));
Application.CreateForm(C, F);
F.ShowModal;
finally
if Assigned(F) then
FreeAndNil(F);
end;
za Code 2 mi treba pomoc, u tabeli imam polja id, parent, nazivforme, nazivprocedure....
Code 2: samo poziva formu ali nece neku proceduru tipa
class procedure helloWorld;
begin
.....
end;
to nece, samo forma.....
Kako da nekom itemu dam putanju posto u tabeli imam polja nazivforme i nazivprocedure kao forma -> procedura ili samo forma....?
Mislim da ce me neko razumeti...
Hvala unapred!
[Ovu poruku je menjao savkic dana 04.02.2010. u 00:03 GMT+1]