Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 2317 • Страница 96 из 116<  1 ... 93  94  95  96  97  98  99 ... 116  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 09.12.2005
Откуда: Москва
Товарищи, есть вопрос:
Создаётся анкета (текст а рядом в с ним циферка ставится), можно ли сделать так, чтоб программа сохраняла отчёт в формате excel?
Нужно чтобы она банальна написала номер строки и цифру введённую пользователем в программе.
Это возможно?

_________________
CPU: Core i7 4770k (3.5Ghz@4.3Ghz, vCore 1.2)+Archon SB-E X2
Mobo: ASUS Z87 Pro (1205)
Mem: 2x Corsair 1866Mhz
Video: MSI N660Ti PE 2GD5@1070/7000



Партнер
 

Member
Статус: Не в сети
Регистрация: 08.11.2005
Micher писал(а):
Это возможно?
Да

_________________
AM4/B550-F/5950X/128Gb/4070S/4x4Tb NVMe


 

Member
Статус: Не в сети
Регистрация: 13.02.2004
Откуда: Чехия
Добрый день всем. У меня такой вопрос:
Есть програмка написанная в Делфи которая заполняет данными лист в Экселе.
Купили новый комп с Офисом 2007. При попытке использовать ExcelApplication1.Workbooks.Open(..)
возникает ошибка типа "Old type...".
Не подскажите как лечится? Вариант установить старый офис не предлагать.
ExcelApplication1.Workbooks.Add(Fname,xlLCID) работает почему-то...
Идеальным бы было решение чтобы работало как в Office97-2003 так и в 2007

_________________
Лучше иметь пузо от пива, чем горб от работы.


 

Member
Статус: Не в сети
Регистрация: 08.11.2005
George J Не уверен, что дельфя вообще поддерживает 2007, т.к. там компоненты токмо под 2000/XP. Как вариант можно на сайте борланда порыться, может там уже выложили.

ЗЫ тоже возникала подобная проблема, но решилась она путем сноса нафиг 2007 и установки 2003, так что думай

_________________
AM4/B550-F/5950X/128Gb/4070S/4x4Tb NVMe


 

Member
Статус: Не в сети
Регистрация: 13.02.2004
Откуда: Чехия
Mike3000 Первое что сделал - пошел к админу чтоб переустановил Офис...
А он говорит что ОЕМ версии офиса сейчас только 2007.. Завтра будет звонить в MicroSoft если можно "откатиться" на Офис 2003.. (Деньги за 2007 уже заплачены, а "пиратку" ставить боится.)

_________________
Лучше иметь пузо от пива, чем горб от работы.


 

Member
Статус: Не в сети
Регистрация: 13.02.2004
Откуда: Чехия
Доброго дня всем. Звонили мелкомягким... Сказали что откатится на старый офис НЕЛьЗЯ!
И еще вопрос/уточнение: работаю в Делфи 5, читал что Делфи 2007 поддерживает Висту и Офис 2007. Если перейти на Делфи 2007 код предется переписывать?

_________________
Лучше иметь пузо от пива, чем горб от работы.


 

Member
Статус: Не в сети
Регистрация: 02.12.2004
Цитата на Баше:
Цитата:
>>Из бухгалтерии принисли задачку:
>>Некоторое число заканчивается на "2". Если ее переставить на >>первое место, то число удвоится. Какое число было >>изначально?
>>Работа IT отдела была парализована! Напрочь!!!

А чем тут парализовывать то?
105263157894736842
210526315789473684 - оно же, но удвоенное

эт ты канешна так постебался да? по моему 12 и 24 попроще будет...

далбайоп, ты четать/щетать умееш?
12 -> 21, а не 24. для тебя, наверно, проще, если мозгов на большее не хватает

Как прочитал сразу решил проверить на практике :hitrost:
Установил Delphi и написал такой код в обработчике кнопки:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  k, i, x1, x2: int64;
  z, y: integer;
  s, sx: string;
begin
  i:=12;
  k:=0;
  while True do
    begin
      x1:=i;
      s:=IntToStr(x1);
      sx:='2';
      y:=Length(s);
      for z := 2 to y - 3 do
        begin
          sx:=sx+s[z];
        end;
      sx:=sx+s[1];
      inc(k);
      i:=i+10;

      if k mod 500000=0 then
        begin
          label2.Caption:=IntToStr(k);
          Application.ProcessMessages;
        end;

      if StrToInt64(sx)=2*StrToInt64(s) then break;
    end;
  edit1.Text:=sx;
end;

Небольшое пояснение:

Начинаю с 12
Кол-во проверок ставлю в 0
Начинаю баальшой цикл
Все следующие операции сводятся к простому действию
Переставляю "2" на первое место и все число смещаем соответсвенно.
Если проверка прошла, выхожу из цикла и пишу полученное число.

Чтобы прога не зависла, юзаю Application.ProcessMessages.

Это чудо считает просто _крайне_ медленно.
Можно как-то ускорить обработку?


 

Member
Статус: Не в сети
Регистрация: 08.11.2005
George J писал(а):
Если перейти на Делфи 2007 код предется переписывать?

Нет, переносимость кода превосходная. Другое дело если ты используешь набор сторонних компонентов, поддержка, которых в D2007 не декларирована. Например, некоторые компоненты из набора TMS

_________________
AM4/B550-F/5950X/128Gb/4070S/4x4Tb NVMe


 

Member
Статус: Не в сети
Регистрация: 11.07.2004
Откуда: Воронеж
Xupyp1
ИМХО решения нет, так как в этом числе первая цифра должна быть 1 иначе число будет даже меньше чем изначальное.
Далее получается что последнея цифра после перестановки становится 1, и тут!!!!! вспоминаем признак делимости на 2, с учетом выше указанного ограничения, удвоенное число никак не получится.
то есть допустим: 4545454552, переставляем: 2454545455 получается 2454545455 < 4545454552 ну и так далее. это первое ограничение.
теперь 12345345432, меняем: 22345345431 получаем единицу на конце. причем ВСЕГДА!!! следовательно удвоенное число невозможно.


То есть ускоряю те решение: Забей, чувак, решения нет :)

_________________
Удачи и мудрости.


 

Member
Статус: Не в сети
Регистрация: 02.12.2004
Koval
гмм, а какже 105263157894736842?
Ведь если его удвоить получится 210526315789473684.
Тобиш 2-ка перелетает с последнего места на первое.

Решение где-то рядом :)


 

Member
Статус: Не в сети
Регистрация: 13.11.2007
задали тут на Делфи состряпать что-то вроде браузера.
Вообщем задание такое: по нажатию на кнопку прога лезет на Яндекс и оттуда выдирает погоду.
....в делфи есть элемент WebBrowser. С ним и работаю. Вообщем как из него получить код страницы(я имею ввиду html код)? И запихнуть обратно?
Или предложите ещё варианты решения этой задачи..а то я в Делфи ничего не умею


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Alek(S) Сотри в сторону интерфейса WebBrowser.Document
К примеру можно так
HTMLDocument:=InfoBrowser.Document as IHTMLDocument2;
и у HTMLDocument уже есть почти все нужные свойства.


 

Member
Статус: Не в сети
Регистрация: 15.09.2006
Товарищи ! Кто знает где можно найти исходники на дэлфи по статистическим методам анализа или поиска текста ещё называют tf-idf .
Или подскажите сайты по данному методу , описания , короче буду рад любой информации .......
Заранее благодарен !


 

Member
Статус: Не в сети
Регистрация: 08.11.2005
Вот шлепнешь свою программу неожиданно для нее самой, а значек из трея не пропадает. Как при следующем запуске, например этой же программы, обновить трей?
В тырнете нашел не очень элегантный способ - пробег курсором по всем значкам, но хочется как-то покрасивше...
Добавлено спустя 3 минуты, 9 секунд
Код:
Shell_NotifyIcon(NIM_DELETE,@nidata);
, где nidata: TNotifyIconData;
ессно, не прокатывает, т.к. в структуру nidata надо зашивать хэндл текущей программы, например
Код:
nidata.Wnd:=Application.MainForm.Handle;

Добавлено спустя 5 минут, 27 секунд
Mike3000 писал(а):
пробег курсором по всем значкам, но хочется как-то покрасивше...

да и вообще, боюсь, что всякие касперы/аутпосты начнут вопить о том, что моя программа де эмулирует нажатия кнопик и пр., что тоже не очень гуд

_________________
AM4/B550-F/5950X/128Gb/4070S/4x4Tb NVMe


 

Advanced member
Статус: Не в сети
Регистрация: 09.03.2004
Откуда: Кишинёв
Есть на форме TRichEdit, в него загружаю rtf-файл посредством Lines.LoadFromFile(...) . Есть небольшой косяк - между абзацами(тоесть строками разделёнными "энтером") наблюдается огромное растояние. В то же время при просмотре в WordPad'e всё выглядит красиво:
#77

Собственно вопрос: как полечить?


 

Member
Статус: Не в сети
Регистрация: 05.01.2003
Откуда: Москва
Фото: 2
Люди, есть вопрос, надо ответом уже бьюсь часа три.
Есть ActiveX компонент. Обычно раньше импортировал и появлялась иконка в закладке ActiveX. Все было хорошо.
Сейчас же просто импортировал, откомпилировал и все. Нигде компонент найти не могу.
если данный компонент подгрузить в html, то все работает. Работает в VB - проверил. Но нужно обязательно вывести его на форму в Дельфе.
Стало быть - что делать и как дальше жить ?! :(

_________________
Устав традиций нужно соблюдать, Хоть и не раз ответят вам отказом: Конечно, баба может и не дать, Но предложить ты ей всегда обязан!


 

Member
Статус: Не в сети
Регистрация: 01.10.2006
Откуда: Караганда, KZ
Доброго времени суток. Возникла проблема. Вызываю запуск 3D Mark 2006 1.10 след. процедурой:

Код:
function Tfrm_Main.TestRunner(const FileName, Params: String; const WinState: Word):boolean;
var
  StartInfo: TStartupInfo;
  ProcInfo: TProcessInformation;
  CmdLine: String;
begin
  CmdLine := '"' + Filename + '" ' + Params;
  with StartInfo do
  begin
    FillChar(StartInfo, SizeOf(StartInfo), #0);
    cb := SizeOf(StartInfo);
  end;
  if FileExists (filename)=false then ShowMessage('Не найден файл '+filename) else
   begin
    Result := CreateProcess(nil, PChar(String(cmdline)), nil, nil, false,
                 CREATE_DEFAULT_ERROR_MODE or REALTIME_PRIORITY_CLASS or CREATE_NO_WINDOW, nil, PChar(String(ExtractFilePath(Filename))),StartInfo,ProcInfo);
 if Result=true then
   begin
    WaitForSingleObject(ProcInfo.hProcess, INFINITE);     { Ожидаем завершения приложения }
    { Free the Handles }
    CloseHandle(ProcInfo.hProcess);
    CloseHandle(ProcInfo.hThread);
   end;
  end;
end;


В качестве пераметров передаются путь к 3д марку, и параметры запуска, которые генерятся тут:

Код:
function Tfrm_Main.VideoParam:String;
 var tmp3d:String;
 i:integer;
begin
 i:=0;
 tmp3d:='';
 if rb_Resolution1280.checked = true then tmp3d:=tmp3d+'-res=1280x1024 ' else
 if rb_Resolution1024.checked = true then tmp3d:=tmp3d+'-res=1024x768 '  else
 if rb_resolution800.checked = true then  tmp3d:=tmp3d+'-res=800x600 ' else
 if rb_resolution640.checked = true then  tmp3d:=tmp3d+'-res=640x480 ';
 tmp3d:=tmp3d+'-sm2all -featureall -ps -vssimple -vscomplex ';
 if cb_Enable3DCPU.checked = true then tmp3d:=tmp3d+'-cpuall ';
 if cb_EnableAA.checked = true then tmp3d:=tmp3d+'-aa=2 ';
 if cb_ShModel.Checked = false then tmp3d:=tmp3d+'-sm3all -hdr2 -shaderparticle -perlinnoise ';
 tmp3d:=tmp3d+'-nosysteminfo results.3dr';
 VideoParam := tmp3d;
 i:=Length(tmp3d);
end;


Проблема такая, что если в системе WinXPSP2 установлен Ie7, то происходит вот что.
Если система только что загружена, и 3D Mark (v1.10) еще не запускался сиим образом, то при запуске, сам процесс 3dmark06.exe зависает. Завершаешь 3d mark, запускаешь повторно - все ок... Если убрать из параметров results.3dr, то 3d mark 06 всегда стартует нормально. Если убрать IE7, то тоже нормально все. И под вистой 32/64 Тоже. Т.е. получается, что процесс 3d mark зависат при создании results.3dr-файла. Для этого 3D Mark использует xml. Как вылечить? Идеи есть?


 

Member
Статус: Не в сети
Регистрация: 01.10.2006
Откуда: Караганда, KZ
При использовании ShellExecute все нормально :shock:
И если закомментить

Код:
 if Result=true then
   begin
    WaitForSingleObject(ProcInfo.hProcess, INFINITE);     { Ожидаем завершения приложения }
    { Free the Handles }
    CloseHandle(ProcInfo.hProcess);
    CloseHandle(ProcInfo.hThread);
   end;

, то тоже все ок? В чем косяк?


 

Member
Статус: Не в сети
Регистрация: 01.10.2006
Откуда: Караганда, KZ
Проблема решилась, примерно таким способом (подсказали на forum.ru-board.com):
Код:
procedure TForm1.Button1Click(Sender: TObject);
Var
 s:integer;
 prog: array [0..255]of char;
 param: array [0..255]of char;
 wrkdir: array [0..255]of char;
 FProcessHnd: THandle;
 FTimer:TTimer;
 ExitCode:DWord;
 ShellInfo:TShellExecuteInfo;
 FHInstance:THandle;
 
begin
 StrPCopy(prog,Edit1.Text);
 StrPCopy(param,Edit2.Text);
 StrPCopy(wrkdir,Edit4.Text);
 
 FillChar(ShellInfo,SizeOf(TShellExecuteInfo),0);
 ShellInfo.cbSize:=SizeOf(TShellExecuteInfo);
 ShellInfo.fMask:=SEE_MASK_NOCLOSEPROCESS;
 ShellInfo.Wnd:=HWnd_Desktop;
 ShellInfo.lpFile:=prog;
 ShellInfo.lpParameters:=param;
 ShellInfo.lpDirectory:=wrkdir;
 ShellInfo.nShow:=SW_SHOWNORMAL;
 
 if ShellExecuteEx(@ShellInfo) then
   begin
    Edit3.Text:='Working';
    FHInstance:=ShellInfo.hInstApp;
    FProcessHnd:=ShellInfo.hProcess;
    repeat
      Application.ProcessMessages;
      GetExitCodeProcess(FProcessHnd,ExitCode);
    until (ExitCode<>still_Active);
 
   Edit3.Text:='Terminated:'+IntToStr(ExitCode);
  end;
 end;


 

Привет всем! Создаю базу данных в Delphi 7 (paradox). В программе есть несколько форм, на которых расположенны базы данных DBGrid. У каждой быз данных отдельный файл .db . В каждой базе поля одинаковые (например кол-во, сумма), но значения в для этих полей разные. На главной форме должна быть общая база. Нужно, к примеру, ячейку A(2,5) на форме t1 просуммировать с ячейкой A(2,5) на форме t2 и A(2,5) на форме t3 и вывести результат суммы на главную форму в ячейку A(2,5). Каким образом это реализовать?


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 2317 • Страница 96 из 116<  1 ... 93  94  95  96  97  98  99 ... 116  >
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan