Jump to content
uniGUI Discussion Forums

stas

uniGUI Subscriber
  • Content Count

    362
  • Joined

  • Last visited

  • Days Won

    32

stas last won the day on March 6

stas had the most liked content!

Community Reputation

101 Excellent

4 Followers

About stas

  • Rank
    Advanced Member

Profile Information

  • Gender
    Male
  • Location
    Kiev Ukraine

Recent Profile Visitors

1390 profile views
  1. Кстати, я не понимаю, почему Фаршад не использует стандартный метод, я от версии к версии переделываю. if Column.DisplayMemo then JSConfig('cellWrap', [true], JSCol); //extjs // JSConfig('tdCls', ['x-uni-grid-cell-normal'], JSCol); //unigui
  2. Не думаю, тут Вы сам себе хозяин.
  3. Обещал, выполняйте, я обещаю, только то что могу выполнить сам. У Фаршада с обещаниями, сами знаете, как.
  4. Для капса староват
  5. Я ли не кричал об этом.
  6. Если Вы касательно Listview, то я ответил, вообще оно в дорожной карте. Сейчас его нет. Шерзод посчитал мой ответ удовлетворительным. Причем техподдержка, это для подписки. Не купившим помогают энтузиасты. Я вот например.
  7. А что Вы имеете в виду ? Шерзод регулярно.
  8. stas

    Access violation at address

    Это действительно раздражает, помогать нужно без паспорта и свидетельства о прописке.
  9. stas

    Access violation at address

    Здравствуйте, вверну свои пять копеек. Отказывайтесь от ISAPI в принципе. Имхо, оптимальный вариант, это сервис с прокси через ARR, nginx, Apache (virtual proxy) В этом случае Вы легко можете деплоить свой продукт и не заморачиваетесь на web server.
  10. Нет конечно, есть RestrictByIp, но слово "ограничивать" подразумевает более глубокий смысл
  11. И не получится. 1)WebSocket 2)Timer
  12. Safari, Chrome какой броузер? На ipad нормально
  13. Ну, полный код такой type TmyUnimFileEdit=class(TUnimFileEdit); TMyUnimcustomButtonItem=class(TUnimcustomButtonItem); TmyUniToolButton=class(TUnimToolButton); procedure TfmViewMPhoto.CreateFileInput; var FJSEdit:TUnimFileEdit; begin FJSEdit:=TUnimFileEdit.Create(Self); FJSEdit.Name := 'FileEdit_'+FJSEdit.JSName; FJSEdit.Visible:=false; FJSEdit.Parent:=Self; TmyUnimFileEdit(FJSEdit).JSHackObject(FJSEdit.JSControl); TmyUnimFileEdit(FJSEdit).FieldLabelWidth:=30; TmyUnimFileEdit(FJSEdit).FieldLabel:=''; FJSEdit.Name := FJSEdit.JSName; TmyUnimFileEdit(FJSEdit).JSConfig('accept',['image/jpeg']); TmyUnimFileEdit(FJSEdit).JSCall('on',['change', TmyUnimFileEdit(FJSEdit).JSFunction('var input=document.getElementsByName("'+TmyUnimFileEdit(FJSEdit).JSName+'")[0];'+ ' Ext.Viewport.mask({ xtype: "loadmask", message: "Завантаження..." });'#13#10+ ' var filesToUpload = input.files; '#13#10+ ' var file = filesToUpload[0]; '#13#10+ ' var img = document.createElement("img"); '#13#10+ ' var reader = new FileReader(); '#13#10+ ' reader.onload = function(e) '#13#10+ ' { '#13#10+ ' img.src = e.target.result; '#13#10+ ' '#13#10+ ' var canvas = document.createElement("canvas"); '#13#10+ ' var ctx = canvas.getContext("2d"); '#13#10+ ' ctx.drawImage(img, 0, 0); '#13#10+ ' '#13#10+ ' var MAX_WIDTH = 1024; '#13#10+ ' var MAX_HEIGHT = 768; '#13#10+ ' var width = img.width; '#13#10+ ' var height = img.height; '#13#10+ ' '#13#10+ ' if (width > height) { '#13#10+ ' if (width > MAX_WIDTH) { '#13#10+ ' height *= MAX_WIDTH / width; '#13#10+ ' width = MAX_WIDTH; '#13#10+ ' } '#13#10+ ' } else { '#13#10+ ' if (height > MAX_HEIGHT) { '#13#10+ ' width *= MAX_HEIGHT / height; '#13#10+ ' height = MAX_HEIGHT; '#13#10+ ' } '#13#10+ ' } '#13#10+ ' canvas.width = width; '#13#10+ ' canvas.height = height; '#13#10+ ' var ctx = canvas.getContext("2d"); '#13#10+ ' ctx.drawImage(img, 0, 0, width, height); '#13#10+ ' '#13#10+ ' var dataurl = canvas.toDataURL("image/jpeg"); var avalue=input.value; input.value=""; '#13#10+ ' ajaxRequest('+tlbBtn.JSName+',"export",["type=jpeg","uri="+dataurl,"filename="+avalue]);'#13#10+ ' }; '#13#10+ ' reader.readAsDataURL(file); '#13#10 )]); UniSession.AddJS(tlbBtn.JSName+'.owner.fileInput='+FJSEdit.JSName+';'); end; Я поднимал свн 2-х годичной давности, что-то мне там не понравилось, но файлы сжимались И еще procedure TfmViewMPhoto.tlbBtnAjaxEvent(Sender: TComponent; EventName: string; Params: TUniStrings); var MS:TMemoryStream; ss:String; begin if EventName='export' then begin MS:=TMemoryStream.Create; try ss:=copy(Params.Values['uri'],pos(',',Params.Values['uri'])+1,length(Params.Values['uri'])); uIdCoderMIME.TIdDecoderMIME.DecodeStream(SS,MS); MS.Position:=0; imPhoto.LoadFromStream(MS); UniSession.AddJS('Ext.Viewport.unmask();'); finally MS.Free; end; end; end;
  14. stas

    TUnimap компонент

    Там есть кнопочка "НАЖМИ МЕНЯ", нажмите ее пожалуйста, и листинг в студию, может помочь
×