Delphi

Assembler, Basic, Pascal/Delphi, Perl, PHP, JavaScript, HTML и т.д. Вопросы и помощь.

Delphi

Непрочитанное сообщение Alex ilmarranen » 18 авг 2007, 01:31:56

Стандартного нету… во вскомъ случае въ 2005… Нашёлъ самописный… Но этотъ надо сказать поизящнее…))

Вопросъ терь въ другомъ.. Имеется пакетъ NewPass… при попытке установки въ 2005 среде(где всё это прямо скажемъ кривовато…) выдаётъ ошибку… Типо приложению не удалось запустится, т.к. Vcl50.bpl не былъ найденъ. Повторная установка приложения можетъ исправить ошибку.

Что это за файлъ…? терзаютъ подозрения что это что-то стандартное изъ более раннихъ версий средъ… Ибо писано вроде какъ для 5.0…

Просьба если есть у кого НЕ 2005… поищите этотъ файликъ… Или расскажите что это можетъ быть….

З.Ы. Ещё вопросецъ… Что такое файлы *.dcu..

Заранее спасибо :)
Alex ilmarranen
 

Delphi

Непрочитанное сообщение Anri » 18 авг 2007, 02:59:48

когда то давно, когда появилась ещё самая первая версия Делфи я писал много всяких компонентов и пёрся от скоей крутизны :).
Помню, что dcu (вот какая версия белфи была к моменту когда я научился писать компоненты, я не помню) были скомпиллированными файлами компонент. Интересно а на CBuilder они тоже dcu о сих пор?

Делфи в глаза не видел (профессионально) уже лет 8 :). Как-то меня слёзно попросил племянник жены помочь ему с курсовой. Стало интересно, дажа азарт появился - а смогу ли я вспомнить паскаль и написать небольшой проект по теме БД и хелпов :).

Знаете что поразило: открыл - ни фига не помню.. полез читать чего-то, а потом жена меня отвлекла. Вернулся к компу сел, даже не знаю как вышло, что руки сами вспомнили куда тыркать, комманды автоматически вспомнились. Как только привыкли писать :=, так пошло "го-в-но по трубам". За вечер написал не напрягаясь. Но вот кайфа не выловил.

Самый больший кайф был, когда после 4-х леетнего перерыва работы с С++ я пресел с asp/vbs на C#. От это было просто сексуальным наслаждением
Давай с тобой поговорим, прости, не знаю, как зовут.
Но открывается другим, все то, что близким берегут.
Ты скажешь: "Все наоборот, согласно логике вещей",
Но это редкий поворот, а, может, нет его вообще.

(с) О.Митяев
Anri
Магистр
Магистр
 
Сообщения: 2137
Зарегистрирован: 05 июл 2006, 23:30:06
Откуда: Frankfurt am Main, Germany
Пол: Мужской

Delphi

Непрочитанное сообщение Alex ilmarranen » 18 авг 2007, 15:16:54

:)

Ещё вопросъ… Работа съ мелкомягкимъ экселемъ…

Какъ отхватить адресъ последней ячейки?
На Application.SpecialCells(xlLastCell) ругается… Типо какъ xlLastCell незнакомо… %)
Alex ilmarranen
 

Delphi

Непрочитанное сообщение мисс_граффити » 25 авг 2007, 13:56:10

Что-то вы страшное творите.
Alex ilmarranen писал(а):Вопросъ следующий… Какъ сделать диалогъ, который указываетъ именно путь къ дирректории а не файлу…

тестила в 6 и 7 версиях, но, думаю, как-то похоже должно быть и в 2005 (читай Help)

Код: Выделить всё
procedure TForm1.Button1Click(Sender: TObject);
var Choose: string;
begin
SelectDirectory('Выберите каталог', 'C:', Choose);
end;

в 6 понадобилось в uses добавить QDialogs
С параметрами, думаю, все очевидно:
0) надпись в открывающемся диалоге
1) родительская папка (подняться нельзя, так что начинай, например, с "Мой компьютер")
2) переменная, в которой будет путь

SelectDirectory - это вообще функция, возвращающая true/false в зависимости от того, была ли выбрана папка. Этим можно пользоваться… а можно так, как я в примере привела.

Vcl50.bpl не былъ найденъ

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

Ещё вопросъ… Работа съ мелкомягкимъ экселемъ…

а ты с ним как работаешь-то? OLE или используешь компонентики типа WorkBook/WorkSheet? Как открываешь, устанавливаешься связь?… В общем, код - в студию.
мисс_граффити
Завсегдатай
Завсегдатай
 
Сообщения: 605
Зарегистрирован: 07 окт 2006, 21:12:50

Delphi

Непрочитанное сообщение Alex ilmarranen » 25 авг 2007, 14:21:28

мисс_граффити писал(а):это библиотека… при компиляции приложения в старой версии надо было указать, чтобы она включилась в пакет.
Могу тебе его скинуть, но не уверена, что спасет ситуацию (весит примерно 2 метра).
Вот и я тоже… ( Автоматически получается безъ танцевъ съ бубномъ(а безъ исходниковъ темъ паче) компоненты не работаютъ… (

Съ диалогмъ разобрался… :) Но спасибо….


мисс_граффити писал(а):а ты с ним как работаешь-то? OLE или используешь компонентики типа WorkBook/WorkSheet? Как открываешь, устанавливаешься связь?… В общем, код - в студию.

OLE

Код: Выделить всё
Excel1 := CreateOleObject('Excel.Application');
  Excel1.Visible := True;
  Excel1.WorkBooks.Add;
Alex ilmarranen
 

Delphi

Непрочитанное сообщение мисс_граффити » 25 авг 2007, 16:56:09

Активация последней на листе (не последней заполненной, а самой последней - я правильно поняла задачу?) ячейки:
Excel1.WorkSheets[1].Cells[Excel1.Sheets[1].Rows.Count,Excel1.Sheets[1].Columns.Count].Activate;
мисс_граффити
Завсегдатай
Завсегдатай
 
Сообщения: 605
Зарегистрирован: 07 окт 2006, 21:12:50

Delphi

Непрочитанное сообщение Alex ilmarranen » 25 авг 2007, 16:59:19

Ыыыыы… Нееетъ… Это слишкомъ просто… Да и не то…
Именно последней заполненной… Тоесть ниже и правее которой данныхъ нетъ… Во.. :)
Alex ilmarranen
 

Delphi

Непрочитанное сообщение мисс_граффити » 25 авг 2007, 17:05:11

так бы и говорил )))
Код: Выделить всё
Excel1.WorkSheets[1].Cells.SpecialCells(11).Activate;

оно?
мисс_граффити
Завсегдатай
Завсегдатай
 
Сообщения: 605
Зарегистрирован: 07 окт 2006, 21:12:50

Delphi

Непрочитанное сообщение Alex ilmarranen » 26 авг 2007, 06:48:58

Ы… Оно…
Вотъ тока загвоздка… неработаетъ… )))

Будимъ ковырять…) Сдаётся мне офесъ у мя кривой…
Хотя впринципе проблема была решена… Но просто менее изящнымъ способомъ…
Alex ilmarranen
 

Delphi

Непрочитанное сообщение мисс_граффити » 26 авг 2007, 09:31:08

А что хоть пишет?
В чем выражается, что не работает?
мисс_граффити
Завсегдатай
Завсегдатай
 
Сообщения: 605
Зарегистрирован: 07 окт 2006, 21:12:50

Delphi

Непрочитанное сообщение Alex ilmarranen » 27 авг 2007, 10:15:42

:) Всё уже.. решилъ… Это у меня офисъ былъ кривой… Но за поддержку спасибо…

Тутъ новая проблема.. Какъ показать что прога не виситъ… Ну что-то типо прогресъ-бара… Но иное.. ибо прогресъ-баръ не подходитъ… - количество заранее неизвестно…
Alex ilmarranen
 

Delphi

Непрочитанное сообщение V@P » 29 авг 2007, 18:06:35

старое решение, мб подойдет?
Изображение Изображение
V@P
Хранитель
Хранитель
 
Сообщения: 1983
Зарегистрирован: 27 июн 2006, 13:55:05
Откуда: Kursk, Russia
Пол: Мужской
Имя: Dmitriy

Delphi

Непрочитанное сообщение Alex ilmarranen » 29 авг 2007, 18:09:09

Какое такое? )
Alex ilmarranen
 

Delphi

Непрочитанное сообщение V@P » 30 авг 2007, 12:09:48

я хз - модератор потер о_О

в общем сделать последовательность знаков: "", "|" и "/" , чтобы получилось нечто подобное "звездочки"

в консольных программах до сих встречается данный способ
Изображение Изображение
V@P
Хранитель
Хранитель
 
Сообщения: 1983
Зарегистрирован: 27 июн 2006, 13:55:05
Откуда: Kursk, Russia
Пол: Мужской
Имя: Dmitriy

Delphi

Непрочитанное сообщение Alex ilmarranen » 31 авг 2007, 01:22:49

Не… Не катитъ… Проблема въ томъ, что при выводе съ каждымъ гипотетическимъ цикломъ форма сама по себе призаковъ жизни не подаётъ… и тотъ же label не обновляетъ… проблема видимо детская… Но я чайникъ не знаю даже какъ её решить… %)
Alex ilmarranen
 

Delphi

Непрочитанное сообщение BeteTest » 01 сен 2007, 07:46:42

Alex ilmarranen писал(а):гипотетическимъ цикломъ форма … Но я чайникъ не знаю даже какъ её решить… %)

Используй компонент "таймер".
Alex ilmarranen писал(а):форма сама по себе призаковъ жизни не подаётъ…

Создай процесс, и пускай в нем идет безжизненый процесс.
BeteTest
 

Delphi

Непрочитанное сообщение мисс_граффити » 03 сен 2007, 19:44:18

Alex ilmarranen писал(а):и тотъ же label не обновляетъ…

ну дык обнови :)
очень-очень грубый вариант (потому что, опять же, не совсем понимаю, что тебе нужно…)
Код: Выделить всё
procedure TForm1.Button1Click(Sender: TObject);
var a: integer;
begin
while true do
  begin
  a:=random(10);
  Label1.Caption:=IntToStr(a);
  Form1.Refresh;
  end;
end;

возможно, будет достаточно обновить отдельный компонент, а не всю форму.
можно сделать отсчет (не обратный, а просто 1,2,3,4…)
мисс_граффити
Завсегдатай
Завсегдатай
 
Сообщения: 605
Зарегистрирован: 07 окт 2006, 21:12:50

Delphi

Непрочитанное сообщение Alex ilmarranen » 03 сен 2007, 20:11:59

Ха-ха-ха… О процедуре .Refresh не зналъ… :-D Векъ живи векъ учись… )) Спасибо…
Alex ilmarranen
 

Delphi

Непрочитанное сообщение DimMan » 06 сен 2007, 14:08:52

Alex ilmarranen писал(а):Ха-ха-ха… О процедуре .Refresh не зналъ… :-D Векъ живи векъ учись… )) Спасибо…


Refresh ? даааа… Вообщето если ты хочешь, чтоб у тебя во время долгого цикла окно не замирало, а реагировало на кнопки, изменяло лабели. Просто в каждой итерации цикла поставь Application.ProcessMessage и будет тебе счастье.

А отображение прогресса можно извратить по всякому:
1. TRadioGroup c несколькими пустыми Items и перебирать ItemIndex в цикле
2. TrackBar и гонять в цикле Position
3. TProgressBar и обнулять например каждые 10 итераций
4. и т.д. твори, выдумывай, пробуй
DimMan
Интересующийся
Интересующийся
 
Сообщения: 68
Зарегистрирован: 25 сен 2006, 10:22:05
Откуда: Kursk

Delphi

Непрочитанное сообщение John » 06 сен 2007, 15:58:19

вощета рефреш и репеинт нифига не панацея от замораживания окна во время выполнения процесса, далеко не всегда помогает да еще и метод этот напильниковый и некрасивый, если хошь оживить форму то делай выполнение отдельным потоком, без всяких таймеров и прочей хрени, понять трудно, но когда поймешь тебя зауши не оттащишь будешь во всех прогах потоки вставлять:)
John
Хранитель
Хранитель
 
Сообщения: 1646
Зарегистрирован: 31 окт 2006, 11:46:39
Пол: Мужской

Delphi

Непрочитанное сообщение Alex ilmarranen » 06 сен 2007, 17:45:34

2DimMan Угу.. спсъ.. :)


2John Засоветуй литературу именно по этому поводу…
А то ёё дофига… и где конкретно искать не разберёшь… Можтъ есть чё конкретное на примете…?

З.Ы. Всем огромное спосибо… Не знаю чтобъ я безъ васъ всехъ делалъ :)
Alex ilmarranen
 

Delphi

Непрочитанное сообщение John » 07 сен 2007, 12:32:07

Alex ilmarranen
практически в любой книге по делфи есть, просто эту тему не особо выделяют и отводят на нее пару листиков, названия книг я уже не помню, стока время прошло с института:)
John
Хранитель
Хранитель
 
Сообщения: 1646
Зарегистрирован: 31 окт 2006, 11:46:39
Пол: Мужской

Delphi

Непрочитанное сообщение Alex ilmarranen » 12 сен 2007, 01:01:36

Найдите 10 отличий… И скажите почему при определённых обстоятельствахъ результатъ разный… Йафшоки…

Код: Выделить всё
procedure JobMas;
var
j,i:integer;
B:real;
begin
     for j:=0 to TableColCount-1 do
         for i:= 0 to TableRowCount-1 do
             begin
                  if M[i,j]<MaxM[j] then
                     begin
                          M[i,j]:=Int((M[i,j]-MinM[j])/IndexM[j]+0.5+1);
                     end
                  else M[i,j]:=PartCount;
             end;
end;



Код: Выделить всё
procedure JobMas;
var
j,i:integer;
B:real;
begin
     for j:=0 to TableColCount-1 do
         for i:= 0 to TableRowCount-1 do
             begin
                  if M[i,j]<MaxM[j] then
                     begin
                          B:=(M[i,j]-MinM[j])/IndexM[j]+0.5+1;
                          M[i,j]:=Int(B);
                     end
                  else M[i,j]:=PartCount;
             end;
end;
Alex ilmarranen
 

Delphi

Непрочитанное сообщение BeteTest » 12 сен 2007, 14:02:13

Alex ilmarranen писал(а):
Код: Выделить всё
M[i,j]

Какого типа элементы массива???

Код: Выделить всё
function Int(const X: Extended): Extended;
asm
        FLD     X
        SUB     ESP,4
        FNSTCW  [ESP].Word     // save
        FNSTCW  [ESP+2].Word   // scratch
        FWAIT
        OR      [ESP+2].Word, 0F00  // trunc toward zero, full precision
        FLDCW   [ESP+2].Word
        FRNDINT
        FWAIT
        FLDCW   [ESP].Word
        ADD     ESP,4
end;
BeteTest
 

Delphi

Непрочитанное сообщение Alex ilmarranen » 12 сен 2007, 14:09:22

Код: Выделить всё
type
    DMasType=array of array of real;
    ColIndexMas=array of real;


Код: Выделить всё
var
   M: DMasType;
   IndexM:ColIndexMas;
Alex ilmarranen
 

Пред.След.

Вернуться в Программирование

Кто сейчас на форуме

Зарегистрированные пользователи: AhrefsBot [Bot], Bing [Bot], DotBot [Crawler], Google [Bot], Majestic-12 [Bot], SEMrush [Бот], Trendiction [Бот], Яндекс [Бот]

cron