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




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 2317 • Страница 38 из 116<  1 ... 35  36  37  38  39  40  41 ... 116  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 11.11.2004
Откуда: Челябинск
:bandhead: оно не все работает, и с учетом моего постоянного дописывания будет такая же постоянная рассинхронизация.cytaLMV
нате поиграйтесь (запаролено)kuq$4sir
отцо-основательство за мной :)

Внимание! Если не качается, значит меня уже нет :) , или более новая версия лежит где-то дальше по тем

_________________
пишу я программу... и вдруг на клавиатуру выползает bug, буквально


Последний раз редактировалось Rius 16.05.2005 20:28, всего редактировалось 1 раз.


Партнер
 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Завтра на работе капну. Думаю можно будет доделать чтобы полностью все работало как надо :)


 

Member
Статус: Не в сети
Регистрация: 10.02.2004
Откуда: msk
Чот я совсем торможу :). Как создать двумерный динамический массив большого размера порядка 10000*1000?
А то получается создать только массив до 1000*1000 :(.
Срочно надо, рыться в литературе некода :).


 

Member
Статус: Не в сети
Регистрация: 30.01.2003
Откуда: Москва
lex-chem
Код:
var i: Integer;
begin
  i := 0;
  try
    SetLength( FArr, 10000 );
    while ( i < 10000 ) do
      begin
      SetLength( FArr[ i ],  10000 );
      Inc( i );
      end;
  except on E: Exception do
    ShowMessage( IntToStr( i ) + ': ' + E.Message );
  end;
end;


А можно и просто выдедлить кусок памяти: GetMem( ptr, 10000*10000 ) и самому высчитывать элемент по индексу...


 

Member
Статус: Не в сети
Регистрация: 11.11.2004
Откуда: Челябинск
lex-chem В bc3_1 встречал тип huge, с ним можно было делать большие массивы. Здесь должно быть что-то подобное.

вот пример программы со стилями
немного подправленная версия компонент, теперь выдерживают горячее переключение стилей винды.

Внимание! Если не качается, значит меня уже нет :) , или более новая версия лежит где-то дальше по теме.

Ray Adams
Если применена нестандартная схема (не голубая XP, которая по умолчанию), функция DrawThemeBackground рисует кнопку collapse/expand у панели групп, отличную от примененной в Windows Explorer'е. Как оказалось, Windows вытаскивает эти изображения из библиотеки shellstyle.dll.
Вопрос: как мне их оттуда вытащить? А то все красиво выглядит только в умолчальной теме.
Хэндл библиотеки можно получить через SHGetShellStyleHInstance , а вот какие именно идентификаторы искать...
Есть подозрения, что надо просматривать "документацию" визуального стиля, хранящуюся в нем, через функции ThemeApi, какие оказывается это дебри...

_________________
пишу я программу... и вдруг на клавиатуру выползает bug, буквально


 

Member
Статус: Не в сети
Регистрация: 10.02.2004
Откуда: msk
Asteroid
Цитата:
А можно и просто выдедлить кусок памяти: GetMem( ptr, 10000*10000 ) и самому высчитывать элемент по индексу...

А можно примерчик маааааааааааааааааааааленький :).


 

Member
Статус: Не в сети
Регистрация: 14.08.2003
Откуда: Питер
lex-chem
А что Asteroid написал непонятного?
Да и поиск рулит.

_________________
Лучшая зашита - это нападение.


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Цитата:
Чот я совсем торможу Smile. Как создать двумерный динамический массив большого размера порядка 10000*1000?
А то получается создать только массив до 1000*1000 Sad.
Срочно надо, рыться в литературе некода Smile

Почему не получается?
type TMyArray=array[0..1000] of integer;
var MyDoubleArray:array[0..10000] of TMyArray;


 

Member
Статус: Не в сети
Регистрация: 08.09.2004
Ключевое слово было двумерный динамический массив

_________________
Да здравствует то, благодаря чему, мы не смотря ни на что...


 

Member
Статус: Не в сети
Регистрация: 30.01.2003
Откуда: Москва
lex-chem мааааааааленький примерчик :) width, height - размеры массива, изначально по 10000; arr имеет тип PInteger.
Код:
Выделение памяти:
GetMem( arr, width*height*sizeof(Integer) );  // вместо Integer - свой тип данных, который нужен

Повторное выделение:
ReallocMem( arr, width*height*sizeof( Integer ) );  // так же можно и выделять память в первй раз

Освобождение:
FreeMem( arr );

Доступ:
function Index( x, y: Integer ): PInteger;
begin
  Result := PInteger( Cardinal( arr ) + ( width * y + x ) * sizeof( Integer ) );
end;


 

Member
Статус: Не в сети
Регистрация: 21.06.2004
Откуда: Тобольск
ТРаблы с прогой. Есть текст, я разбиваю его на слова и ввожу в массив. Затем мне надо вывести гистограмму этих слов. Я рисую в Image1, и изменяю его размер в зависимости от кол-ва слов и их длин. Когда я первый раз строю гистограмму то всё нормально, но при следующих построениях размер белого поля(image1) не изменяется и больше слов не входит (их не видно), более длинные слова тоже усекаются.

это ввод в массив:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var text:string;
    i:integer;
begin
n:=0;
max:=0;
text:=edit1.Text;
for i:=1 to length(text) do
  begin
  if text[i]<>' ' then
  if ((text[i-1]=' ') or (i=1)) and (text[i]<>' ')  then
    begin
    n:=n+1;
    mastext[n]:=text[i];
    end
  else mastext[n]:=concat(mastext[n],text[i]);
  if (length(mastext[n])>max) and (n<>0) then max:=length(mastext[n]);
  end;
postroenie;
end;



это само построение:
Код:
procedure TForm1.postroenie;
var
i:integer;
begin
image1.Height:=n*20+30;
image1.Width:=max*5+40;
for i:=1 to n do
  begin
  with image1.Canvas do
    begin
    Brush.Color := clRed;
    FillRect(rect(20,20*i,20+5*length(mastext[i]),20*i+15));
    end;
  end;
end;


как исправить проблему???????


 

Member
Статус: Не в сети
Регистрация: 14.08.2003
Откуда: Питер
Вопрос.
Допустим при отработке события OnCloseQuery формы запускаю сообщение типа
Код:
MessageDlg('Вы уверены что хотите выйти?',mtCustom,[mbOk,mbNo],0);

Так вот как понять какую кнопку нажал юзер?

_________________
Лучшая зашита - это нападение.


 

Member
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
Halfback
Код:
 if MessageDlg('Вы уверены что хотите выйти?',mtCustom,[mbOk,mbNo],0)=mrOk then
   Application.Terminate;

_________________
Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)


 

Member
Статус: Не в сети
Регистрация: 23.09.2004
Откуда: Казань
Вот только вместо Ok лучше поставить Yes, имхо :) .

_________________
(с) 2006, NecroSoft


 

Member
Статус: Не в сети
Регистрация: 16.11.2004
Откуда: Пенза
lex-chem писал(а):
Чот я совсем торможу :). Как создать двумерный динамический массив большого размера порядка 10000*1000?
А то получается создать только массив до 1000*1000 :(.
Срочно надо, рыться в литературе некода :).


Код:
var
  s:array of array of integer;
begin
  SetLength(s,10000,10000);

Размерность массива может быть и больше.
Дальше делаем все, что захотим. Не забываем, что под такой массив надо почти 400Мб памяти.


 

Member
Статус: Не в сети
Регистрация: 02.03.2005
Откуда: Владивосток
2ALL Трабл с TServerSocket+TClientSocket+Delphi 5.0

ТАкое дело - написал прогу аля Интернет-кафе, т.е. есть сервак(WinXPSP2rus) и есть клиенты в сети(W2KSP3rus). На сервере прога использует для связи стандартную компоненту TServerSocket, на клиентах соответственно TClientSocket.
Проблема в следующем - иногда клиент отказывается делать Connect к серверу. Хотя если я просто в IE пытаюсь коннект к серверу на нужный порт(типа _http://192.168.0.1:2222) - то коннект проходит(правда прога его отключает, это сделано специально), а клиент ни в какую.
Лечится тока перезагрузкой клиентского компа.

Help...


 

Member
Статус: Не в сети
Регистрация: 03.01.2003
Откуда: Ростов-на-Дону
У меня возникала следующая проблема, в данный момент пишу программу, которая вынимает данные из Oracle таблиц и поменящает их в формат DBF с досовской кодировкой. И тут меня возникал проблема, вернее программа пашет, просто н могу сделать что бы всё выглядело красиво.

Многие знают, что когда выполняется каке-нить обьёмное задание, то форма как-бы зависает, при этом программа работает, при этом очень хороший способ борьбы с этим является Application.ProcessMessages. Но вот только очень удобная она к примеру, если я пробегаюсь по базе, с первого по последнюю запись. Как например тут:

Код:
while not HalcyonDataSet1.Eof do
with HalcyonDataSet1 do
begin
application.ProcessMessages;
Edit;
.....
.....
.....
Next;
end;


В данном случае, этот оператор меня полностью устраивает, и всё работает просто отлично, фора не замерает, я даже вижу программа идёт по таблице. Но вот когда выполняет немного другая вещь, просто физчески некуда его вставить.

Код:
QExport3DBF1.FileName :='******.dbf';
OracleDataSet1.DisableControls;
QExport3DBF1.Execute;
OracleDataSet1.EnableControls


То есть при выполнении QExport3DBF1.Execute форма виснет намертво, куда я не пытался ставить application.ProcessMessages, толку ноль. А именно это операция выполняется больше всего, потому что обьём выкачиваемой базы очень большой, порядка миллиона записей. И форма зависает надолго, я то могу потрепеть, но конечный человек который будет с ней работать возможно и не поймет этого. Посоветуйте что-нить!!

_________________
Just Zerg! Остановим деградацию русского языка, скажем нет удафкомовской лексике!!


 

Member
Статус: Не в сети
Регистрация: 02.03.2005
Откуда: Владивосток
Zеrg писал(а):
...Но вот когда выполняет немного другая вещь, просто физчески некуда его вставить.

Код:
QExport3DBF1.FileName :='******.dbf';
OracleDataSet1.DisableControls;
QExport3DBF1.Execute;
OracleDataSet1.EnableControls


То есть при выполнении QExport3DBF1.Execute форма виснет намертво, куда я не пытался ставить application.ProcessMessages, толку ноль. А именно это операция выполняется больше всего, потому что обьём выкачиваемой базы очень большой, порядка миллиона записей. И форма зависает надолго, я то могу потрепеть, но конечный человек который будет с ней работать возможно и не поймет этого. Посоветуйте что-нить!!


Вставь эту операцию в поток(TThread(компонента Delphi) вроде-бы, или BeginThread(без использования компоненты и попроще)).
пример юзания:

Код:
h1:=beginthread(nil,1024,@Sniff,nil,0,th1);

где Sniff, та самая процедура

У меня была похожая проблема - прога прослушывала сокет и намертво вешала форму и все события - вставил в поток, стало просто заглядение.

Если надо подробнее пример - пиши в личку


 

Member
Статус: Не в сети
Регистрация: 20.11.2003
Может кому пригодится:

Большой CHM-Faq по дельфи. 9.5Mb
Наборчик весьма полезных процедур в *.pas - файле
Создание иконги (*.lnk) для программы очень пригодилось, всякие там запуск программы с ожиданием завершения и проч. Радует, что можно просто Ctrl+C , Ctrl+V


 

Member
Статус: Не в сети
Регистрация: 03.01.2003
Откуда: Ростов-на-Дону
Mike-L Спасибо, процедурки скачал:)

Добавлено спустя 7 минут, 42 секунды:
Mike-L Токо чё-та архив не распоковывается :(

_________________
Just Zerg! Остановим деградацию русского языка, скажем нет удафкомовской лексике!!


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 2317 • Страница 38 из 116<  1 ... 35  36  37  38  39  40  41 ... 116  >
-

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


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

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


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

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