Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.02 c
3-40831
Deedlit
2003-10-22 07:12
2003.11.13
TOleException при работе с БД MS Access


4-42314
Алексей Петухов
2003-09-05 12:10
2003.11.13
Прозрачные окошки


7-42167
short
2003-08-28 21:44
2003.11.13
Sound card (in-out)


1-41379
BillyJeans
2003-11-04 11:06
2003.11.13
Помогите с числами...


3-41063
Юлия
2003-10-23 16:03
2003.11.13
Связь между таблицами




   Наверх