Delphi(forms) to Delphi(win32 API)
-
There's a pretty simple code for Delphi7 using standard forms. We need to transfer this code to Win32 API without using standard libraries and forms. Show me how it's done. Or if it's all quick, you can write it.
unit RGB;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;type
TForm1 = class(TForm)
ScrollBar1: TScrollBar;
ScrollBar2: TScrollBar;
Edit1: TEdit;
ScrollBar3: TScrollBar;
Edit2: TEdit;
Edit3: TEdit;
Panel1: TPanel;
procedure Button1Click(Sender: TObject);
procedure ScrollBar1Change(Sender: TObject);
procedure ScrollBar2Change(Sender: TObject);
procedure ScrollBar3Change(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure Edit2KeyPress(Sender: TObject; var Key: Char);
procedure Edit3KeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation
{$R *.dfm}
function RGBToColor(R, G, B: Byte): TColor;
begin
Result := B shl 16 or G shl 8 or R;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
ScrollBar1.Position:=StrToInt(Edit1.Text);
ScrollBar2.Position:=StrToInt(Edit2.Text);
ScrollBar3.Position:=StrToInt(Edit3.Text);Panel1.Color:=RGBToColor(ScrollBar1.Position, ScrollBar2.Position, ScrollBar3.Position);
end;
procedure TForm1.ScrollBar1Change(Sender: TObject);
begin
Edit1.Text:=IntToStr(ScrollBar1.Position);
Panel1.Color:=RGBToColor(ScrollBar1.Position, ScrollBar2.Position, ScrollBar3.Position);
end;procedure TForm1.ScrollBar2Change(Sender: TObject);
begin
Edit2.Text:=IntToStr(ScrollBar2.Position);
Panel1.Color:=RGBToColor(ScrollBar1.Position, ScrollBar2.Position, ScrollBar3.Position);
end;procedure TForm1.ScrollBar3Change(Sender: TObject);
begin
Edit3.Text:=IntToStr(ScrollBar3.Position);
Panel1.Color:=RGBToColor(ScrollBar1.Position, ScrollBar2.Position, ScrollBar3.Position);
end;procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
case Key of
'0'..'9': ; // цифра
#8 : ; // клавиша <Back Space>
#13 : Edit2.SetFocus ; // клавиша <Enter>, переводим фокус на второй Edit
// остальные символы — запрещены
else Key :=Chr(0);
end;
if (Edit1.Text<>'') then
ScrollBar1.Position:=StrToInt(Edit1.Text);
Panel1.Color:=RGBToColor(ScrollBar1.Position, ScrollBar2.Position, ScrollBar3.Position);
end;procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
case Key of
'0'..'9': ; // цифра
#8 : ; // клавиша <Back Space>
#13 : Edit3.SetFocus ; // клавиша <Enter>, переводим фокус на второй Edit
// остальные символы — запрещены
else Key :=Chr(0);
end;
if (Edit2.Text<>'') then
ScrollBar2.Position:=StrToInt(Edit2.Text);
Panel1.Color:=RGBToColor(ScrollBar1.Position, ScrollBar2.Position, ScrollBar3.Position);
end;procedure TForm1.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
case Key of
'0'..'9': ; // цифра
#8 : ; // клавиша <Back Space>
#13 : Edit1.SetFocus ; // клавиша <Enter>, переводим фокус на второй Edit
// остальные символы — запрещены
else Key :=Chr(0);
end;
if (Edit3.Text<>'') then
ScrollBar3.Position:=StrToInt(Edit3.Text);
Panel1.Color:=RGBToColor(ScrollBar1.Position, ScrollBar2.Position, ScrollBar3.Position);
end;end.
-
Create a window with help
CreateWindow(Ex)
to process messages inside the window function.https://stackoverflow.com/questions/10180016/creating-forms-without-using-vcl with the creation of subsidiary elements.