Перейти к содержимому


Фотография
* * * * * 1 Голосов

Java Midlet Program (jmp) By Jeeb


  • Please log in to reply
94 ответов в этой теме

#41 Jeeb

Jeeb

    Специалист

  • Специалисты S
  • Сообщений: 86
  • Город:Мурманск
  • Модель телефона: Nokia 6500 Classic (Black)

Отправлено 2007-июн-24 - 18:30

Снова обнова.... К первому посту...

#42 micha

micha

    Бываю редко

  • JAVA Администраторы
  • Сообщений: 2 801
  • Город:Нет данных
  • Модель телефона: Nokia 5800 NE

Отправлено 2007-июн-24 - 19:26

Не работает кнопка "О программе"

#43 Jeeb

Jeeb

    Специалист

  • Специалисты S
  • Сообщений: 86
  • Город:Мурманск
  • Модель телефона: Nokia 6500 Classic (Black)

Отправлено 2007-июн-24 - 19:31

Не работает кнопка "О программе"


Забыл... когда переписывал код полностью... подправлю.... блин... :)

#44 micha

micha

    Бываю редко

  • JAVA Администраторы
  • Сообщений: 2 801
  • Город:Нет данных
  • Модель телефона: Nokia 5800 NE

Отправлено 2007-июн-24 - 19:56

Неплохо было бы организовать встраивание в проводник Windows, чтоб при правом щелчке на jar-файле можно было преобразовать файл прямо из контекстного меню

#45 Jeeb

Jeeb

    Специалист

  • Специалисты S
  • Сообщений: 86
  • Город:Мурманск
  • Модель телефона: Nokia 6500 Classic (Black)

Отправлено 2007-июн-24 - 20:03

Неплохо было бы организовать встраивание в проводник Windows, чтоб при пром щелчке на jar-файле можно было преобразовать файл прямо из контекстного меню


думаю над этим...

#46 =ELEMENT=

=ELEMENT=

    Консультант

  • Участники
  • Сообщений: 262
  • Город:Moscow
  • Модель телефона: SGH-X700

Отправлено 2007-июн-25 - 10:41

Прога супер! понравилось... 8)
ищем баги)

#47 bober67

bober67

    йа на солнышке лежу...

  • Специалисты S
  • Сообщений: 629
  • Город:Луганск, UA
  • Модель телефона: i740

Отправлено 2007-июн-25 - 12:20

1. Добавилось несколько колонок новых но суть то не поменялась - флажки расставлять все равно правой кнопкой нужно.
2. Меняется размер jar. Тоесть даже когда просто jad делаеш меняется размер jar. Думаю это както некорректно работает архиватор zip. (Для эксперимента в тотале добавил в архив jar папку, потом удалил ее и размер остался тотже). Я понимаю что телефону потом пофиг и он приложение запустит но неудобно когда на компе одинаковые файлы в разных местах с разными размерами лежат.
3. Нужна настройка местоположения результирующей папки.
4. Ну про контекстное меню проводника уже писали...

ps А вообще автор молодец. Сам я только критиковать чужую работу умею, а сделать что-то это не ко мне 8)

#48 Jeeb

Jeeb

    Специалист

  • Специалисты S
  • Сообщений: 86
  • Город:Мурманск
  • Модель телефона: Nokia 6500 Classic (Black)

Отправлено 2007-июн-25 - 13:50

1. Добавилось несколько колонок новых но суть то не поменялась - флажки расставлять все равно правой кнопкой нужно.
2. Меняется размер jar. Тоесть даже когда просто jad делаеш меняется размер jar. Думаю это както некорректно работает архиватор zip. (Для эксперимента в тотале добавил в архив jar папку, потом удалил ее и размер остался тотже). Я понимаю что телефону потом пофиг и он приложение запустит но неудобно когда на компе одинаковые файлы в разных местах с разными размерами лежат.
3. Нужна настройка местоположения результирующей папки.
4. Ну про контекстное меню проводника уже писали...

ps А вообще автор молодец. Сам я только критиковать чужую работу умею, а сделать что-то это не ко мне :)


1. установка флажка Jad автоматом - сделаю... забыл...
2. приложение становится меньше по размеру... что не устраивает?
3. сделаю...
4. уже писали...

спасибо...

#49 Jeeb

Jeeb

    Специалист

  • Специалисты S
  • Сообщений: 86
  • Город:Мурманск
  • Модель телефона: Nokia 6500 Classic (Black)

Отправлено 2007-июн-25 - 17:24

Обновил программу... Всем кому надо, знают куда им идти.......

Конечно же в по.....

в пост номер 1.... :)

#50 Pimen

Pimen

    МЕГА Магистр

  • JAVA Администраторы
  • Сообщений: 924
  • Город:Псков
  • Модель телефона: Nokia N78

Отправлено 2007-июн-25 - 17:32

Всем кому надо, знают куда им идти.......

Ну зачем же так :71: :)
:)

#51 Jeeb

Jeeb

    Специалист

  • Специалисты S
  • Сообщений: 86
  • Город:Мурманск
  • Модель телефона: Nokia 6500 Classic (Black)

Отправлено 2007-июн-25 - 18:16

Баги пофиксил. Перезалил. Прошу простить меня... Качайте в первом посте...

#52 sob@k@

sob@k@

    Модератор

  • Почетный гражданин SGH.ru
  • Сообщений: 450
  • Город:Москва
  • Модель телефона: Samsung SGH-E250, SGH-i750, gsmart i128.

Отправлено 2007-июн-25 - 20:40

Еще раз хочу поблагодарить автора, прога нужная, хотя и простая, попал в точку, молодец :) Особенно радует оперативность, так держать :ad:

Теперь пожелания:
1. хотелось бы иметь возможность добавлять свои строки в манифест(для удобства можно прицепить краткий справочник ключей), и еще можно было-бы редактировать манифест прям в окне "информация manifest.mf"
и еще пара мелочей:
2.

ВНИМАНИЕ: Пока не завершилась загрузка одной партии файлов в программу, вторую партию не загружать!!!


так запрети это :)

3. И еще мелочи по интерфейсу: добавь пожалуйста хинты к кнопкам

4.Сделай путь по умолчанию папки output в корне с программой,т.е. Installdir\JMP 1.4.1\Output\ а то D:\Sorted\Delphi\Source\Delphi 7\JMP 1.4.1\Output\ - это очень уж сложно

5. Если не лень - то можно инсталятор сделать

Спасибо :71:

Еще баг заметил: первые строки в пятой, шестой и восьмой колонках, т. е. cyr, sam и jad - активные, исправь пожалуйста - это расплата за оперативность :)

Сообщение отредактировал sob@k@: 2007-июн-25 - 20:52


#53 Jeeb

Jeeb

    Специалист

  • Специалисты S
  • Сообщений: 86
  • Город:Мурманск
  • Модель телефона: Nokia 6500 Classic (Black)

Отправлено 2007-июн-26 - 04:42

sob@k@,
спасибо...

1. Думал над этим... Честно: забыл сделать...
2. Подумаю... Или подумаю над тем чтоб можно было не запрещать...
3. Будет сделано
4. Честно: Забыл... Когда баг исправил, путь поменять..
5. SFX сделаю...

про последний баг: не понял...

#54 sob@k@

sob@k@

    Модератор

  • Почетный гражданин SGH.ru
  • Сообщений: 450
  • Город:Москва
  • Модель телефона: Samsung SGH-E250, SGH-i750, gsmart i128.

Отправлено 2007-июн-26 - 06:33

про последний баг: не понял...


Вот, что имел ввиду, если кликнуть на выделенные ячейки, то их содержимое удалится или поменяется на "+", они ведь должны выполнять роль заголовков?
Прикрепленный файл  __________.JPG   1,97К   Количество загрузок: 36

Вот щас подумал, было бы здорово, если бы при нажатии на эти заголовки, в данной колонке все строки становились бы "+" и наоборот, т. е. можно было-бы всем играм из списка поставить действия jad например.

Тепер понятней? ;-)

#55 micha

micha

    Бываю редко

  • JAVA Администраторы
  • Сообщений: 2 801
  • Город:Нет данных
  • Модель телефона: Nokia 5800 NE

Отправлено 2007-июн-26 - 06:38

Вот щас подумал, было бы здорово, если бы при нажатии на эти заголовки, в данной колонке все строки становились бы "+" и наоборот, т. е. можно было-бы всем играм из списка поставить действия jad например.

+1. Было бы неплохо, чтоб при нажатии на заголовок колонки добавлялись бы + во всех строках или убирались бы

#56 bober67

bober67

    йа на солнышке лежу...

  • Специалисты S
  • Сообщений: 629
  • Город:Луганск, UA
  • Модель телефона: i740

Отправлено 2007-июн-26 - 07:29

было бы здорово, если бы при нажатии на эти заголовки, в данной колонке все строки становились бы "+" и наоборот, т. е. можно было-бы всем играм из списка поставить действия jad например.

вот и я об этом же!!!!

Сделай пожалуста пристыковку к краям экрана - программа увеличилась в окне и с разрешением 800*600 уже не помещается на экране. Или покомпактней форму сделай... Вобщем кнопку выбора папки для выходных файлов не видно...

#57 RusEm

RusEm

    Безбашенный Параноик

  • SGH Open Club
  • Сообщений: 1 249
  • Город:Саранск
  • Модель телефона: Galaxy S (T959 Vibrant) + всякий хлам

Отправлено 2007-июн-26 - 13:34

procedure AddFileMenue(FilePrefix, Menue, Command: string);
var
  reg: TRegistry;
  typ: string;
begin
  reg := TRegistry.Create;
  with reg do
  begin
	RootKey := HKEY_CLASSES_ROOT;
	OpenKey('.' + FilePrefix, True);
	typ := ReadString('');
	if typ ='' then
	begin
	  typ := Fileprefix + 'file';
	  WriteString('', typ);
	end;
	CloseKey;
	OpenKey(typ + '\shell\' + Menue + '\command\', True);
	WriteString('', '"'+command + '" "%1"');
	CloseKey;
	Free;
  end;
end;

вот это процедура добавления контекстного меню... может пригодится... правда добавится без иконки..чтобы сделать с иконкой как WinRar стучи в асю... помогу..там чуть сложнее...

Ну а вызывать эту функция надо напрример так...
AddFileMenue('jar','Обработать с помощью JMP',application.ExeName);

Да.. забыл сказать.. имя файла при выборе пункта меню передается программе в качестве параметра..

#58 RusEm

RusEm

    Безбашенный Параноик

  • SGH Open Club
  • Сообщений: 1 249
  • Город:Саранск
  • Модель телефона: Galaxy S (T959 Vibrant) + всякий хлам

Отправлено 2007-июн-26 - 14:09

Извиняюсь я опять со своими хотелками но насчет меню вот еще
Да простит мне администрация

Вот код добавления пункта контекстного меню как делает это WinRar
[codebox]
Добавление пункта в контекстное меню Windows Explorer
// Откройте Delphi, выберите в меню New... Dynamic link library
// Скопируйте нижеприведенный текст DLL
// Скомпилируйте проект.
// Теперь нужно зарегистрировать полученную библиотеку.
// Наберите в командной строке regsvr32.exe sendtoweb.dll
// После этого откройте Windows Explorer и вы увидите новый
// пункт меню...

unit Sendtoweb;
// Author C Pringle Cjpsoftware.com
{ Реализация COM объекта расширения оболочки Windows Explorer. Этот
COM объект способен перенаправлять запросы компоненту TPopupMenu. Компонент TPopupMenu должен находиться на форме MenuComponentForm.
Вы можете модернизировать код для большей гибкости.
Компонент TContextMenu регистрируется как глобальным обработчик контекстного меню.
Это достигается модификацией ключа реестра
HKEY_CLASSES_ROOT*ShellExContextMenuHandlers.
jfl
}

interface
uses Classes, ComServ, ComObj, ActiveX, Windows, ShlObj, Interfaces, Menus, ShellAPI, SysUtils,registry;

type
TContextMenuFactory = class( TComObjectFactory )
public
procedure UpdateRegistry( Register: Boolean ); override;
end;
TContextMenu = class( TComObject, IShellExtInit, IContextMenu )
private
FFileName: String;
function BuildSubMenu( Menu: HMENU; IndexMenu: Integer; var IDCmdFirst: Integer ): HMENU;
protected
szFile: array[0..MAX_PATH] of Char;
// Необходимо для исключения предупреждения компилятора о неоднозначности
function IShellExtInit.Initialize = IShellExtInit_Initialize;
public
{ IShellExtInit }
function IShellExtInit_Initialize(pidlFolder: PItemIDList; lpdobj: IDataObject;
hKeyProgID: HKEY): HResult; stdcall;
{ IContextMenu }
function QueryContextMenu(Menu: HMENU;
indexMenu, idCmdFirst, idCmdLast, uFlags: UINT): HResult; stdcall;
function InvokeCommand(var lpici: TCMInvokeCommandInfo): HResult; stdcall;
function GetCommandString(idCmd, uType: UINT; pwReserved: PUINT;
pszName: LPSTR; cchMax: UINT): HResult; stdcall;
end;
var
// Должен быть инициализирован перед регистрацией TContextMenu!
GFileExtensions: TStringList;
const
MenuCommandStrings: array[ 0..3 ] of String = ( '','&STW Web Upload','&STW FTPClient','&STW Setup' );

implementation
{ TContextMenuFactory }
{ Public }
Function ReadDefaultPAth: String;
var
path : String;
Reg : TRegistry;
begin
Reg := TRegistry.CReate;
try
With Reg Do
Begin
RootKey := HKEY_LOCAL_MACHINE;
Path := 'SOFTWAREMicrosoftWindowsCurrentVersionApp Paths';
If KeyExists(Path) Then
Begin
OpenKey(Path+'sendtoweb.exe',false);
Result := ReadString(#0);
closekey;
End;
// Ключ добавлен в реестр.
End;
Finally
Reg.CloseKey;
Reg.Free;
End;
End;// Код регистрации

procedure TContextMenuFactory.UpdateRegistry( Register: Boolean );
begin
inherited UpdateRegistry( Register );
// Регистрация нашего обработчика
if Register then
begin
CreateRegKey( '*ShellExContextMenuHandlersSendToWeb', '',
GUIDToString( Class_ContextMenu ) );
CreateRegKey( 'CLSID' + GUIDToString( ClassID ) + '' +
ComServer.ServerKey, 'ThreadingModel', 'Apartment' );
end else
begin
DeleteRegKey( '*ShellExContextMenuHandlersSendToWeb' );
end;
end;
{ TContextMenu }
{ Private }
{ Построение контекстного меню с использованием хэндла существующего меню. Если Menu = nil, мы создаем новый хэндл меню и возвращаем его как результат функции.
Заметьте, что обработчик не поддерживаетвложенные (рекурсивные)
меню. }

function TContextMenu.BuildSubMenu( Menu: HMENU; IndexMenu: Integer; var IDCmdFirst: Integer ): HMENU;
var
i: Integer;
menuItemInfo: TMenuItemInfo;
begin
if Menu = 0 then
Result := CreateMenu
else
Result := Menu;
// Подготавливаем меню
with menuitemInfo do
begin
cbSize := SizeOf( TMenuItemInfo );
fMask := MIIM_CHECKMARKS or MIIM_DATA or MIIM_ID or MIIM_STATE or MIIM_SUBMENU or MIIM_TYPE or MIIM_CHECKMARKS;
fType := MFT_STRING;
fState := MFS_ENABLED;
hSubMenu := 0;
hbmpChecked := 0;
hbmpUnchecked := 0;
end;
for i := 0 to High( MenuCommandStrings ) do
begin
if i = 0 then
menuitemInfo.fType := MFT_SEPARATOR
else
menuiteminfo.ftype := MFT_String;
if i = 1 then
menuitemInfo.fstate := MFS_ENABLED OR MFS_DEFAULT
Else
menuitemInfo.fstate := MFS_ENABLED;
menuitemInfo.dwTypeData := PChar(MenuCommandStrings[ i ]);
menuitemInfo.wID := IDCmdFirst;
InsertMenuItem( Result, IndexMenu + i, True, menuItemInfo );
Inc( IDCmdFirst );
end;
end;

{ IShellExtInit }
function TContextMenu.IShellExtInit_Initialize( pidlFolder: PItemIDList; lpdobj: IDataObject; hKeyProgID: HKEY ): HResult;
var
medium: TStgMedium;
fe: TFormatEtc;
begin
with fe do
begin
cfFormat := CF_HDROP;
ptd := Nil;
dwAspect := DVASPECT_CONTENT;
lindex := -1;
tymed := TYMED_HGLOBAL;
end;
// Ошибка, если lpdobj = Nil.
if lpdobj = Nil then
begin
Result := E_FAIL;
Exit;
end;
Result := lpdobj.GetData(fe, medium);
if Failed(Result) then Exit;
// Если выбран только один файл, получаем его имя и сохраняем в
// szFile. иначе - ошибка.
if DragQueryFile(medium.hGlobal, $FFFFFFFF, Nil, 0) = 1 then
begin
DragQueryFile(medium.hGlobal, 0, szFile, SizeOf(szFile));
Result := NOERROR;
end
else
Result := E_FAIL;
ReleaseStgMedium(medium);
end;

{ IContextMenu }
function TContextMenu.QueryContextMenu( Menu: HMENU; indexMenu, idCmdFirst, idCmdLast, uFlags: UINT ): HResult;
var
extension: String;
I: Integer;
idLastCommand: Integer;
begin
Result := E_FAIL;
idLastCommand := idCmdFirst;
// Получаем расширение файла и определяем, есть ли для него
// зарегистрированный обработчик
// extension := UpperCase( ( FFileName ) );
//for i := 0 to GFileExtensions.Count - 1 do
// if Pos(Lowercase(GFileExtensions[ i ]),lowercase(extension))=0 then
// begin
BuildSubMenu( Menu, indexMenu, idLastCommand );
// Return value is number of items added to context menu
Result := idLastCommand - idCmdFirst;
// Exit;
// end;
end;

function TContextMenu.InvokeCommand( var lpici: TCMInvokeCommandInfo ): HResult;
var
idCmd: UINT;
begin
if HIWORD( Integer(lpici.lpVerb) ) <> 0 then
Result := E_FAIL
else
begin
idCmd := LOWORD( lpici.lpVerb );
Result := S_OK;
// Активизация диалога и подготовка к послке данных в Web
case idCmd of
1: Begin
ShellExecute( GetDesktopWindow, nil,Pchar(ExtractFileName(ReadDefaultPath)), Pchar('Direct'+'"'+szfile+'"'), nil, SW_SHOW );
End;
3:Begin
ShellExecute( GetDesktopWindow, nil,Pchar(ExtractFileName(ReadDefaultPath)),
Pchar('Path'), nil, SW_SHOW );
End;
2: ShellExecute( GetDesktopWindow, nil, Pchar(ExtractFileName(ReadDefaultPath)), PChar(''), nil, SW_SHOW );
else
Result := E_FAIL;
end;
end;
end;

function TContextMenu.GetCommandString( idCmd, uType: UINT; pwReserved: PUINT; pszName: LPSTR; cchMax: UINT ): HResult;
begin
// StrCopy( pszName, 'Send To The Web');
Result := S_OK;
end;
initialization
{ Заметьте, что в данном фрагменте мы создаем экземпляр TContextMenuFactory, а не TComObjectFactory. }
TContextMenuFactory.Create( ComServer, TContextMenu, Class_ContextMenu, 'ContextMenu', 'Send To The Web', ciMultiInstance );
// Инициализируем список расширений
GFileExtensions := TStringList.Create;
// GFileExtensions.Add( 'setup msn' );
finalization
GFileExtensions.Free;
end.
[/codebox]

или можешь почитать http://ddsoft.hoha.ru/docs/shell1/
прошу не банить за ссылку на другой ресурс....

или ниже прикрепляю исходник

Прикрепленные файлы

  • Прикрепленный файл  shellasrc.rar   2,27К   Количество загрузок: 13


#59 Jeeb

Jeeb

    Специалист

  • Специалисты S
  • Сообщений: 86
  • Город:Мурманск
  • Модель телефона: Nokia 6500 Classic (Black)

Отправлено 2007-июн-26 - 14:46

RusEm,
многабукаф. ниасилил.... :cry:

Сообщение от модератора Pimen
:104:


#60 Jeeb

Jeeb

    Специалист

  • Специалисты S
  • Сообщений: 86
  • Город:Мурманск
  • Модель телефона: Nokia 6500 Classic (Black)

Отправлено 2007-июн-28 - 18:21

ПРОШУ КАЧАТЬ... Просили контекстное меню... Получите... ;) Пользуйся народ, пока бесплатно.... :ak: Инструкцию не трогал, т.к. по сути не изменилась...

RusEm,
спасибо за помощь....




0 человек читают эту тему

0 пользователей, 0 гостей, 0 скрытых пользователей

Титан гель отзывы на http://fabri.com.ua/titangel.html


Яндекс цитирования