Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.02.26;
Скачать: CL | DM;

Вниз

Как перевести компонент с API на Pascal(delphi)?   Найти похожие ветки 

 
Нулевой ©   (2006-02-07 11:14) [0]

Есть такой код...
procedure TForm1.FormCreate(Sender: TObject);
begin
 Btns[0] := CreateWindowEx(0, "button", "BS_PUSHUTTON", BS_PUSHBUTTON or BS_FLAT
   or WS_CHILD or WS_VISIBLE or WS_TABSTOP, 10, 10, 150, 25, Handle, 0,
   hinstance, nil);
 Btns[1] := CreateWindowEx(0, "button", "BS_DEFPUSHUTTON", BS_DEFPUSHBUTTON or
   BS_FLAT or WS_CHILD or WS_VISIBLE, 10, 40, 150, 25, Handle, 0, hinstance,
   nil);
 Btns[2] := CreateWindowEx(0, "button", "BS_AUTOCHECKBOX", BS_AUTOCHECKBOX or
   BS_FLAT or WS_CHILD or WS_VISIBLE, 10, 70, 150, 25, Handle, 0, hinstance,
   nil);
 Btns[3] := CreateWindowEx(0, "button", "BS_AUTORADIOBUTTON", BS_AUTORADIOBUTTON
   or BS_FLAT or WS_CHILD or ws_visible, 10, 100, 150, 25, Handle, 0,
   hinstance, nil);
 Btns[4] := CreateWindowEx(0, "button", "BS_GROUPBOX", BS_GROUPBOX or BS_FLAT
   or WS_CHILD or WS_VISIBLE, 10, 130, 150, 35, Handle, 0, hinstance, nil);
 Btns[5] := CreateWindowEx(0, "button", "BS_AUTO3STATE", BS_AUTO3STATE or
   WS_CHILD or WS_VISIBLE, 10, 170, 150, 25, Handle, 0, hinstance, nil);
end;

Как эти комопнеты сделать на delphi?
Помогите куда копать...!!!
Вид компонетнт важен, может есть готовые? (eMule).
Спасибо.


 
Reindeer Moss Eater ©   (2006-02-07 11:19) [1]

Есть такой код...

И этот код уже на Паскале. Куда его еще переводить?


 
Нулевой ©   (2006-02-07 11:29) [2]

Да...
Но мне нужно написать эти компоненты, установить их в delphi.
Можно ли использовать стандартные, изменив (или добавить) их свойство BS_PUSHBUTTON or BS_FLAT? Нужен такой вид, как в коде выше.
Выражаюсь криво, простите!!!


 
Гошик Кувшинов   (2006-02-07 11:31) [3]

стандартными компонентами такое не сделаешь. ищи кнопки на торри или ещё где, таких полно


 
Gero ©   (2006-02-07 11:31) [4]

Перекрывай CreateParams у TButton.


 
Нулевой ©   (2006-02-07 11:42) [5]

Написал так:
unit FltButton;

interface

uses
 SysUtils, Classes, Controls, StdCtrls;

type
 TFltButton = class(TButton)
 private
   { Private declarations }
   FFlat: boolean;
  procedure SetFlat(const Value: boolean);
 protected
   { Protected declarations }
   procedure CreateParams(Params: TCreateParams); override;
 public
   { Public declarations }
 published
   { Published declarations }
   property Flat: boolean read FFlat write SetFlat default False;
 end;

procedure Register;

implementation

procedure TFltButton.CreateParams(Params: TCreateParams);
begin
inherited;
if FFlat then
  Params.Style := Params.Style or BS_FLAT
end;

procedure TFltButton.SetFlat(const Value: boolean);
begin
if FFlat <> Value then
begin
  FFlat := Value;
  RecreateWnd;
end
end;

procedure Register;
begin
 RegisterComponents("Samples", [TFltButton]);
end;

end.
Добавил в пакет... Ругается:
[Error] FltButton.pas(16): Declaration of "CreateParams" differs from previous declaration
[Error] FltButton.pas(31): Incompatible types
[Error] FltButton.pas(33): Undeclared identifier: "BS_FLAT"
[Warning] FltButton.pas(34): Combining signed and unsigned types - widened both operands
[Fatal Error] Package1.dpk(32): Could not compile used unit "FltButton.pas"

Подскажите что добавить в пакет?


 
Нулевой ©   (2006-02-07 11:48) [6]

в uses windows - добавил...


 
Нулевой ©   (2006-02-07 11:55) [7]

Изменил:
procedure TFltButton.CreateParams(Params: TCreateParams);
begin
inherited CreateParams(Params);
if FFlat then
  Params.Style := Params.Style or BS_PUSHBUTTON or BS_FLAT
end;
Осталась ругань:
[Error] FltButton.pas(16): Declaration of "CreateParams" differs from previous declaration

Как побороть, помогите!?
Спасибо.


 
Рамиль ©   (2006-02-07 11:58) [8]

procedure CreateParams(var Params: TCreateParams); override;


 
Zeqfreed ©   (2006-02-07 11:59) [9]


> Как побороть, помогите!?

Прочитать и осмыслить текст ошибки.
Hint: Params — это var-параметр в базовом классе.


 
Нулевой ©   (2006-02-07 12:00) [10]

Большое всем спасибо, сделал!!!!!



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

Текущий архив: 2006.02.26;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.048 c
4-1133697542
kami
2005-12-04 14:59
2006.02.26
Как правильно обработать WH_KEYBOARD?


15-1138474536
LordOfRock
2006-01-28 21:55
2006.02.26
Back To The Future


15-1139247995
PARUS
2006-02-06 20:46
2006.02.26
Имитатор.


2-1139534386
tester83
2006-02-10 04:19
2006.02.26
Excel


1-1138349420
MMM_corp
2006-01-27 11:10
2006.02.26
как приобщить мне FreeReport к BDS 2006