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

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

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

ShIvADeSt (07-04-2008 02:27): продолжение в http://forum.ru-board.com/topic.cgi?forum=33&topic=9383  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

ShamaN



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

Всего записей: 1297 | Зарегистр. 23-09-2004 | Отправлено: 11:50 17-09-2007
AntonVA1



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ShamaN
Со времён вынь98 я это делаю примерно так:

Цитата:
 
function EditService(var ID: Integer): Boolean;
begin
  with TServiceEditForm.Create(Application) do
  try
    Result:=ShowModal=mrOK;
  finally Free;
  end;
end;
 
 
Вроде, таких проблем никогда не замечал, хотя с 98 ушел уже очень давно.
У меня таким образом открывались все формы редактирования, а их штук 20 в проге, скорее всего, меня бы юзеры задолбали этой проблемой.
 
Добавлено:
Вроде то же самое, хотя в чужих программах я такое тоже замечал, обычно это происходило во время тормозов компа- попробуй разгрузить процесс загрузки формы- убери от туда открытие запросов, и т.д. Это можно делать в другой форме, открытой ранее.

Всего записей: 474 | Зарегистр. 17-09-2003 | Отправлено: 12:25 17-09-2007
GreatOne



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет!
У меня возник следующий вопросец:
В проге есть несколько обьектов у которых на определенное событие выполняеться одна и таже процедура. Вопрос в следующем - если у весх этих обьектов одновременно будет вызванно это событие, то эта процедура выполниться у всех обьектов?? Или какие-то будут пропущенны? Если выполниться у всех, то в каком порядке будет выполньтся процедура(если одновременно будет вызванна)?
 
P.S. Простите меня нуба

Всего записей: 85 | Зарегистр. 15-03-2007 | Отправлено: 13:31 17-09-2007
antonn2

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GreatOne
нет такого понятия "одновременно" в однопоточном приложении. одновременно выполняется только одно "действие", как оно отработает, дальше перейдет очередь выполнения к событию другого объекта.
 
Короче не парься%)

Всего записей: 96 | Зарегистр. 13-11-2006 | Отправлено: 14:07 17-09-2007 | Исправлено: antonn2, 14:08 17-09-2007
skinash



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GreatOne
Запусти отладку и по F8 смотри что за чем выполняется. Так более наглядно, но вредно для программирования. Это говорит о плохом стиле проектирования программы.

Всего записей: 145 | Зарегистр. 21-09-2006 | Отправлено: 09:28 18-09-2007
diodio



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Уважаемые гуру.
Задался целью спрятать программу в трей.
 
procedure TForm1.ControlWindow(var Msg: TMessage);  
begin
if Msg.WParam = SC_MINIMIZE then
begin
Ic(1, Application.Icon); // Добавляем значок в трей
ShowWindow(Handle, SW_HIDE); // Скрываем программу
end
else
inherited;
end;
 
Сама форма скрывается, но в в панели задач сама программка остается висеть.
Я так понимаю, что-то я пропустил? Как убрать?
Ногами просьба не пинать, я только начинаю кодить...  

Всего записей: 111 | Зарегистр. 26-12-2006 | Отправлено: 11:49 18-09-2007 | Исправлено: diodio, 11:52 18-09-2007
RostY



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
diodio
нужно сделать что-то типа:
 
Application.OnMinimize := HideForm;
 
procedure TForm1.HideForm(Sender: TObject);
begin
   ShowWindow(Application.Handle, SW_HIDE);
end;
 
или тут глянь _http://www.delphimaster.ru/cgi-bin/forum.pl?id=1189229108&n=18

Всего записей: 387 | Зарегистр. 11-01-2006 | Отправлено: 11:56 18-09-2007 | Исправлено: RostY, 12:01 18-09-2007
diodio



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Угу, спасибо, помогло.

Всего записей: 111 | Зарегистр. 26-12-2006 | Отправлено: 12:50 18-09-2007
mdid

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
есть dll
library work;
 
uses
  SysUtils,ShellApi,Messages,Classes,Windows,Registry;
 
 
procedure WriteToReg(Programm:string;OpenK:String;Value:String);stdcall;
var
  Reg   : TRegistry;
begin
    Reg := TRegistry.Create;
    Reg.RootKey :=HKEY_CURRENT_USER;
    Reg.OpenKey('\Software\BlackRose\'+programm, True);
    Reg.WriteString(OpenK,Value);
    Reg.CloseKey;
    Reg.Free;
end;
 
 
function ReadFromReg(Programm:string;Value:String):String; stdcall;
var
  Reg   : TRegistry;
begin
    Reg:=TRegistry.Create;
    Reg.RootKey:=HKEY_CURRENT_USER;
    Reg.OpenKey('\Software\BlackRose\'+programm, True);
    Result:=Reg.ReadString(value);
    Reg.CloseKey;
    Reg.Free;
end;
 
exports   WriteToReg,ReadFromReg;
 
begin
end.
есть тестовая прога
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,ShellApi, StdCtrls,Registry;
 
type
  TForm1 = class(TForm)
    Edit1: TEdit;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
{$IFNDEF work}
  procedure WriteToReg(Programm:string;OpenK:String;Value:String); stdcall;
  function ReadFromReg(Programm:string;Value:String):String; stdcall;
{$ENDIF}
 
var
  Form1: TForm1;
 
implementation
 
{$IFNDEF work}
  procedure WriteToReg; external 'work.dll';
  function ReadFromReg; external 'work.dll';
{$ENDIF}
 
{$R *.dfm}
 
 
 
procedure TForm1.FormCreate(Sender: TObject);
begin
 
  WriteToReg('11','1','Жопа'); <- всен норм...тоесть пишет то что задано и туда куда задано
  ReadFromReg('11','1'); <-invalid pointer operation
end;
 
нифига не пойму..де ошибка?

Всего записей: 1298 | Зарегистр. 13-02-2006 | Отправлено: 13:08 18-09-2007
skinash



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mdid
var
  S: string;
 
...
 
  S := ReadFromReg('11','1');
 

Всего записей: 145 | Зарегистр. 21-09-2006 | Отправлено: 13:28 18-09-2007
mdid

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
там в основной программе есть Edit1: TEdit;  
Edit1.text:=ReadFromReg('11','1');  - error
то я просто химичил и забыл дописать...
skinash
не катит
 
кста...еси переношу эту функц в основную прогу - работает...видимо чет с dll на я не пойму че

Всего записей: 1298 | Зарегистр. 13-02-2006 | Отправлено: 13:33 18-09-2007 | Исправлено: mdid, 13:40 18-09-2007
A_V

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

Цитата:
 
  procedure WriteToReg; external 'work.dll';  
  function ReadFromReg; external 'work.dll';  
 

 
у тебя же ф-ия в dll в виде stdcall а в обявлении при импорте ничего об этом не сказано.
т.е по идее должно быть
 
function ReadFromReg(Programm:string;Value:String):String; stdcall; external 'work.dll';

Всего записей: 770 | Зарегистр. 07-04-2002 | Отправлено: 13:39 18-09-2007
skinash



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mdid
Попробуй вместо srting WideString в DLL
или в uses первым модулем ShareMem, но тогда с программой надо таскать BORLNDMM.DLL.

Всего записей: 145 | Зарегистр. 21-09-2006 | Отправлено: 13:41 18-09-2007
mdid

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
A_V
этот вариант я тож писал
закоментил все и оставил
  procedure WriteToReg(Programm:string;OpenK:String;Value:String); stdcall; external 'work.dll';
  function ReadFromReg(Programm:string;Value:String):String; stdcall; external 'work.dll';
 
просто как ни крути тогда бы и 1 функция не работала...и если так глянуть то там еще куча фуекций...я просто обрезал для форума
skinash
c widestring помогло...thx
 
 

Всего записей: 1298 | Зарегистр. 13-02-2006 | Отправлено: 13:42 18-09-2007 | Исправлено: mdid, 13:50 18-09-2007
Botanik_IV



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Приветствую всех, хотелось бы посоветоваться может кто нить сталкивался, ya&google не помогли...  
Я сейчас дописываю одну прогу трабла была сначала в установке исходников, не завязывалась база firebird с делфи, базу приконнектил через localhost:c:\...\x.fdb, после редактирования, прога на моем компе работает нормально без каких либо ошибок, но на др. компах выдает окно: "Unable to complete network request to host "localhost". Failed to establish a connection. Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение"... пробовал на серваке и на еще одном компе в сетке, в чем трабла понять не могу, по google&yandex и прочим в основном пишут что в основном из-за того что нет TCP/IP, localhost не пингуется, не работают сетевые службы...  с этим проблем нет все проверял все работает и пингуется, подключение через IBExpert выдает ту же ошибку...
 
Может кто нибудь что нибудь подскажет...
P.S.  К телепатам не отправлять , если нужны какие либо подробности спрашивайте, отвечу...  

Всего записей: 52 | Зарегистр. 04-08-2004 | Отправлено: 16:45 18-09-2007
mdid

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

Всего записей: 1298 | Зарегистр. 13-02-2006 | Отправлено: 17:06 18-09-2007 | Исправлено: mdid, 17:08 18-09-2007
Botanik_IV



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
mdid
Все на одном компе, просто переношу на др. комп, я может че та не понимаю, но прописанный путь не знаю как влияет(мне кажется только для делфи чтоб нормально приконнектится), у меня на компе стоит 6 копий проги с 6-ю разными базами, все работает...
 

Цитата:
И я бы те советовал жестко не привязывать путь к базе в программе
 

 
А как попроще тогда сделать?

Всего записей: 52 | Зарегистр. 04-08-2004 | Отправлено: 17:12 18-09-2007 | Исправлено: Botanik_IV, 17:13 18-09-2007
mdid

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
не знаю как правильно но я всегда путь к базе собираю при запуске программы....при этом умирает такая проблема как переносимость...
 - генерация пути при запуске
 - банальный выбор бызы из OpenDialog
хз...но обычно я делаю так
 
ПС
движок interbase?
ПСС
и на твоем компе оно всегда бу работать...ибо ты на нем ставишь дрова(интербейса или другие) и регишь базу...и это все вручную

Всего записей: 1298 | Зарегистр. 13-02-2006 | Отправлено: 17:24 18-09-2007 | Исправлено: mdid, 17:33 18-09-2007
Gerasoft

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Botanik_IV
А база тоже переносится вместе с программой? Или она одна для всех?

Всего записей: 15 | Зарегистр. 15-05-2007 | Отправлено: 17:37 18-09-2007
OXDBA

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Botanik_IV
Порт 3050 открыт?
 
Добавлено:

Цитата:
хз...но обычно я делаю так

А что мешает использовать alias? Конечно если FB от полуторки и выше.

Всего записей: 426 | Зарегистр. 19-01-2005 | Отправлено: 17:57 18-09-2007
   

Страницы: 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

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (все версии) - часть 3
ShIvADeSt (07-04-2008 02:27): продолжение в http://forum.ru-board.com/topic.cgi?forum=33&topic=9383


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru