Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.08.26;
Скачать: [xml.tar.bz2];

Вниз

Application.title   Найти похожие ветки 

 
Dib@zol ©   (2007-08-03 09:45) [0]

В ВЦЛ присутствует такая харошая фича, к-рую на апи мне пока реализовать не удалось...
А именно: текст который присутствует на кнопке проги в таскбаре, может отличаться от заголовка окна. Как это реализовано.
ЗЫ пробовал смотреть Application.SetTitle, но тока ещё больше запутался :)
Это конечно можно сделать и так: добавить невидимое окно - родитель, а уж все видимые будут его потомками. Но хотелось бы менее зверских способов... Есть такие?


 
clickmaker ©   (2007-08-03 09:50) [1]

Application.Handle - главное скрытое окно - таскбар
MainForm.Handle - главная форма <> главному окну


 
Dib@zol ©   (2007-08-03 09:51) [2]

Мдя... Ну так я вощем то и думал :(


 
Инс ©   (2007-08-03 10:13) [3]


> Dib@zol ©   (03.08.07 09:45)


Мне кто-нибудь когда-нибудь объяснит зачем писать в Delphi на чистом API? Может это действительно так важно и я сейчас брошусь переделывать все свои проекты! :)


 
Riply ©   (2007-08-03 10:20) [4]

>[3] Инс ©   (03.08.07 10:13)
>Мне кто-нибудь когда-нибудь объяснит зачем писать в Delphi на чистом API?
Когда "акромя Делфя" ничего не знаешь :)
P.S.
как я, например :(


 
Dib@zol ©   (2007-08-03 10:29) [5]

> Мне кто-нибудь когда-нибудь объяснит зачем писать в Delphi
> на чистом API?

Размеры прог сравни. И удивись!!! ;)


 
Riply ©   (2007-08-03 10:32) [6]

> [5] Dib@zol ©   (03.08.07 10:29)
>Размеры прог сравни. И удивись!!! ;)
Размеры никого не удивят. Вопрос, если я правильно поняла, был в другом:
зачем писать именно на Delphi ?


 
DVM ©   (2007-08-03 10:35) [7]


> Инс ©   (03.08.07 10:13) [3]


> Мне кто-нибудь когда-нибудь объяснит зачем писать в Delphi
> на чистом API?

1) В основном ради самообразования хотя бы. WinAPI он был и будет. А всякие там VCL, MFC и прочие надстройки над ним приходят и уходят.

2) Меньший размер исполняемого файла программы. Хотя это не очень актуально сейчас, но все же. Правда в памяти программа такая занимает не меньше а зачастую и больше места, чем программа на VCL.

3) Более высокая скорость работы. Тоже не очень существенно в большинстве случаев.

4) Не все далеко можно сделать средствами VCL. Иногда VCL как корове седло - мешает только.


 
Dib@zol ©   (2007-08-03 10:35) [8]

> зачем писать именно на Delphi ?

А почему бы и нет? Раз поддерживает - фигли не пользоваться?
А вообще дельфи (если быть точным, Паскаль) - это один из самых логично построенных (и что главное самых читабельных!) языков программирования. Вот кто мне ответит, ЧТО будет делать вот эта мура? (С++)
for(;P("\n").R-;P("\ "))for(e=3DC;e-;P("_ "+(*u++/8)%2))P("| "+ (*u/4)%2);


 
DVM ©   (2007-08-03 10:38) [9]


> Вот кто мне ответит, ЧТО будет делать вот эта мура? (С++)
> for(;P("\n").R-;P("\ "))for(e=3DC;e-;P("_ "+(*u++/8)%2))P("|
> "+ (*u/4)%2);

Супер!


 
Ping   (2007-08-03 10:38) [10]

Размеры прог сравни. И удивись!!! ;)

Купил три винчестера по 320 ГБ. На один из них поставил ОС. Плюс - программы разные. Сижу, думаю чем бы оставшиеся 312 ГБ занять. И еще по 320 ГБ на двух других винтах. Удивляюсь...


 
clickmaker ©   (2007-08-03 10:40) [11]


> Сижу, думаю чем бы оставшиеся 312 ГБ занять

поставь висту, полное собрание сочинений MSDN, Delphi 2007...


 
Игорь Шевченко ©   (2007-08-03 10:41) [12]

На API писать незачем. На API пишут в двух случаях - когда детство играет и когда программа не имеет интерфейса пользователя.


 
Dib@zol ©   (2007-08-03 10:44) [13]

> [12] Игорь Шевченко ©   (03.08.07 10:41)

Вот уж от кого не ожидал...


 
Игорь Шевченко ©   (2007-08-03 10:45) [14]

Dib@zol ©   (03.08.07 10:44) [13]

Ты пишешь по первой причине


 
DVM ©   (2007-08-03 10:47) [15]


> На API писать незачем. На API пишут в двух случаях - когда
> детство играет и когда программа не имеет интерфейса пользователя.
>

Еще когда по-каким либо причинам надо создать код, способный компилироваться не только в продуктах от борланда, но и в других компиляторах - FreePascal например. Тащить во FreePascal VCL нельзя - нарушается лицензия.

Еще вполне может быть использована отличная от VCL надстройка над API.


 
Игорь Шевченко ©   (2007-08-03 10:51) [16]

DVM ©   (03.08.07 10:47) [15]

Отчасти.


 
Плохиш ©   (2007-08-03 11:15) [17]


> Мне кто-нибудь когда-нибудь объяснит зачем писать в Delphi
> на чистом API?

Религия

> Размеры прог сравни. И удивись!

И чего там удивляться? Сравни затраты на разработку и удивись ещё больше..
Я ж говорю - религия.


 
SpellCaster   (2007-08-03 11:30) [18]

> Мне кто-нибудь когда-нибудь объяснит зачем писать в Delphi
> на чистом API?

А для чего изучают HTML, если есть конструктор сайтов на народе? Тоже мне, блажь какая.


 
Плохиш ©   (2007-08-03 11:32) [19]


> А для чего изучают HTML, если есть конструктор сайтов на
> народе?

А кто-такой этот "народ", на котором есть конструктор сайтов?


 
DVM ©   (2007-08-03 11:34) [20]


> А кто-такой этот "народ", на котором есть конструктор сайтов?

www.narod.ru


 
\/iKTOR   (2007-08-03 12:21) [21]

Ну втавлю свое скромное ИМХО :)
Есть много людей не представляющих как вообще работают программы, Что такое HTML, MySQL, PHP и прочее, это им не мешает жить и радоваться жизни.
Другое дело, что вам что то интересно и вы хотите понять как это работает, а не просто тупо пользоваться готовым, кому просто нужен сайт не вникая в подробности его работы достаточно установить CMS и пользоваться.
Та же ситуация и тут, может оно большинству и не нужно, но ведь интересно знать как это работает, не так ли? А оправданно ли использование API или достаочно функций VCL  автор сам может решить.


 
iXT ©   (2007-08-03 13:24) [22]

> [12] Игорь Шевченко ©   (03.08.07 10:41)

+1


 
SpellCaster   (2007-08-03 13:33) [23]

> [21] \/iKTOR   (03.08.07 12:21)


> А оправданно ли использование API или достаочно функций
> VCL  автор сам может решить

То-то и оно. А вместо того, чтобы ответить на нормальный вопрос, все сразу накидываются на автора и начинают хором его лечить типа "На кой хрен тебе это надо".


 
Yanis ©   (2007-08-03 14:01) [24]


> То-то и оно.

Вообще никто никого лечить не собирался поначалу.
Просто пробегающий спросил «зачем?».


 
Anatoly Podgoretsky ©   (2007-08-03 14:25) [25]


>  вместо того, чтобы ответить на нормальный вопрос, все сразу
> накидываются на автора и начинают хором его лечить типа
> "На кой хрен тебе это надо".

А чтобы знать стоит отвечать или нет.


 
Царев Евгений ©   (2007-08-03 19:19) [26]



program PROJECT_NAME;

uses
 Windows,
 Messages;

{$R *.res}

var
 MainWindowHandle: HWND;
 Msg: TMsg;
 Instance : Longint;

const
 WinClassName = "_MAIN_WINDOW_CLASS_";
 ProjectName  = "MAIN PROJECT" ;

procedure SetCaption(Caption: String);

   function IntToStr(Num : Integer) : String;
   begin
    Str(Num, result);
   end;
begin
Randomize;
SetWindowText(MainWindowHandle,PChar (Caption + IntToStr(Random(5))) );
end;

function WindowProc(HWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
begin
 Result:= 0;

 case Msg of
   WM_APP: ; // не забудь
   WM_DESTROY:
     begin
       PostQuitMessage(0);
       Result := 0;
     end;
   WM_COMMAND:
     begin
      //
     end;
   WM_PAINT:     // Title у формы будет меняться, но название в таскбаре останется "MAIN PROJECT"
     begin
   SetCaption("New Name ");
     end;
   WM_ERASEBKGND:
     begin
       PaintDesktop(HDC(wParam));
     end;

   else
     Result := DefWindowProc(HWnd, Msg, WParam, LParam);
 end;

end;

procedure ProcessMessages;
begin

 while GetMessage(Msg, 0, 0, 0) do
 begin
   TranslateMessage(Msg);
   DispatchMessage(Msg);
 end;
end;

procedure WinMain;
var
WindowClass: TWndClassEx;
begin
 Instance:= GetModuleHandle(nil);

 FillChar(WindowClass,SizeOf(TWndClassEx),0);
 WindowClass.cbSize:= SizeOf(TWndClassEx);
 WindowClass.lpfnWndProc:= @WindowProc;
 WindowClass.hInstance := Instance;
 WindowClass.lpszMenuName:= nil;
 WindowClass.lpszClassName:= WinClassName;
 WindowClass.hIcon := LoadIcon(Instance,PChar("MAINICON"));
 WindowClass.hCursor:= LoadCursor(0,IDC_ARROW);
 WindowClass.hbrBackground:= COLOR_BTNFACE + 1;

  if RegisterClassEx(WindowClass) = 0 then
  if RegisterClass(PWNDCLASS(@WindowClass.style)^) = 0 then Halt(255);

  MainWindowHandle:= CreateWindowEx(0,
                                    WinClassName,
                                    ProjectName,
                                    WS_OVERLAPPEDWINDOW,
                                    Integer(CW_USEDEFAULT),
                                    Integer(CW_USEDEFAULT),
                                    Integer(CW_USEDEFAULT),
                                    Integer(CW_USEDEFAULT),
                                    0,
                                    0,
                                    Instance,
                                    nil);
  ShowWindow(MainWindowHandle, SW_SHOWNORMAL);
  ProcessMessages;
  DestroyWindow(MainWindowHandle);
end;

begin
WinMain;
end.


 
Zagaevskiy ©   (2007-08-03 19:40) [27]


> for(;P("\n").R-;P("\ "))for(e=3DC;e-;P("_ "+(*u++/8)%2))P("|
> "+ (*u/4)%2);

Плагиат!! Это я писал , где-то месяца 1.5 - 2.5 назад.В контексте ветки "Кто что думает"


 
Dib@zol ©   (2007-08-03 19:42) [28]

> Плагиат!! Это я писал , где-то месяца 1.5 - 2.5 назад.В
> контексте ветки "Кто что думает"

А я на копирайт и не претендую... Отныне и во веки - © Zagaevskiy.
Извиняюсь...


 
Царев Евгений ©   (2007-08-03 19:47) [29]

Sorry неудачный пример :(


 
Zagaevskiy ©   (2007-08-03 19:52) [30]


> Извиняюсь...

Прощаю...:)
Марш  в угол, на горох коленями! :)


 
Zagaevskiy ©   (2007-08-03 19:53) [31]


> Sorry неудачный пример :(

В чём неудачность - то?


 
Царев Евгений ©   (2007-08-03 20:00) [32]


> В чём неудачность - то?


Максимизация/Минимизация рушит


 
Zagaevskiy ©   (2007-08-03 20:07) [33]


> рушит

в каком сысле?


 
Царев Евгений ©   (2007-08-03 20:11) [34]


> в каком сысле?

в таскбаре меняется название на заголовок формы


 
Zagaevskiy ©   (2007-08-03 20:21) [35]


> в таскбаре меняется название на заголовок формы

Это плохо! не доработки выясняются после здачи пройэкта...



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

Форум: "Начинающим";
Текущий архив: 2007.08.26;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.54 MB
Время: 0.043 c
15-1185869482
mutobor
2007-07-31 12:11
2007.08.26
проблемы при работе с БД


2-1185204031
nikfel
2007-07-23 19:20
2007.08.26
Функция LoadImage.


2-1185629522
Johnnnn
2007-07-28 17:32
2007.08.26
WM_LBUTTONUP Как записать координаты нажатия


8-1164033612
Виктор1
2006-11-20 17:40
2007.08.26
Caption чужой кнопки


1-1181772512
SkySpeed
2007-06-14 02:08
2007.08.26
Как нормально определить каждое "слово" в коде?..





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский