Arsip: Popup Menu ??

 
user image
more 13 years ago

Grandong

Mas-mas & mbak-mbak yang sering nongkrongin forum ini, saya nanya ya... :oops: , Gini, gimana caranya bikin popup menu yang bisa berubah-ubah sewaktu run time? Misalnya gini, dalam folder aplikasi saya ada beberapa file atau folder (sub folder), trus saya pingin bikin file-file tsb di akses lewat popup menu. Tapi filenya gak selalu sama, maksudnya kadang bertambah kadang berkurang kadang namanya diganti dll, nah popup menunya mengikuti perubahan tsb. Tolong ya... :lol: Makasih atas perhatiannya :oops:
user image
more 13 years ago

mas_kofa

1. untuk ganti2 popup menu (caption) pake MenuItem1.Caption := 'tulisan pengganti'; 2. tuk buat item menu MenuItemx.Create(PopupMenu1); 3. tuk menghapus MenuItemX.free; (gunakan array TMenuItem) tuk memproses file gunakan suatu rutin / procedure dengan menggunakan nama file sebagai parameter maaf kalo aku salah tangkap pertanyaan @Grandong
user image
more 13 years ago

madi


private
procedure bacafiles( apath : string );
{...}
implementation
var
  root:string;
  path:string;
  files : TStringlist;
{...}
procedure TForm1.bacafiles( apath : string );
var
  sts: Integer ;
  SR: TSearchRec;
  list: Tstringlist;
  procedure AddFile;
  begin
    list.add(sr.name);
  end;
begin
  list:=Tstringlist.create;
  files := TStringlist.create;
 //disini untuk pilihan extention Anda....
  sts := FindFirst( apath + '*.doc' , faAnyFile , SR );
  if sts = 0 then begin
      if ( SR.Name <> '.' ) and ( SR.Name <> '..' ) then begin
          if pos('.', SR.Name) <> 0 then
            Addfile;
      end;
      while FindNext( SR ) = 0 do begin
          if ( SR.Name <> '.' ) and ( SR.Name <> '..' ) then begin
              //Put User Feedback here if desired
               Application.ProcessMessages;
              if Pos('.', SR.Name) <> 0 then  Addfile;
          end;
      end;
  end ;
  FindClose( SR ) ;
  list.sort;
  files.assign(list);
  list.free;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
  i       : integer;
  newItem : TMenuItem;
begin
    root:= ExtractFilePath(ParamStr(0));
    path:=root+'data';
    bacafiles(path);
        for i := 0 to files.Count -1 do
        begin
          try
            NewItem := TMenuItem.Create(PopupMenu1);
            NewItem.Caption := files.Strings[i];
            PopupMenu1.Items.Insert(0, NewItem);
            next;
           except
             NewItem.Free;
           raise; { reraise the exception }
        end;
       end;
end;
Semoga bisa menjadi salah satu solusi :D
user image
more 13 years ago

Grandong

yup... Tengkyu sensei... :D Dah saya coba & berhasil tampil berdasarkan file yang ada. Sip... :D :D Tapi boleh minte tambahan petunjuknya ya mas... :oops: Gimana caranya biar kalo di klik popup menunya, trus filenya bisa kebuka. :D :oops: Makasih atas perhatiannya. :)
user image
more 13 years ago

DelphiExpert

ngelanjutin...

begin
...
NewItem := TMenuItem.Create(PopupMenu1);
NewItem.Caption := files.Strings[i];
NewItem.OnClick:= FileItemClick;
PopupMenu1.Items.Insert(0, NewItem);
...
end;
procedure TXXForm.FileItemClick(Sender: TObject);
begin
  // nama file ada di TMenuItem(Sender).Caption
  ShellExecute(0, ... PAnsiChar(TMenuItem(Sender).Caption) ...);
end;
user image
more 13 years ago

madi

hmm...lha ini dah dijawab ama mas delphiexpert...:D
user image
more 13 years ago

madi

sekedar tambahan supaya @Grandong jelas :D

uses ShellApi;
{...}
private
 procedure FileItemClick(Sender: TObject);
{...}
procedure TForm1.FileItemClick(Sender: TObject);
begin
   root:= ExtractFilePath(ParamStr(0));
   path:=root+'data';
   ShellExecute(Handle, PChar('OPEN'),PChar(Path + TMenuItem(Sender).Caption), Nil, Nil, SW_SHOW);
end;
PERINGATAN PEMERINTAH : Supaya popup menunya bisa dieksekusi, properti PopupMenu1.AutoHotKeys -nya di buat maManual....
more ...
  • Pages:
  • 1
Share to

Random Topic

Local Business Directory, Search Engine Submission & SEO Tools FreeWebSubmission.com SonicRun.com