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




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 2317 • Страница 62 из 116<  1 ... 59  60  61  62  63  64  65 ... 116  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 27.01.2005
Откуда: Москва
Фото: 4
Пользуюсь в Дельфи ActionMainMenuBar , так вот вставляю новый элемент и дельфя подвисает... Это глюк дельфи???

_________________
Молчание - золото.
Смерть, не повод нарушать присягу.



Партнер
 

Member
Статус: Не в сети
Регистрация: 31.01.2004
Откуда: moskow
Привет, кто может сказать как посчитать сколько памяти займет цикл
Напр:
Код:
repeat
   r :=power(-1,i);
   r1:=(2*i)+1;
   arco:=arco+(r)/(r1);
  ...
  ...
   r :=power(-1,(i+7));
   r1:=(2*(i+7))+1;
   arco:=arco+(r)/(r1);
   inc(i,8);
 until i>=24000000;

т. е. на сколько можно разворачивать цикл, чтобы он поместился в кэш процессора L1?
Может есть такая прога или методика подсчета?


 

Member
Статус: Не в сети
Регистрация: 02.03.2003
Откуда: Pink Bird M.I.
Товарищи, подскажите, пожалуйста, способ выводить таблицу(просто текстовую) с разноцветным текстом в разных строках. Обычные компоненты, работающие со списками или таблицами такое не могут AFAIK. Друг посоветовал сделать через вывод сгенеренного html, но способ, конечно не очень удачный(писать на диск/читать).
Добавлено спустя 21 минуту, 58 секунд
Забыл сказать, ещё нужно выбирать определеную строчку, что в окне броузера сделать очень сложно, если возможно.

_________________
Everything counts in large amounts.


 

Junior
Статус: Не в сети
Регистрация: 19.09.2005
Откуда: Подольск
А что, onDrawCell отменили уже ?

_________________
Linux - must die.
Долгих лет тебе, Билли !


 

Member
Статус: Не в сети
Регистрация: 04.01.2004
Откуда: 31
Kola
Автор: Alex Schlecht

1. StringGrid
=============
Для раскрашивания будем использовать событие "OnDrawCell". Следующий код показывает, как сделать в Grid красный бэкраунд. Бэкграунд второй колонки будет зелёным.

Код:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; 
  Rect: TRect; State: TGridDrawState); 

Const   //сдесь определяем Ваш цвет. Так же можно использовать 
        //цвета по умолчанию. 
  clPaleGreen = TColor($CCFFCC); 
  clPaleRed =   TColor($CCCCFF); 

begin 

//Если ячейка получает фокус, то нам надо закрасить её другими цветами 
if (gdFocused in State) then begin     
   StringGrid1.Canvas.Brush.Color := clBlack; 
   StringGrid1.Canvas.Font.Color := clWhite; 
end 
else  //Если же ячейка теряет фокус, то закрашиваем её красным и зелёным 

   if ACol = 2   //Вторая колонка будет зелёной , другие - ячейки красными 
    then StringGrid1.Canvas.Brush.color := clPaleGreen 
    else StringGrid1.canvas.brush.Color := clPaleRed; 

//Теперь закрасим ячейки, но только, если ячейка не Title- Row/Column 
//Естевственно это завит от того, есть у Вас title-Row/Columns или нет. 

If (ACol > 0) and (ARow>0) then 
  begin 
      //Закрашиваем бэкграунд 
    StringGrid1.canvas.fillRect(Rect); 

      //Закрашиваем текст (Text). Также здесь можно добавить выравнивание и т.д.. 
    StringGrid1.canvas.TextOut(Rect.Left,Rect.Top,StringGrid1.Cells[ACol,ARow]); 
  end; 
end; 


 

Member
Статус: Не в сети
Регистрация: 02.03.2003
Откуда: Pink Bird M.I.
S.Q.Lapp, спасибо! Надеюсь, поможет. :beer:

_________________
Everything counts in large amounts.


 

Member
Статус: Не в сети
Регистрация: 02.03.2005
Откуда: Владивосток
Кто работал в связке Delphi+MySql 5 подскажите: Юзаю Delphi 7+ZeosLib+MySql5, проблема в следующем - периодически при выполнении запроса(SELECT ...) вываливается ошибка "Lost connection during query", делаеш запрос занова - все работает. Прочитал в инете что это может связано с большими объемами информации, читаемой или записываемой в базу - увеличил переменную "Max. packet size" до 16M - не помогает. Да кстати пробовал и на Win платформе, и на Unix - результат один и тот же. Версия мускула - 5.0.18

В ЧЕМ МОЖЕТ БЫТЬ ПРОБЛЕМА ???


 

Member
Статус: Не в сети
Регистрация: 08.01.2003
Откуда: Россия, Иркутск
Подскажите, плз,
вообщем летает шарик по paintbox и отскакивает от стенок, как сделать чтобы при этом окно не подвисало??

Код:
var
  frm: Tfrm;
  x,y:real;
implementation

{$R *.dfm}

procedure Tfrm.FormPaint(Sender: TObject);
var
 vx,vy,we:integer;
 t,h:real;
begin
  vx:=2;
  vy:=3;
  x:=100;
  y:=50;
  t:=0;
  h:=0.01;
  we:=10;
  paintbox.Parent.DoubleBuffered:=true;
  paintbox.canvas.Brush.Color:=clwhite;
  paintbox.Canvas.Ellipse(-1000,-1000,1000,1000);
 repeat
  x:=x+vx*t;
  y:=y+vy*t;
  if (x<=0) or (x>=paintbox.Width-we) then vx:=-vx;
  if (y<=0) or (y>=paintbox.Height-we)  then vy:=-vy;
  t:=t*h;
   paintbox.canvas.Brush.Color:=clwhite;
   paintbox.Canvas.Ellipse(-1000,-1000,1000,1000);
   paintbox.canvas.Brush.Color:=clred;
  paintbox.Canvas.Ellipse(round(x),round(y),round(x+we),round(y+we));
  sleep(50);
  t:=t+1;
 until  t=1000;
end;

end.

_________________
Если ты не смотрел Evangelion - ты не жил
Ричи Блэкмор - Бог!


 

Junior
Статус: Не в сети
Регистрация: 19.09.2005
Откуда: Подольск
Варианты:

1. Сделать задний буфер на базе TBitmap, равному по размеру с PaintBox, отрисовки делать в нем в потоке. после until отрисовывать буфер на экране через метод Synchronize.

paintbox.Parent.DoubleBuffered - это не прокатывает.

2. Вставить Application.ProcessMessages где-то между repeat и until.

Я бы использовал первый способ.

_________________
Linux - must die.
Долгих лет тебе, Билли !


 

Member
Статус: Не в сети
Регистрация: 08.01.2003
Откуда: Россия, Иркутск
Есть ещё третий вариант, а именно - TTimer, я его и заюзал))

_________________
Если ты не смотрел Evangelion - ты не жил
Ричи Блэкмор - Бог!


 

Member
Статус: Не в сети
Регистрация: 17.09.2003
Откуда: UA г.Донецк
Вопрос как сделать запуск процедуры на определенное время. Чтоб допустим она отработала 2сек и потом, не важно от того выполнилась или нет, ее грохать?

_________________
Debian Lenny/Sid
при установке линукс не пострадал ни один пингвин, полегли все дятлы


 

Junior
Статус: Не в сети
Регистрация: 19.09.2005
Откуда: Подольск
Странная задача :-)

Как вариант:

Делаешь thread, в нем запускаешь процедуру, извне контролируешь, сколько работает процедура,
и если ее пора гасить, то вызываешь просто Terminate.

Но все равно, твоя процедура должна быть написана с кучей затычек типа
if Terminated then Exit;

_________________
Linux - must die.
Долгих лет тебе, Билли !


 

Member
Статус: Не в сети
Регистрация: 17.09.2003
Откуда: UA г.Донецк
defecator
Ладно тогда вопрос поставим по другомку, наверное так правильнее будет, как мне поставить тайм аут для доступа к серверу. Преобразуется DNS в IP . Так вот некоторые их них могут думать очень долго, или вообще висеть, что мне ненадо. Как от этого избавится??

_________________
Debian Lenny/Sid
при установке линукс не пострадал ни один пингвин, полегли все дятлы


 

Junior
Статус: Не в сети
Регистрация: 19.09.2005
Откуда: Подольск
Обычно все такие процедуры имеют в качестве доп. параметра значение таймаута.

Чего ты юзаешь ?

_________________
Linux - must die.
Долгих лет тебе, Билли !


 

Member
Статус: Не в сети
Регистрация: 17.09.2003
Откуда: UA г.Донецк
defecator вод код функци
Цитата:
function HostToIP(name: string; Ip: string):boolean;
var
wsdata : TWSAData;
hostName : array [0..255] of char;
hostEnt : PHostEnt;
addr : PChar;
begin
WSAStartup ($0101, wsdata);
try
application.ProcessMessages;
gethostname (hostName, sizeof (hostName));
StrPCopy(hostName, name);
hostEnt := gethostbyname (hostName);
if Assigned (hostEnt) then
if Assigned (hostEnt^.h_addr_list) then begin
addr := hostEnt^.h_addr_list^;
if Assigned (addr) then begin
IP := Format ('%d.%d.%d.%d', [byte (addr [0]),
byte (addr [1]), byte (addr [2]), byte (addr [3])]);
Result:= True;
end
else
Result := False;
end
else
Result := False
else begin
Result := False;
end;
finally
WSACleanup;
end
end;

_________________
Debian Lenny/Sid
при установке линукс не пострадал ни один пингвин, полегли все дятлы


 

Junior
Статус: Не в сети
Регистрация: 19.09.2005
Откуда: Подольск
Понятно.

Короче, вот тут:
http://www.overbyte.be
http://www.rtfm.be/fpiette/indexuk.htm
http://users.swing.be/francois.piette/indexuk.htm

есть фриварная библиотека "ICS - Internet Component Suite" для работы с Winsocket.

Бери и юзай. Там все сделано асинхронно и ничего не тормозит. Сам только ее и юзаю.
Зачем изобретать велосипед ?

_________________
Linux - must die.
Долгих лет тебе, Билли !


 

Member
Статус: Не в сети
Регистрация: 17.09.2003
Откуда: UA г.Донецк
defecator
Цитата:
Бери и юзай. Там все сделано асинхронно и ничего не тормозит. Сам только ее и юзаю.
Зачем изобретать велосипед ?

Осталось только разобраться :insane:

_________________
Debian Lenny/Sid
при установке линукс не пострадал ни один пингвин, полегли все дятлы


 

Junior
Статус: Не в сети
Регистрация: 19.09.2005
Откуда: Подольск
А что там разбираться-то ???
Уж более простого я не видел.

А также КУЧА примеров, в том числе есть ну просто готовый пример того, что ты хочешь делать.

_________________
Linux - must die.
Долгих лет тебе, Билли !


 

Member
Статус: Не в сети
Регистрация: 17.09.2003
Откуда: UA г.Донецк
defecator Есть и такое Просто вопрос как дождаться завершения поиска DNS ??? В примерах просто по событию отслеживают. Как мне в куске кода дождатся запершения поиска???
Код:
{Запрос ip по DNS}
WSocket1.DnsLookup(Reversip+DNSBL[i]);

... какой параметр проверять на то что поиск закончен??

{считывание  первого адреса}
AnsBL:=WSocket1.DnsResultList[1];


или лепить отдельно процедуру по типу
WSocket1DnsLookupDone( Error: Word); в которой и снимать результат?

_________________
Debian Lenny/Sid
при установке линукс не пострадал ни один пингвин, полегли все дятлы


 

Junior
Статус: Не в сети
Регистрация: 19.09.2005
Откуда: Подольск
Да, так оно лучше будет.

Хотя я делал бы поток.
Т.е. запустил поток, он пусть там висит, сколько нужно,
потом, если не выполнился за указанное время - Terminate.
Если выполнился - вернет результат.
Добавлено спустя 38 минут, 25 секунд
Кстати, с ICS я исключительно через потоки работаю.

_________________
Linux - must die.
Долгих лет тебе, Билли !


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 2317 • Страница 62 из 116<  1 ... 59  60  61  62  63  64  65 ... 116  >
-

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


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

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


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

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