IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Вопросы по WinApi...
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 72
Пол: Мужской

Репутация: -  0  +


"Вопросы по WinApi..."

Ковыряюсь во всяких справочниках... чего то ни фига не получается...
Если кто может подскажите, как сделать или где поглядеть пример...

1. CreateWindow ( 'STATIC', text', WS_CHILD or WS_VISIBLE, 30, 8, 500, 80, handleWnd, 0, hInstance, nil );
* как задать ему цвет
* сделать вертикальный скролл
* изменить шрифт (размер, цвет и сам шрифт)

2. Загрузить и показать рисунок (bmp и jpg)...

3. Изменить цвет border color...

4. обработка нажатия кнопки...

лучше всего пример... blush.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






У меня вот так прекрасно отработало:

// Внимание на типы!!! ResType я сделал Integer-ом!!!
procedure ExtractToFile(Instance:THandle;
ResID, ResType: integer; FileName:String);
var
ResStream: TResourceStream;
FileStream: TFileStream;
begin
try
ResStream := TResourceStream.CreateFromID(Instance, ResID, PChar(ResType));
try
if FileExists(FileName) then DeleteFile(pChar(FileName));
FileStream := TFileStream.Create(FileName, fmCreate);
try
FileStream.CopyFrom(ResStream, 0);
finally
FileStream.Free;
end;

finally
ResStream.Free;
end;

except on E:Exception do begin
DeleteFile(FileName); raise;
end;
end;
end;

...

// вместо Application.Handle лучше использовать HInstance...
ExtractToFile(HInstance, 1, 10, ExtractFiledir(paramStr(0))+'\pic_new.bmp');

(к вопросу, почему именно целочисленная 10, а не 'CUSTOM': При преобразовании этой 10 к типу PChar в процедуре получим как раз PChar(10), что соответствует RT_RCDATA... Как записывали в ресурс, так надо и извлекать...)

Сообщение отредактировано: volvo -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 72
Пол: Мужской

Репутация: -  0  +


Цитата(volvo @ 16.05.2008 21:28) *

У меня вот так прекрасно отработало...


Спасибо, заработало... вроде :-)

И ещё вопросик :-[

function ChangeDirectory(): pchar;
var
TitleName : string;
lpItemID : PItemIDList;
BrowseInfo : TBrowseInfo;
DisplayName : array[0..MAX_PATH] of char;
begin
FillChar(BrowseInfo, sizeof(TBrowseInfo), #0);
BrowseInfo.hwndOwner := handleW1;
BrowseInfo.pszDisplayName := @DisplayName;
TitleName := 'Please specify a directory';
BrowseInfo.lpszTitle := PChar(TitleName);
BrowseInfo.ulFlags := BIF_RETURNONLYFSDIRS;
lpItemID := SHBrowseForFolder(BrowseInfo);
if lpItemId <> nil then begin
SHGetPathFromIDList(lpItemID, result);
GlobalFreePtr(lpItemID);
end;
end;

.....

sc1:=ChangeDirectory;



Вот, вызываю функцию... выбор папки... Если длинна выбранного пути > 38 (~),
то появляется ошибка...
что посоветуете? :-)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Snake_B   Вопросы по WinApi...   6.05.2008 4:31
andriano   Если ты указал один из стандартных классов, то цве…   6.05.2008 10:47
Snake_B   А можно всё таки как-нибудь на примере? Теоретиче…   6.05.2008 14:16
volvo   Идея не самая удачная - учиться на том, что в прин…   6.05.2008 17:03
Snake_B   Идея не самая удачная - учиться на том, что в при…   6.05.2008 19:15
volvo   Легко... Но давай начнем с того, что тебе надо под…   6.05.2008 20:12
Snake_B   Легко... Но давай начнем с того, что тебе надо по…   7.05.2008 21:14
volvo   1. Можно: // Создаем прогрессбар myProgress :…   7.05.2008 22:08
Snake_B   Можно: // Создаем прогрессбар myProgress := C…   8.05.2008 2:46
volvo   Хочешь - вот проект полностью - у меня все работа…   8.05.2008 3:17
Snake_B   Хочешь - вот проект полностью - у меня все работа…   8.05.2008 4:05
volvo   Что значит "Ничего"? Программа запустила…   8.05.2008 4:22
Snake_B   Что значит "Ничего"? Программа запустил…   8.05.2008 4:31
andriano   А ты уверен что тебе нужно их именно уничтожать? С…   8.05.2008 10:10
Snake_B   А ты уверен что тебе нужно их именно уничтожать? …   8.05.2008 12:52
volvo   Хочешь, я присоединю исходник, проверишь его, боль…   8.05.2008 14:08
Snake_B   Хочешь, я присоединю исходник, проверишь его, бол…   8.05.2008 18:47
andriano   А по прогресс бару... ну и ладно... без него сдел…   8.05.2008 22:32
Snake_B   Вообще-то все, что нужно, можно сделать ручками. …   12.05.2008 2:55
volvo   var ListB1: HWND; i, len: integer; buffer:…   12.05.2008 3:11
Snake_B   Вот EXE-шник: (только там теперь по нажатию на к…   12.05.2008 4:48
volvo   :blink: Естественно... Окно получает сообщение WM…   12.05.2008 12:54
Snake_B   :blink: Естественно... Окно получает сообщение WM…   12.05.2008 15:31
volvo   У меня вот так прекрасно отработало: // Внимание …   16.05.2008 16:28
Snake_B   У меня вот так прекрасно отработало... Спасибо,…   17.05.2008 1:57
volvo   Вообще-то когда работаешь с PChar, надо быть остор…   17.05.2008 2:41
Snake_B   Новый вопросик... и мне кажется он где-то близко к…   24.05.2008 14:53
Snake_B   Новый вопросик... и мне кажется он где-то близко …   25.07.2008 7:12


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.03.2024 20:24
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name