Главная страница
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.024 c
1-41518
tolstiak
2003-10-27 16:17
2003.11.13
Чем в данном случае лучше воспользоваться


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


4-42306
Mr.Ice
2003-09-08 21:21
2003.11.13
Помогите


1-41150
LORDIK
2003-11-03 12:07
2003.11.13
Кнопка рядом с ...


4-42255
w666w
2003-09-15 15:02
2003.11.13
Drag & Drop - без WinAPI никуда...