Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.13;
Скачать: CL | DM;

Вниз

робота с диалогами   Найти похожие ветки 

 
Igit ©   (2003-09-06 13:29) [0]

Не могу прочесть из диалога, делаю так:
var tmp:string;
begin
SetDlgItemText(Win, 100, @tmp );


какой есть хороший редактор диалогов, а то в блокноте запирился подгонять высоту, ширину... ?

как создать memo?
Спасибо.


 
Suntechnic ©   (2003-09-07 05:54) [1]

какой есть хороший редактор диалогов, а то в блокноте запирился подгонять высоту, ширину... ?

В Visual C++ есть прекрасный редактор ресурсов.

как создать memo?

Memo это то же edit, только созданный со стилем ES_MULTILINE.


 
Songoku ©   (2003-09-07 18:36) [2]

Ты делаешь совершенно не правельно!!!
Ты в думайся что ты пишшь!!!
Set - озночает устоновить
Get - озночает взять
Правильно это делается вот так:
var tmp:Array [0..256] of char;
begin
GetDlgItemText(Win, 100, tmp,256 );

Ещё лутше всего если ты будешь выделять память тоесть.
если я не ошибюсь так как проверить не магу
var
size:DWORD;
tmp:Pchar;
begin
//Ты вызываешь
size:=GetDlgItemText(Win, 100, nil,0); //что бы узнать длинну строки
//потом
tmp:=VirtualAlloc(0,size+1,MEM_COMMIT,PAGE_READWRITE); // Выделяешь память для текста.
GetDlgItemText(Win, 100, tmp,size); // Берём текст

.....
// Тра ля ля .. что нибудь с текстом происходит
.....

// И самое главное отчистить память что бы её не засорять!!!
VirtualFree(tmp,size+1,MEM_DECOMMIT);


 
Morfein   (2003-09-08 17:57) [3]

VirtualAlloc для такой задачи не есть хорошо.. он создаёт фрагментацию памяти из-за выравнивания на 64К. границу.. Так что лучше фиксированый буфер в стеке использовать.. Тем более что автор же должен знать, что пишут в поле и какой макс. длинны это будет.


 
Igit ©   (2003-09-11 18:03) [4]

Спасибо. Я сделал так:
Function GetDlgText(hDlg: HWND; nIDDlgItem: Integer) : string;
var
p : PChar;
length : integer;
begin
length := SendDlgItemMessage(hDlg, nIDDlgItem, wm_gettextlength, 0, 0);
if length <> 0 then begin
GetMem(p, length+1);
SendDlgItemMessage(hDlg, nIDDlgItem, wm_gettext, length+1, Integer(p));
Result:=p;
FreeMem(p, length+1);
end;
end;

Procedure AddDlgString(hDlg: HWND; nIDDlgItem: Integer; s:string);
begin
SetDlgItemText(hDlg, nIDDlgItem, PChar(GetDlgText(win,100)+#10#13+s));
end;



Страницы: 1 вся ветка

Текущий архив: 2003.11.13;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.031 c
14-41905
Dmitriy O.
2003-10-15 16:24
2003.11.13
Конвертация форматов


1-41480
Checist [root]
2003-10-28 14:58
2003.11.13
Загрузка страниц из кеша


3-40896
dk
2003-10-25 11:16
2003.11.13
Есть ли альтернатива lookup полям?


3-41097
MPS
2003-10-23 10:58
2003.11.13
Error: Fields XX not found


8-41768
Карелин Артем
2003-07-07 11:16
2003.11.13
Определение геометрических размеров пятна на рисунке.