Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi

Модерирует : ShIvADeSt

ShIvADeSt (20-04-2006 01:53): http://forum.ru-board.com/topic.cgi?forum=33&topic=6679#1  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102

   

HelL_Doctor



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
а нет видишь в чем загвозтка мало того что надо скопировать так и дискета должна быть сделанна под загрузчик.

Всего записей: 67 | Зарегистр. 30-11-2004 | Отправлено: 05:50 14-04-2005
FAngel



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
HelL_Doctor
Если будешь копировать загрузочную дискету посекторно, получится загрузочная. Но я так понимаю тебе надо самому создать дискету ? Когда то на Паскале я делал нечто похожее на DiskDupe, если найду исходники могу дать, только в вине совсем друго принцип ... Скопировать дискету легко, создать самому проблематично.

Всего записей: 799 | Зарегистр. 04-12-2003 | Отправлено: 06:39 14-04-2005
Shadi



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет!
Есть вопрос. Делаю "выплывающую панель" так:
 
           if not PnMain.Visible then
           begin
            PnMain.Height := 0;
            PnMain.Visible := True;
            i := 0;
            while i <= 265 do
            begin
              PnMain.Height := i + 25;
              i := i + 25;
            end;    // while
           end;
 
Но.. Будет ли это работать на слабых машинах нормально? Может есть другие верные и более правильные решения?  
Заранее благодарен.

Всего записей: 110 | Зарегистр. 07-05-2003 | Отправлено: 09:27 14-04-2005 | Исправлено: Shadi, 09:28 14-04-2005
MrZeRo



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Shadi
Я бы делал через таймер, так как в Вашем случае скорость перемещения будет зависеть от производительности компьютера, а это нехорошо.

Всего записей: 832 | Зарегистр. 30-01-2002 | Отправлено: 10:19 14-04-2005
Shadi



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MrZeRo
 
Маленький примерчик плиз....

Всего записей: 110 | Зарегистр. 07-05-2003 | Отправлено: 11:52 14-04-2005
EZH



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Shadi
Просто в событии OnTimer напиши что то вроде
 
            if i <= 265 then
            begin
              PnMain.Height := i + 25;
              i := i + 25;
            end;
 
 
Добавлено:
i должна быть объявлена как член класса, а не переменная метода

Всего записей: 1738 | Зарегистр. 02-09-2004 | Отправлено: 12:16 14-04-2005
HelL_Doctor



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FAngel
Подскажи пожалуйста, как копировать дискету по секторам

Всего записей: 67 | Зарегистр. 30-11-2004 | Отправлено: 09:25 15-04-2005
FAngel



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
HelL_Doctor
В досе чтение сектора выглядело примерно так :
Function ReadBoot:Integer;
Var b:array[0..1024] of Byte;Reg:Registers;
Begin
    Reg.bx := Ofs(b);
    Reg.es := Seg(b);
    Reg.ah:=$02;
    REg.al:=$1;
    reg.ch:=$0;
    reg.cl:=$1;
    reg.dl:=$80;
    reg.dh:=$1;
    intr($13,reg);
    ReadBoot:=b[39]+b[40]+b[41]+b[42];
End;
Функция читает загрузочный сектор диска и возвращает его серийный номер (FAT16) .... Все в вине есно работать не будет
 
Вот тут http://www.relib.com/forums/topic.asp?id=813614 народ решал проблему с чтением сектора дискеты, тебе подойдет.  

Всего записей: 799 | Зарегистр. 04-12-2003 | Отправлено: 12:51 15-04-2005 | Исправлено: FAngel, 12:53 15-04-2005
YFred



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Люди, подскажите как написать системную службу на Delphi

Всего записей: 211 | Зарегистр. 03-03-2005 | Отправлено: 14:03 15-04-2005
FAngel



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YFred
File, New, Other, Service и вперед

Всего записей: 799 | Зарегистр. 04-12-2003 | Отправлено: 14:29 15-04-2005
Pinocchio

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
YFred
Program Files\Borland\Delphi7\Source\Vcl\ScktSrvr.dpr - эту фигнею половина современных COM/DCOM приложений и не только на делпхи используют.

Всего записей: 683 | Зарегистр. 18-11-2002 | Отправлено: 16:13 15-04-2005
YuraseK

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
To All
 
Может кто сталкивался с такой проблемой в Delphi 7. Проблема заключается в том, что при использовании TChart 7 в проекте были задействованы события OnZoom, OnUndoZoom, OnScroll, для которых были написаны обработчики. Так вот прикол заключается в том, что после сохранения всех изменений в проекте и при последующей загрузке проекта, связь на закладке events для этих событий сбрасывается. Если же создать обработку событий, отличных от трёх вышеперечисленных, то для этих событий на закладке events всё отображается как положено. В чём может быть причина и каковы возможные пути её решения?
 
Заранее спасибо

Всего записей: 575 | Зарегистр. 12-12-2003 | Отправлено: 21:55 15-04-2005 | Исправлено: YuraseK, 21:57 15-04-2005
Ke



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuraseK

Цитата:
Так вот прикол заключается в том, что после сохранения всех изменений в проекте и при последующей загрузке проекта, связь на закладке events для этих событий сбрасывается.  

Глюк наверно.
 

Цитата:
 В чём может быть причина и каковы возможные пути её решения?  

Перезагрузка ?
Можно попробывать переименовать как нибудь по-другому.

Всего записей: 970 | Зарегистр. 29-11-2004 | Отправлено: 06:35 18-04-2005
YFred



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
FAngel

Цитата:
File, New, Other, Service и впере

А как такую программу потом запустить как сервис.

Всего записей: 211 | Зарегистр. 03-03-2005 | Отправлено: 10:22 18-04-2005
FAngel



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YFred
Обычно сервис сначала регистрируют, потом его можно например через консоль запустить.
 
{ **** UBPFD *********** by delphibase.endimus.com ****
>> Инсталляция/удаление сервисов под НТ.
 
Функции для создавания и удаления NT Services.
Можно создать NT Service от текущее приложение. Параметры:
1. CreateNTService(ExecutablePath,ServiceName: String)
ExecutablePath - Полный путь к изполнимого файла от которого создавается NT Service
ServiceName - Имя сервиза которое отобразится в Service Control Manager
Результат:
true - если операциая завершена успешно
false - если есть ошибка. Можно произвести call то
GetLastError чтобы информироваться об естество ошибки
2. DeleteNTService(ServiceName: String):boolean;
ServiceName - имя сервиза подлежающии удаления
Результат:
true - если операциая завершена успешно
false - если есть ошибка. Можно произвести call то GetLastError чтобы
информироваться об естество ошибки
 
Зависимости: WinSVC, Windows
Автор:       Alex Kantchev, stoma@bitex.bg
Copyright:   Собственное написание
Дата:        19 июня 2002 г.
***************************************************** }
 
// CreateNTService(ExecutablePath,ServiceName: String)
// ExecutablePath - Полный путь к изполнимого файла от
// которого создавается NT Service
// ServiceName - Имя сервиза которое отобразится
// в Service Control Manager Результат:
//Результат:
// true - если операциая завершена успешно
// false - если есть ошибка. Можно произвести
// call то GetLastError чтобы информироваться об
// естество ошибки
 
function CreateNTService(ExecutablePath, ServiceName: string): boolean;
var
  hNewService, hSCMgr: SC_HANDLE;
  // Rights: DWORD;
  FuncRetVal: Boolean;
begin
  FuncRetVal := False;
  hSCMgr := OpenSCManager(nil, nil, SC_MANAGER_CREATE_SERVICE);
  if (hSCMgr <> 0) then
  begin
    //Custom service access rights may be built here
    //we use GENERIC_EXECUTE which is combination of
    //STANDARD_RIGHTS_EXECUTE, SERVICE_START, SERVICE_STOP,
    //SERVICE_PAUSE_CONTINUE, and SERVICE_USER_DEFINED_CONTROL
    //You can create own rights and use them as shown in the
    //commented line below.
 
    //Rights := STANDARD_RIGHTS_REQUIRED or SERVICE_START or SERVICE_STOP
    // or SERVICE_QUERY_STATUS or SERVICE_PAUSE_CONTINUE or
    // SERVICE_INTERROGATE;
 
    hNewService := CreateService(hSCMgr, PChar(ServiceName), PChar(ServiceName),
      STANDARD_RIGHTS_REQUIRED, SERVICE_WIN32_OWN_PROCESS,
      SERVICE_DEMAND_START, SERVICE_ERROR_NORMAL,
      PChar(ExecutablePath), nil, nil, nil, nil, nil);
    CloseServiceHandle(hSCMgr);
    if (hNewService <> 0) then
      FuncRetVal := true
    else
      FuncRetVal := false;
  end;
  CreateNTService := FuncRetVal;
end;
 
Запуск сервиса :
 
procedure StartService(ServiceName: string);
var
 
  schService,
    schSCManager: Dword;
  p: PChar;
begin
 
  p := nil;
  schSCManager := OpenSCManager(nil, nil, SC_MANAGER_ALL_ACCESS);
  if schSCManager = 0 then
    RaiseLastWin32Error;
  try
    schService := OpenService(schSCManager, PChar(ServiceName),
      SERVICE_ALL_ACCESS);
    if schService = 0 then
      RaiseLastWin32Error;
    try
      if not Winsvc.startService(schService, 0, p) then
        RaiseLastWin32Error;
    finally
      CloseServiceHandle(schService);
    end;
  finally
    CloseServiceHandle(schSCManager);
  end;
end;
 
 

Всего записей: 799 | Зарегистр. 04-12-2003 | Отправлено: 12:52 18-04-2005
vserd

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuraseK

Цитата:
Так вот прикол заключается в том, что после сохранения всех изменений в проекте и при последующей загрузке проекта, связь на закладке events для этих событий сбрасывается.  

Иногда такое наблюдалось и на младших версиях. Просто вставь в код принудительное прописывание этих обработчиков. (самое простое решение).
Второе решение это попробовать создать форму заново, не всегда но помогало.

Всего записей: 2065 | Зарегистр. 08-05-2002 | Отправлено: 13:28 18-04-2005
MrZeRo



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuraseK
Я бы воспользовался версией Tee Chart Pro (поставляется отдельно от Delphi), там есть исходники, можно в случае чего определить причину. Сам пользуюсь постоянно только Pro - версией, и все благополучно было пока.

Всего записей: 832 | Зарегистр. 30-01-2002 | Отправлено: 15:41 19-04-2005
papirus3



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Может здесь помогут.
Необходимо написать генератор случайный чисел работающий по нормальному распределению. Алоритм написан необходимо построить график и вывести таблицу вероятность переода из каждой точки в любую. Проблема заключается в том что вероятность в центре фигуры по таблице идёт реальная уменьшаясь к краям. Но на последних значениях вместо того что-бы обратиться практически в 0 наблюдается необьяснимый всплеск. Причём чем больше количество опытов тем результат на концах более бредовый. В чём может быть проблема.
 
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, TeEngine, Series, ExtCtrls, TeeProcs, Chart, ComCtrls,
  Grids,math;
 
type
  TForm1 = class(TForm)
    Chart1: TChart;
    Button1: TButton;
    LECount: TLabeledEdit;
    LEDis: TLabeledEdit;
    PB: TProgressBar;
    Label1: TLabel;
    SG: TStringGrid;
    LEMat: TLabeledEdit;
    Series1: TAreaSeries;
    procedure Button1Click(Sender: TObject);
  private
    procedure GrdClear;
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.GrdClear;    //&#207;&#240;&#238;&#246;&#229;&#228;&#243;&#240;&#224; &#238;&#247;&#232;&#241;&#242;&#234;&#232;
var
 i,j:byte;
begin
 SG.Cols[0].Clear;
 for i:=1 to 30 do
 begin
  SG.Cols[i].Clear;
  SG.Cells[0,i]:=inttostr(i);
  SG.Cells[i,0]:=inttostr(i);
 end;
end;
 
 
procedure TForm1.Button1Click(Sender: TObject);
var
 i,j,k,l,colcount,mat:integer;
 count: array [-100 .. 100]of longint;
 cnt:array[-34..34,-34..34] of longint;
 cnt2:array[-34..34] of longint;
 dis,znach,znachp:real;
 numcount,min:longint;
 U : Double;
 V : Double;
 S : Double;
 Sum : Double;
begin
 Button1.Caption:='&#195;&#229;&#237;&#229;&#240;&#232;&#240;&#243;&#229;&#242;&#241;&#255; ...';
 Button1.Enabled:=false;
 Button1.Repaint;
 PB.Position:=0;
 PB.Max:=0;
 PB.Min:=0;
 colcount:=strtoint(LECount.Text);
 dis:=strtofloat(LEDis.Text);
 mat:=strtoint(LEMat.Text);
 Chart1.Series[0].Clear;
 PB.Max:=colcount;
 for i:=-34 to 34 do cnt2[i]:=1;
 for i:=-34 to 34 do for j:= -34 to 34 do cnt[i,j]:=0;
 for i:=-100 to 100 do count[i]:=0;
 znachp:=1;
 for i:=0 to colcount-1 do
 begin
 
 sum:=2;
 repeat
  u := (2*floor( Random(2))-1)*Random;
  v := (2*floor(Random(2))-1)*Random;
  sum := u*u+v*v;
 until (sum<1) and (sum>0);
 sum := sqrt(-2*ln(sum)/sum);
 znach := dis*u*sum+mat;
 
  if (znach>-99) and (znach <99) then
  begin
   count[round(znach)]:=count[round(znach)]+1;
 
   k:=round(znachp);
   if k<-99 then k:=-99;
   if k>99 then k:=99;
   k:=k div 3;
   l:=round(znach);
   if l<-99 then l:=-99;
   if l>99 then l:=99;
   l:=l div 3;
   cnt[k,l]:=cnt[k,l]+1;
   cnt2[l]:=cnt2[l]+1;
   znachp:=znach;
  end;
  if (i /(colcount div 100))=(i div (colcount div 100)) then PB.Position:=i;
 end;
 
//&#209;&#242;&#240;&#238;&#232;&#236; &#227;&#240;&#224;&#244;&#232;&#234;
 for i:=-99 to 99 do
 begin
  if(count[i]>0) then Chart1.Series[0].AddXY(i,count[i]);
 end;
 
 numcount:=0;
 min:=-500;
 for i:=-33 to 33 do
  if cnt2[i]>1 then
  begin
   numcount:=numcount+1;
   if min=-500 then min:=i;
  end;
 
 //&#195;&#240;&#224;&#237;&#232;&#246;&#251; &#228;&#235;&#255; &#242;&#224;&#225;&#235;&#232;&#246;&#251;
 SG.ColCount:=numcount+2;
 SG.RowCount:=numcount+2;
 
 //&#205;&#243;&#236;&#229;&#240;&#243;&#229;&#236; &#242;&#224;&#225;&#235;&#232;&#246;&#243;
 for i:=min to min+numcount do
 begin
  SG.Cells[0,i-min+1]:=inttostr(i);
  SG.Cells[i-min+1,0]:=inttostr(i);
 end;
 
 //&#199;&#224;&#239;&#238;&#235;&#237;&#255;&#229;&#236; &#242;&#224;&#225;&#235;&#232;&#246;&#243;
 for i:=min to min+numcount do
  for j:=min to min+numcount do
   if cnt2[j]<>1 then SG.Cells[i-min+1,j-min+1]:=floattostr(cnt[j,i]/(cnt2[j]-1)*100);   //&#199;&#224;&#239;&#238;&#235;&#237;&#255;&#229;&#236; &#255;&#247;&#229;&#233;&#234;&#232;
 PB.Position:=colcount;
 Button1.Caption:='&#195;&#229;&#237;&#229;&#240;&#232;&#240;&#238;&#226;&#224;&#242;&#252;';
 Button1.Enabled:=true;
end;
 
end.
 
Русский текст здесь был несущественнен.
http://up.li.ru/files/2005/04/19/53787.JPG;ACDSee+7.0+BMP+Image.JPG

Всего записей: 72 | Зарегистр. 09-01-2005 | Отправлено: 22:33 19-04-2005
Larry Laffer



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Подскажите, где можно почитать про программирование сервисов на Delphi? Общий принцип понятен, но хотелось бы узнать о некоторых тонкостях (включая создание событий типа OnInstall и пр.)
 
Заранее благодарен...

Всего записей: 604 | Зарегистр. 09-10-2004 | Отправлено: 12:22 23-04-2005
Tema



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
papirus3
Слушай, кинь человеческую версию программы, а не
Цитата:
 //&#199;&#224;&#239;&#238;&#235;&#237;&#255;&#229;&#236; &#242;&#224;&#225;&#235;&#232;&#246;&#243;

Совершенно пропадает желание разбираться.
Сделай, чтобы было по-русски.
 
 
Добавлено:
Larry Laffer
Думаю много можно найти, например, тут: http://www.delphikingdom.ru/table/search.asp?namekey=%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81&ItemID=&isQuestion=1&Qwaddress=&TypeEqv=0&Count=10

Всего записей: 125 | Зарегистр. 10-11-2003 | Отправлено: 15:32 23-04-2005
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi
ShIvADeSt (20-04-2006 01:53): http://forum.ru-board.com/topic.cgi?forum=33&topic=6679#1


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru