Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Вопросы по Delphi 2

Автор: xy
Дата сообщения: 02.03.2007 14:17
murkovich
меня интересует, чтобы я с помощью конкретной среды (обновляя только среду) смог компилировать продукты для всех актуальных версий виндовса
и меня совершенно не интересует как оно там устроено, как взаимодействует с ОС и т.д. :)

на данный момент дельфи для вин32 - помоему оптимум ;)
Автор: yanus69
Дата сообщения: 02.03.2007 14:20
Подскажите пожалуйста как в dll засунуть форму а потом показать оттуда при этом чтобы вызов формы выполнялся из такой экспортируемой функции function x(ParentWnd:DWORD; CmdOw:LPWSTR; SCU:DWORD):DWORD; THX.
Автор: murkovich
Дата сообщения: 02.03.2007 16:01
xy

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

Да, да, понимаю. Только дело в том, что для мира западного бизнеса виндоус 98 уже не является актуальной версией.

Но вряд ли будет уместным затевать спор из-за этого
Автор: xy
Дата сообщения: 02.03.2007 16:05
murkovich

Цитата:
Только дело в том, что для мира западного бизнеса виндоус 98 уже не является актуальной версией.

мне действительно наплевать на мир западного бизнеса, честно ;)
Автор: killerbeanjeka
Дата сообщения: 03.03.2007 10:43
yanus69
Запихнуть форму в DLL можно так:

[more]
library Formdll;

uses

SysUtils,
Forms,
Formdllu in 'FORMDLLU.PAS' {Form1};

function CreateTheForm: Pointer; export;
begin

Result := TForm1.Create(nil);
end;

procedure LoadTheForm(P: Pointer; S1, S2, S3: PChar); export;
begin

with TForm1(P) do
begin
Edit1.Text := StrPas(S1);
Edit2.Text := StrPas(S2);
Edit3.Text := StrPas(S3);
end;
end;

function ShowTheForm(P: Pointer): Boolean; export;
const
mrOK = 1;
begin

Result := TForm1(P).ShowModal = mrOK;
end;

procedure ReadTheForm(P: Pointer; S1, S2, S3: PChar); export;
begin

with TForm1(P) do
begin
StrPCopy(S1, Edit1.Text);
StrPCopy(S2, Edit2.Text);
StrPCopy(S3, Edit3.Text);
end;
end;

procedure DestroyTheForm(P: Pointer); export;
begin

TForm1(P).Free;
end;

exports

CreateTheForm INDEX 1,
LoadTheForm INDEX 2,
ReadTheForm INDEX 3,
ShowTheForm INDEX 4,
DestroyTheForm INDEX 5;

begin
end.

[/more]

а этот код уже не сложно будет привести к нужному тебе виду
Автор: dmit000
Дата сообщения: 03.03.2007 20:52
xy
//Unit - логическая единица, ей надо управлять
для удобства в делфи методы можно сворачивать/рпазворачивать//

Сворачивать/разворачивать - это как это. я не понял
Автор: xy
Дата сообщения: 03.03.2007 21:08
dmit000
в бдс2006 можно свернуть метод/процедуру/.. как папку в проводнике - там плюсик такй сбоку есть ;)
Автор: George_Lucky
Дата сообщения: 06.03.2007 06:33
Вопрос такой, какую надо задать маску, чтобы при вводе текста первый символ переводился в верхний регистр?
Автор: RomanTim
Дата сообщения: 06.03.2007 07:26
George_Lucky
Ты про TMaskEdit? А разве маска позволяет автозамену? В справке написано Use EditMask to restrict the characters a user can enter into the masked edit control to valid characters and formats. If the user attempts to enter an invalid character, the edit control does not accept the character., то есть она просто отсеивает ввод, непопадающий под маску.
Можно в OnChange сделать так [more]
procedure TForm1.MaskEdit1Change(Sender: TObject);
var
s: string;
ss: Integer;
sl: Integer;
begin
// AutoChange - переменная формы, чтобы не зацикливалось
if not AutoChange and (Length(MaskEdit1.Text) > 0) then begin
AutoChange := True;
ss := MaskEdit1.SelStart;
sl := MaskEdit1.SelLength;
s := MaskEdit1.Text;
s[1] := AnsiUpperCase(s[1])[1];
MaskEdit1.Text := s;
MaskEdit1.SelStart := ss;
MaskEdit1.SelLength := sl;
AutoChange := False;
end;
end;[/more]
Автор: RostY
Дата сообщения: 06.03.2007 09:55
Подскажите что делать в такой ситуации: в программе создаю форму

if Form1=nil then Form1:=TForm1.Create(Self);
Form1.Show;

при закрытии формы делаю

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;

а когда следующий раз проверяю if Form1=nil , то она совсем не nil и не креатится, но т.к. ее нет созданной, то при Form1.Show; естественно получаю AV. Как сделать, чтоб при ее уничтожении она становилась nil ?
Автор: vshersh
Дата сообщения: 06.03.2007 10:07
RostY
сделай

Код:
procedure TForm1.FormDestroy(Sender: TObject);
begin
Form1 := nil;
end;
Автор: PALMIK2005
Дата сообщения: 12.03.2007 05:56
TMS Components Pack 4.2
варез
Автор: Arvur
Дата сообщения: 12.03.2007 06:23
PALMIK2005
Ай-ай-ай! Потри нафиг, здесь не Варезник
Автор: George_Lucky
Дата сообщения: 12.03.2007 09:45
RomanTim
спасибо за подсказку
Автор: OOD
Дата сообщения: 12.03.2007 19:15
люди подскажите , или натолкните в нужное русло как измерять обороты кулера процессора , или получить эту информацию с Delphi ...
может быть она где-то в чем-то храниться?
Программа Everest Home узнает эти данные каким-то образом , но каким?
Хотелось бы визуально отобразить обороты кулера с приложения написанного на Delphi
Автор: andead
Дата сообщения: 12.03.2007 19:39
как используя TXMLDocument и MSXML добраться до нода с определённым id? если писать XMLDocument1.DOMDocument.getElementById('...')... то вылазит ошибка:

Цитата:
Property or Method "getElementById" is not supported by DOM Vendor "MSXML"

Автор: dmit000
Дата сообщения: 13.03.2007 06:22
Вопрос не по теме топика.
Все компаненты которые я скачал и установил в дельфи почемуто забрасываются на свои панели (видимо по желанию разработчика компанента).
Захотелось сгрупировать сторонние компаненты на одной панели, но не смог найти средство перемещения кнопок компанентов на другие панели (создал свою панель и перемести на неё кнопки компанентов)

Как в самой среде дельфи переместить кнопки между панелями?
Автор: RomanTim
Дата сообщения: 13.03.2007 08:00
dmit000
В десятке можно перетаскивать мышкой, в семерке не пробовал, но в качестве варианта, хотя и очень неудобного, можно пробежаться по исходникам (если они есть) и в функции RegisterComponents первый параметр поменять на твою панель.
Хотя какое-то это сомнительное удобство... в одном только TMSPacke такая куча всего, что если это сложить в одном месте в жизни не найдешь нужного.

OOD
Отобразить - положи на форму TLabel и в его Caption записывать, а вот как получать, через какой драйвер, в каком виде и т.п. - здесь делфи уже ни при чем - наверняка есть специальные форумы.
Автор: greenpc
Дата сообщения: 13.03.2007 08:12
andead

Цитата:
добраться до нода с определённым id

пример XML в студию
может FindNode, но это пока догадки
Автор: dmit000
Дата сообщения: 13.03.2007 08:18
RomanTim
Спасибо за ответ. У меня установлен 6 Дельфи.

Вчера скачал с этой страници TMS Components Pack 4.2. Подключить не удалось.
На многих процедурах компилятор выдал ошибку.

Вероятно делаю что то не то.

Как его правильно подключить выложенный пакет TMS Components Pack 4.2 в 6-м дельфи?
Автор: nEJIbMEHb3
Дата сообщения: 13.03.2007 08:43
dmit000
Component->Configure Palette Драг-и-дроп откуда хочешь куда хочешь.

Добавлено:

Цитата:
Подскажите что делать в такой ситуации: в программе создаю форму

if Form1=nil then Form1:=TForm1.Create(Self);
Form1.Show;

при закрытии формы делаю

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;

а когда следующий раз проверяю if Form1=nil , то она совсем не nil и не креатится, но т.к. ее нет созданной, то при Form1.Show; естественно получа


1. if Form1=nil... Рекомендуется использовать Assigned(Form1)
2. Чявой-то мне не нравится в этом коде. Form1 случайно не Autocreate? Закинь полный текст юнита.
Автор: RostY
Дата сообщения: 13.03.2007 09:08
nEJIbMEHb3
Form1 не Autocreate. Полный текст дать затруднительно, т.к. это часть большого проекта.
Assigned(Form1) возвращало True;
помогло Form1:=nil при formDestroy.
Автор: altaph
Дата сообщения: 13.03.2007 09:18
OOD

посмотри здесь
http://delphikingdom.com/asp/viewitem.asp?catalogid=698#054
Автор: dmit000
Дата сообщения: 13.03.2007 09:56
nEJIbMEHb3

Спасибо. Проверил - работает. Чудеса. Тыкаться вчера лучше нужно было.

А что это за 10 версия. там же вроде после 9, дельфи студио началось?
Автор: xy
Дата сообщения: 13.03.2007 10:09
dmit000

Цитата:
А что это за 10 версия. там же вроде после 9, дельфи студио началось?

оно и есть 10 = бдс2006;)
кстати 9 тоже была бдс, только 2005 (;

да и 11-ая уже вышла (угадайте с 1 раза как называется ;)
Автор: nEJIbMEHb3
Дата сообщения: 13.03.2007 10:21
Жадность погубит Борланд. $1200 за что? AJAX и glassing. Как можно так гадить на родных девелоперов. Уйду к микрософту. VS копейки стоит.
Автор: dmit000
Дата сообщения: 13.03.2007 11:29
А что у них совсем большой прорыв по функционалу получился при переходе с дельфи на БДС?
Автор: RomanTim
Дата сообщения: 13.03.2007 13:11
dmit000
В десятке в одном комплекте идет Delphi и Builder, базирующиеся на одном VCL. А вообще можешь назад полистать тему - тут уже обсуждалась полезность перехода, ну и официальное WhatsNew можно почитать

nEJIbMEHb3
Assigned делает ту же проверку на nil. Вот когда он действительно полезен - так это при проверке присвоенности процедурного указателя. А автокрит форма или нет - никаким боком на возможность ее убить и обнулить указатель не влияет - если конечно остальная программа нормально написана и проверяет жива ли она
Автор: OOD
Дата сообщения: 13.03.2007 13:40
altaph

Цитата:
посмотри здесь
http://delphikingdom.com/asp/viewitem.asp?catalogid=698#054


заманчиво но почему-то не работает в Win XP Pro Sp2 возможно только для 2к?
у кого-нибуть есть возможность протестировать данный исходник:
http://www.delphikingdom.com/zip/wmi.zip

Автор: altaph
Дата сообщения: 13.03.2007 14:26
OOD
хм... в свое время читал по диагонали
а сейчас запустил на w2ksp4, xpsp1 и получил нет в ответ

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Событие STFilter(DBGridEh) ???


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.