Главная страница
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.48 MB
Время: 0.03 c
6-41869
SiONYX
2003-09-09 02:30
2003.11.13
Как зная IP адрес узнать имя компьютера?


6-41818
Olfi
2003-09-15 12:34
2003.11.13
Как узнать СМТП сервер?


1-41193
sagchat
2003-11-02 12:37
2003.11.13
не роботает под XP


1-41445
han-bratan
2003-11-04 11:00
2003.11.13
Транскрипция


1-41646
Opus
2003-10-24 07:25
2003.11.13
Delphi и ASM