Member
Статус: Не в сети Регистрация: 11.11.2004 Откуда: Челябинск
оно не все работает, и с учетом моего постоянного дописывания будет такая же постоянная рассинхронизация.cytaLMV нате поиграйтесь (запаролено)kuq$4sir отцо-основательство за мной
Внимание! Если не качается, значит меня уже нет , или более новая версия лежит где-то дальше по тем
_________________ пишу я программу... и вдруг на клавиатуру выползает bug, буквально
Последний раз редактировалось Rius 16.05.2005 20:28, всего редактировалось 1 раз.
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, буквально
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
Статус: Не в сети Регистрация: 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
Статус: Не в сети Регистрация: 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) - то коннект проходит(правда прога его отключает, это сделано специально), а клиент ни в какую.
Лечится тока перезагрузкой клиентского компа.
Member
Статус: Не в сети Регистрация: 03.01.2003 Откуда: Ростов-на-Дону
У меня возникала следующая проблема, в данный момент пишу программу, которая вынимает данные из Oracle таблиц и поменящает их в формат DBF с досовской кодировкой. И тут меня возникал проблема, вернее программа пашет, просто н могу сделать что бы всё выглядело красиво.
Многие знают, что когда выполняется каке-нить обьёмное задание, то форма как-бы зависает, при этом программа работает, при этом очень хороший способ борьбы с этим является Application.ProcessMessages. Но вот только очень удобная она к примеру, если я пробегаюсь по базе, с первого по последнюю запись. Как например тут:
Код:
while not HalcyonDataSet1.Eof do with HalcyonDataSet1 do begin application.ProcessMessages; Edit; ..... ..... ..... Next; end;
В данном случае, этот оператор меня полностью устраивает, и всё работает просто отлично, фора не замерает, я даже вижу программа идёт по таблице. Но вот когда выполняет немного другая вещь, просто физчески некуда его вставить.
То есть при выполнении QExport3DBF1.Execute форма виснет намертво, куда я не пытался ставить application.ProcessMessages, толку ноль. А именно это операция выполняется больше всего, потому что обьём выкачиваемой базы очень большой, порядка миллиона записей. И форма зависает надолго, я то могу потрепеть, но конечный человек который будет с ней работать возможно и не поймет этого. Посоветуйте что-нить!!
_________________ Just Zerg! Остановим деградацию русского языка, скажем нет удафкомовской лексике!!
То есть при выполнении QExport3DBF1.Execute форма виснет намертво, куда я не пытался ставить application.ProcessMessages, толку ноль. А именно это операция выполняется больше всего, потому что обьём выкачиваемой базы очень большой, порядка миллиона записей. И форма зависает надолго, я то могу потрепеть, но конечный человек который будет с ней работать возможно и не поймет этого. Посоветуйте что-нить!!
Вставь эту операцию в поток(TThread(компонента Delphi) вроде-бы, или BeginThread(без использования компоненты и попроще)). пример юзания:
Код:
h1:=beginthread(nil,1024,@Sniff,nil,0,th1);
где Sniff, та самая процедура
У меня была похожая проблема - прога прослушывала сокет и намертво вешала форму и все события - вставил в поток, стало просто заглядение.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения