PDA

View Full Version : a lil help with tedit



Furmiga
03-04-2004, 05:36 PM
here ya go again :) im making ma fisrt project and i was using UnDelphiX but since alpha stuff cant* be done on it I decided to move to PowerDraw. But now i cant put a edit on it. i mean i can but i cant make it visible. when i change the visible property its show up then go away. I can click on it or change the text but i cant see it. can anyone tell me what im doing wrong ?


Thx in advance

Harry Hunt
03-04-2004, 10:35 PM
Put it in a TPanel and it should work.

Furmiga
04-04-2004, 03:26 AM
Well, i tried put a edit on a panel but both got hided when i start the app... if i try to repaint they pop up again and gone. I really dont know whats happening but of corse when i comment the timer event they, or just the edit, stays ok so i think the problem is the begin / end scene or something... here the on timer event.. take a look i can be doing something wrong...



procedure TForm1.PowerTimer1Render(Sender: TObject);
begin
PowerDraw1.Clear($00000000);
PowerDraw1.BeginScene();

fundo;
if situacao = 'login' then
login;

PowerFont1.TextOut('Frame Rate: ' + IntToStr(PowerTimer1.FrameRate) + ' fps' +' Contador = '+inttostr(contador)+ ' posX ' + inttostr(posx)+ ' PosY '+inttostr(posY), 4, 580, $AFAFAF);
PowerDraw1.EndScene();
PowerDraw1.Present();
end;;



I just need edits for login / pw at the login screen and a 'memo' or something for a future in game chat.

Well here the entire code...




unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, PowerTypes, PowerDraw3, PowerTimers, PowerObjects, VTDbUnit,
PowerFonts, StdCtrls,PDrawEx, ExtCtrls, TranComp, VScreens;

type
TForm1 = class(TForm)
PowerDraw1: TPowerDraw;
PowerTimer1: TPowerTimer;
ImageList1: TAGFImageList;
PowerFont1: TPowerFont;
VTDb1: TVTDb;
VTDb2: TVTDb;
Timer1: TTimer;
VTDb3: TVTDb;
imagelist2: TAGFImageList;
procedure fundo;
procedure login;
procedure FormCreate(Sender: TObject);
procedure PowerDraw1DoneDevice(Sender: TObject);
procedure PowerDraw1InitDevice(Sender: TObject; var ExitCode: Integer);
procedure PowerTimer1Render(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure Timer1Timer(Sender: TObject);
procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FormDblClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
contador, contador2, posX,posY : integer;
//texto : TStringList;
situacao : string;
retangulo : TRect;
inteiro : Boolean;
over_bot_login : Boolean;
over_bot_sair : Boolean;

implementation

uses Math, Unit2;

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
res : integer;
begin
inteiro := true;
posX := 385;
posY := 235;
//texto := TStringList.Create;
contador := 0;
contador2 := 0;
Width := 800;
Height:= 600;

Res:= VTDb1.Initialize();
if &#40;Res <> errNone&#41; then
begin
MessageDlg&#40;'VTDb error&#58; ' + ErrorString&#40;Res&#41;, mtError, &#91;mbOk&#93;, 0&#41;;
Application.Terminate&#40;&#41;;
Exit;
end;

Res&#58;= VTDb2.Initialize&#40;&#41;;
if &#40;Res <> errNone&#41; then
begin
MessageDlg&#40;'VTDb error&#58; ' + ErrorString&#40;Res&#41;, mtError, &#91;mbOk&#93;, 0&#41;;
Application.Terminate&#40;&#41;;
Exit;
end;

Res&#58;= VTDb3.Initialize&#40;&#41;;
if &#40;Res <> errNone&#41; then
begin
MessageDlg&#40;'VTDb error&#58; ' + ErrorString&#40;Res&#41;, mtError, &#91;mbOk&#93;, 0&#41;;
Application.Terminate&#40;&#41;;
Exit;
end;

Res&#58;= PowerDraw1.Initialize&#40;&#41;;
if &#40;Res <> errNone&#41; then
begin
MessageDlg&#40;'PowerDraw error&#58; ' + ErrorString&#40;Res&#41;, mtError, &#91;mbOk&#93;, 0&#41;;
Application.Terminate&#40;&#41;;
Exit;
end;

Res&#58;= PowerDraw1.InitDevice&#40;&#41;;
if &#40;Res <> errNone&#41; then
begin
PowerDraw1.Finalize&#40;&#41;;
MessageDlg&#40;'Initialization error&#58; ' + ErrorString&#40;Res&#41;, mtError, &#91;mbOk&#93;, 0&#41;;
Application.Terminate&#40;&#41;;
Exit;
end;

PowerTimer1.MayRender&#58;= True;
situacao &#58;= 'login';
end;

procedure TForm1.PowerDraw1DoneDevice&#40;Sender&#58; TObject&#41;;
begin
PowerFont1.Finalize;
ImageList1.Finalize;
imagelist2.Finalize;
end;

procedure TForm1.PowerDraw1InitDevice&#40;Sender&#58; TObject; var ExitCode&#58; Integer&#41;;
begin
ExitCode&#58;= PowerFont1.LoadFromVTDb&#40;VTDb1, 'zuric', PowerDraw1.DefTextureFormat&#41;;
if &#40;ExitCode <> errNone&#41; then
Exit;
ExitCode&#58;= ImageList1.LoadFromVTDb&#40;VTDb2&#41;;
if &#40;ExitCode <> errNone&#41; then
Exit;
ExitCode&#58;= ImageList2.LoadFromVTDb&#40;VTDb3&#41;;
if &#40;ExitCode <> errNone&#41; then
Exit;
end;

// ---------------------- INA_CIO DO TIMER ---------------------------

procedure TForm1.PowerTimer1Render&#40;Sender&#58; TObject&#41;;
begin
PowerDraw1.Clear&#40;$00000000&#41;;
PowerDraw1.BeginScene&#40;&#41;;

fundo;
if situacao = 'login' then
login;

PowerFont1.TextOut&#40;'Frame Rate&#58; ' + IntToStr&#40;PowerTimer1.FrameRate&#41; + ' fps' +' Contador = '+inttostr&#40;contador&#41;+ ' posX ' + inttostr&#40;posx&#41;+ ' PosY '+inttostr&#40;posY&#41;, 4, 580, $AFAFAF&#41;;
PowerDraw1.EndScene&#40;&#41;;
PowerDraw1.Present&#40;&#41;;
end;

// ---------------------- FINAL DO TIMER -----------------------------

procedure TForm1.FormDestroy&#40;Sender&#58; TObject&#41;;
begin
PowerDraw1.Finalize&#40;&#41;;
end;

procedure TForm1.FormKeyDown&#40;Sender&#58; TObject; var Key&#58; Word; Shift&#58; TShiftState&#41;;
var
Res&#58; Integer;
begin
if &#40;Key = VK_ESCAPE&#41; then Close&#40;&#41;;
if &#40;Key = VK_RETURN&#41;and&#40;ssAlt in Shift&#41; then
begin
PowerDraw1.DoneDevice&#40;&#41;;
PowerDraw1.Windowed&#58;= not PowerDraw1.Windowed;
if &#40;not PowerDraw1.Windowed&#41; then
BorderStyle&#58;= bsNone
else
BorderStyle&#58;= bsSingle;
ClientWidth&#58;= PowerDraw1.Width;
ClientHeight&#58;= PowerDraw1.Height;
Res&#58;= PowerDraw1.InitDevice&#40;&#41;;
if &#40;Res <> errNone&#41; then
begin
PowerDraw1.Finalize&#40;&#41;;
PowerTimer1.MayRender&#58;= False;
MessageDlg&#40;'Initialization error&#58; ' + ErrorString&#40;Res&#41;, mtError, &#91;mbOk&#93;, 0&#41;;
Close&#40;&#41;;
Exit;
end;
exit;
end;
if key = VK_LEFT then
posX &#58;= posX - 5;
if key = VK_RIGHT then
posX &#58;= posX + 5;
if key = VK_UP then
posY &#58;= posY - 5;
if key = VK_DOWN then
posY &#58;= posY + 5;
end;

procedure TForm1.Timer1Timer&#40;Sender&#58; TObject&#41;;
begin
contador &#58;= &#40;contador + 1&#41; mod 15;
end;

procedure TForm1.Login;
var
fundo &#58; TRect;
begin
if inteiro then
begin
fundo.Top &#58;= janela_login_X+10;
fundo.Bottom&#58;= janela_login_X + 90;
fundo.Left &#58;= janela_login_Y;
fundo.Right &#58;= janela_login_Y + 250;
PowerDraw1.FillRect&#40;fundo,cColor4&#40;$00699600,$00699 600,$00699600,$00699600&#41;,effectMultiply&#41;;
PowerDraw1.FillRect&#40;janela_login_Y+60,janela_login _X+15,160,20,$808080,effectSrcColor&#41;;
PowerDraw1.FillRect&#40;janela_login_Y+60,janela_login _X+40,160,20,$808080,effectSrcColor&#41;;
PowerFont1.TextOut&#40;'Login&#58;', janela_login_Y+10, janela_login_X+15, $AFAFAF&#41;;
PowerFont1.TextOut&#40;'Pass&#58;' , janela_login_Y+10, janela_login_X+40, $AFAFAF&#41;;
if over_bot_login then
PowerDraw1.TextureMap&#40;ImageList1.Images&#91;5&#93;, pBounds4&#40;janela_login_Y+60,janela_login_X+65,50,15 &#41;,cColor1&#40;$FFFFFFFF&#41;,tPattern&#40;1&#41;,effectSrcAlpha &#41;
else
PowerDraw1.TextureMap&#40;ImageList1.Images&#91;5&#93;, pBounds4&#40;janela_login_Y+60,janela_login_X+65,50,15 &#41;,cColor1&#40;$FFFFFFFF&#41;,tPattern&#40;0&#41;,effectSrcAlpha &#41;;
if over_bot_sair then
PowerDraw1.TextureMap&#40;ImageList1.Images&#91;6&#93;, pBounds4&#40;janela_login_Y+170,janela_login_X+65,50,1 5&#41;,cColor1&#40;$FFFFFFFF&#41;,tPattern&#40;1&#41;,effectSrcAlpha &#41;
else
PowerDraw1.TextureMap&#40;ImageList1.Images&#91;6&#93;, pBounds4&#40;janela_login_Y+170,janela_login_X+65,50,1 5&#41;,cColor1&#40;$FFFFFFFF&#41;,tPattern&#40;0&#41;,effectSrcAlpha &#41;;
PowerDraw1.TextureMap&#40;ImageList1.Images&#91;1&#93;, pBounds4&#40;janela_login_Y,janela_login_X,250,90&#41;,cCo lor1&#40;$FFFFFFFF&#41;,tPattern&#40;0&#41;,effectSrcAlpha&#41;;
end
else
PowerDraw1.TextureMap&#40;ImageList1.Images&#91;2&#93;, pBounds4&#40;janela_login_Y,janela_login_X,250,10&#41;,cCo lor1&#40;$FFFFFFFF&#41;,tPattern&#40;0&#41;,effectSrcAlpha&#41;;
end;

procedure TForm1.FormMouseDown&#40;Sender&#58; TObject; Button&#58; TMouseButton;Shift&#58; TShiftState; X, Y&#58; Integer&#41;;
var mousepos &#58; TPoint;
begin
GetCursorPos&#40;mousepos&#41;;
if situacao = 'login' then
begin
if pointinrect&#40;mousepos,bounds&#40;janela_login_Y,janela_ login_X,ImageList1.Images&#91;2&#93;.PatternWidth,10&#41;&#41;then//ImageList1.Images&#91;2&#93;.PatternHeight&#41;&#41; then
begin
pode_arrastar_login &#58;= true;
posicao_do_click_x &#58;= mousepos.x;
posicao_do_click_y &#58;= mousepos.y;
end;
if pointinrect&#40;mousepos,bounds&#40;janela_login_Y+230,jan ela_login_X,15,10&#41;&#41;then//ImageList1.Images&#91;2&#93;.PatternHeight&#41;&#41; then
inteiro &#58;= not inteiro;
if over_bot_sair then
close;
end;
end;

procedure TForm1.FormMouseMove&#40;Sender&#58; TObject; Shift&#58; TShiftState; X,Y&#58; Integer&#41;;
var mousepos &#58; TPoint;
begin
Cursor &#58;= crDefault;
if situacao = 'login' then
begin
if pode_arrastar_login then
begin
if &#40;x > 10&#41; and &#40;x < 790&#41; then
begin
if posicao_do_click_x > x then
begin
janela_login_Y &#58;= janela_login_Y - &#40;posicao_do_click_x - x&#41;;
posicao_do_click_x &#58;= x;
end;
if posicao_do_click_x < x then
begin
janela_login_Y &#58;= janela_login_Y + &#40;x - posicao_do_click_x&#41;;
posicao_do_click_x &#58;= x;
end;
end;
if posicao_do_click_y > y then
begin
janela_login_X &#58;= janela_login_X - &#40;posicao_do_click_y - y&#41;;
posicao_do_click_y &#58;= y;
end;
if posicao_do_click_Y < y then
begin
janela_login_X &#58;= janela_login_X + &#40;y - posicao_do_click_y&#41;;
posicao_do_click_y &#58;= y;
end;
end;
GetCursorPos&#40;mousepos&#41;;
if inteiro then
begin
if &#40;pointinrect&#40;mousepos,bounds&#40;janela_login_Y+60,jan ela_login_X+40,160,20&#41;&#41;&#41; or &#40;pointinrect&#40;mousepos,bounds&#40;janela_login_Y+60,jan ela_login_X+15,160,20&#41;&#41;&#41;then
Cursor &#58;= crIBeam
else
Cursor &#58;= crDefault;
if &#40;pointinrect&#40;mousepos,bounds&#40;janela_login_Y+60,jan ela_login_X+65,50,15&#41;&#41;&#41;then
over_bot_login &#58;= true
else
over_bot_login &#58;= false;
if &#40;pointinrect&#40;mousepos,bounds&#40;janela_login_Y+170,ja nela_login_X+65,50,15&#41;&#41;&#41;then
over_bot_sair &#58;= true
else
over_bot_sair &#58;= false;
end;
end;
end;

procedure TForm1.FormMouseUp&#40;Sender&#58; TObject; Button&#58; TMouseButton;
Shift&#58; TShiftState; X, Y&#58; Integer&#41;;
begin
if situacao = 'login' then
pode_arrastar_login &#58;= false;
end;

procedure TForm1.FormDblClick&#40;Sender&#58; TObject&#41;;
var mousepos &#58; TPoint;
begin
GetCursorPos&#40;mousepos&#41;;
if situacao = 'login' then
begin
if pointinrect&#40;mousepos,bounds&#40;janela_login_Y,janela_ login_X,250,10&#41;&#41;then//ImageList
inteiro &#58;= not inteiro
end;
end;

procedure TForm1.fundo;
begin
if situacao = 'login' then
begin
PowerDraw1.TextureMap&#40;ImageList1.Images&#91;3&#93;, pBounds4&#40;0,0,200,200&#41;,cColor1&#40;$FFFFFFFF&#41;,tPattern&#40; 0&#41;,effectNone&#41;;
PowerDraw1.TextureMap&#40;ImageList1.Images&#91;3&#93;, pBounds4&#40;200,0,200,200&#41;,cColor1&#40;$FFFFFFFF&#41;,tPatter n&#40;1&#41;,effectNone&#41;;
PowerDraw1.TextureMap&#40;ImageList1.Images&#91;3&#93;, pBounds4&#40;400,0,200,200&#41;,cColor1&#40;$FFFFFFFF&#41;,tPatter n&#40;2&#41;,effectNone&#41;;
PowerDraw1.TextureMap&#40;ImageList1.Images&#91;3&#93;, pBounds4&#40;600,0,200,200&#41;,cColor1&#40;$FFFFFFFF&#41;,tPatter n&#40;3&#41;,effectNone&#41;;
PowerDraw1.TextureMap&#40;ImageList1.Images&#91;3&#93;, pBounds4&#40;0,200,200,200&#41;,cColor1&#40;$FFFFFFFF&#41;,tPatter n&#40;4&#41;,effectNone&#41;;
PowerDraw1.TextureMap&#40;ImageList1.Images&#91;3&#93;, pBounds4&#40;200,200,200,200&#41;,cColor1&#40;$FFFFFFFF&#41;,tPatt ern&#40;5&#41;,effectNone&#41;;
PowerDraw1.TextureMap&#40;ImageList1.Images&#91;3&#93;, pBounds4&#40;400,200,200,200&#41;,cColor1&#40;$FFFFFFFF&#41;,tPatt ern&#40;6&#41;,effectNone&#41;;
PowerDraw1.TextureMap&#40;ImageList1.Images&#91;3&#93;, pBounds4&#40;600,200,200,200&#41;,cColor1&#40;$FFFFFFFF&#41;,tPatt ern&#40;7&#41;,effectNone&#41;;
PowerDraw1.TextureMap&#40;ImageList1.Images&#91;3&#93;, pBounds4&#40;0,400,200,200&#41;,cColor1&#40;$FFFFFFFF&#41;,tPatter n&#40;8&#41;,effectNone&#41;;
PowerDraw1.TextureMap&#40;ImageList1.Images&#91;3&#93;, pBounds4&#40;200,400,200,200&#41;,cColor1&#40;$FFFFFFFF&#41;,tPatt ern&#40;9&#41;,effectNone&#41;;
PowerDraw1.TextureMap&#40;ImageList1.Images&#91;3&#93;, pBounds4&#40;400,400,200,200&#41;,cColor1&#40;$FFFFFFFF&#41;,tPatt ern&#40;10&#41;,effectNone&#41;;
PowerDraw1.TextureMap&#40;ImageList1.Images&#91;3&#93;, pBounds4&#40;600,400,200,200&#41;,cColor1&#40;$FFFFFFFF&#41;,tPatt ern&#40;11&#41;,effectNone&#41;;
PowerDraw1.TextureMap&#40;ImageList1.Images&#91;4&#93;, pBounds4&#40;150,4,250,72&#41;,cColor1&#40;$FF104000&#41;,tPattern &#40;0&#41;,effectAdd&#41;;
PowerDraw1.TextureMap&#40;ImageList1.Images&#91;4&#93;, pBounds4&#40;400,4,250,72&#41;,cColor1&#40;$FF104000&#41;,tPattern &#40;1&#41;,effectAdd&#41;;
PowerDraw1.TextureMap&#40;ImageList1.Images&#91;0&#93;, pBounds4&#40;posX,posY,69,74&#41;,cColor1&#40;$FFFFFFFF&#41;,tPatt ern&#40;contador&#41;,effectSrcColor&#41;;
end;
end;

end.

// ------------------------- UNIT 2 ----------------------------

var
janela_login_X &#58; integer = 80;
janela_login_Y &#58; integer = 500;
pode_arrastar_login &#58; Boolean;
posicao_do_click_x , posicao_do_click_y &#58; integer;

// ------------------------ END OF UNIT 2 ------------------------



Plz guys i need this help i know u guys can help me :) ty ty ty

Furmiga
04-04-2004, 04:32 AM
I just figure out that this problem just happen when the app is in full screen whats it aways will do.... :(

Harry Hunt
04-04-2004, 04:24 PM
you should consider creating you controls graphically using powerdraw rather than using Delphi controls. Direct3D fullscreen mode and windows controls don't go together too well.
Some of DirectX wrappers have components for user interfaces included. I dunno if powerdraw does?

Furmiga
05-04-2004, 05:43 AM
Heya Harry Hunt srry to annoying u with my questions :P but can u tell me if this can be a way to solve my problem ?


I made a component "at last i had to intall it heh" and... could u plz see if after some improvements this can be useful ? I mean am I on the right way ? I never made a component before and im pretty sure i missed something. the "demo" version Is working fine but im afraid i missed important stuffs.

here ya go again...



unit editX;

interface

uses
windows, Classes, PowerTypes, PowerDraw3, PowerFonts, Controls;

type
TeditX = class&#40;TComponent&#41;

private
FpowerDraw &#58; TPowerDraw;
FPowerFont &#58; TPowerFont;
FTexto &#58; string;
F_Top &#58; integer;
F_Left &#58; integer;
FFont &#58; integer;
FTamanho &#58; integer;
FClicado &#58; Boolean;
contador &#58; integer;
letras &#58; integer;
lista &#58; TStringList;
primeiro &#58; Boolean;
mousepos &#58; TPoint;
FOnMouseMove &#58; TMouseMoveEvent;
FPassword &#58; Boolean;
TextoSecreto &#58; String;

protected
procedure SetPowerDraw&#40;value &#58; TPowerDraw&#41;;
procedure SetPowerFont&#40;Value&#58; TPowerFont&#41;;
procedure Set_Top&#40;Value&#58; integer&#41;;
procedure Set_Left&#40;Value&#58; integer&#41;;
procedure SetFont&#40;Value&#58; integer&#41;;
procedure SetTamanho &#40;Value&#58; Integer&#41;;
procedure SetTexto&#40;Value&#58; String&#41;;
procedure SetClicado&#40;Value&#58; Boolean&#41;;
procedure SetOnMouseEvent&#40;Value&#58; TMouseMoveEvent&#41;;
procedure SetPassword&#40;Value &#58; Boolean&#41;;

public
procedure desenha;
procedure resolve&#40;valor &#58; Char&#41;;
property clicado &#58; Boolean read FClicado Write SetClicado;
function pass&#58; String;

published
property PowerDraw&#58; TPowerDraw read FpowerDraw write SetPowerDraw;
property PowerFont&#58; TPowerFont read FPowerFont write SetPowerFont;
property Texto &#58; String read FTexto write SetTexto;
Property Top_ &#58; integer read F_Top write Set_Top;
Property left_ &#58; integer read F_Left write Set_Left;
Property Font &#58; integer read FFont write SetFont;
Property Tamanho &#58; integer read FTamanho write SetTamanho;
property OnMouseMove &#58; TMouseMoveEvent read FOnMouseMove write SetOnMouseEvent;
property Password &#58; Boolean read FPassword write SetPassword;
end;

procedure Register;


implementation

procedure Register;
begin
RegisterComponents&#40;'PowerGrafix', &#91;TeditX&#93;&#41;;
end;

&#123; TeditX &#125;

procedure TeditX.desenha;
var shift &#58; TShiftState;
begin
GetCursorPos&#40;mousepos&#41;;
FPowerDraw.FillRect&#40;F_Left,F_Top,FTamanho,FFont,$8 08080,effectSrcColor&#41;;
FPowerFont.TextOut&#40;FTexto,F_Left,F_Top+3,$FFFFFFFF ,effectNone&#41;;
if pointinrect&#40;mousepos,bounds&#40;F_Left,F_Top,FTamanho, FFont&#41;&#41; then
begin
if assigned&#40;OnMouseMove&#41; then
OnMouseMove&#40;Self,shift,mousepos.X,mousepos.y&#41;;
end;
if clicado then
begin
contador &#58;= &#40;contador + 1&#41; mod 250;
if contador > 125 then
FPowerDraw.FrameRect&#40;F_Left+letras*9,F_Top,1,FFont ,$FF888888,effectNone&#41;
end;
end;

procedure TeditX.resolve&#40;valor&#58; Char&#41;;
var I &#58; Integer;
begin
if primeiro = false then
begin
lista &#58;= TStringList.Create;
primeiro &#58;= true;
end;
if &#40;valor in &#91;'A'..'Z','a'..'z', '0'..'9'&#93;&#41; and &#40;lista.Count < 17&#41; then
begin
lista.Add&#40;valor&#41;;
FTexto &#58;= '';
TextoSecreto &#58;= '';
letras &#58;= 0;
for I&#58;= 0 to lista.Count-1 do
begin
if password then
begin
FTexto &#58;= FTexto + '*';
TextoSecreto &#58;= TextoSecreto + lista.Strings&#91;I&#93;;
end
else
FTexto &#58;= FTexto + lista.Strings&#91;I&#93;;
letras &#58;= letras + 1;
end;
end
else if &#40;valor in &#91;'A'..'Z','a'..'z', '0'..'9'&#93;&#41; and &#40;lista.Count >= 17&#41; then
begin
beep&#40;100,100&#41;;
end
else if &#40;valor = chr&#40;8&#41;&#41; and &#40;lista.Count > 0&#41; then
begin
letras &#58;= letras - 1;
lista.Delete&#40;lista.Count-1&#41;;
Ftexto &#58;= copy&#40;Ftexto,0,lista.Count&#41;;
end;
end;

procedure TeditX.SetPowerFont&#40;Value&#58; TPowerFont&#41;;
begin
FPowerFont &#58;= Value;
end;

procedure TeditX.SetPowerDraw&#40;value&#58; TPowerDraw&#41;;
begin
FpowerDraw &#58;= value;
end;

procedure TeditX.SetFont&#40;Value&#58; integer&#41;;
begin
FFont &#58;= value;
end;

procedure TeditX.Set_Left&#40;Value&#58; integer&#41;;
begin
F_Left &#58;= value;
end;

procedure TeditX.SetTamanho&#40;Value&#58; Integer&#41;;
begin
FTamanho &#58;= value;
end;

procedure TeditX.SetTexto&#40;Value&#58; String&#41;;
begin
FTexto &#58;= value;
end;

procedure TeditX.Set_Top&#40;Value&#58; integer&#41;;
begin
F_Top &#58;= value;
end;


procedure TeditX.SetClicado&#40;value&#58; Boolean&#41;;
begin
FClicado &#58;= value;
end;

procedure TeditX.SetOnMouseEvent&#40;value&#58; TMouseMoveEvent&#41;;
begin
FOnMouseMove&#58;= value;
end;

procedure TeditX.SetPassword&#40;Value&#58; Boolean&#41;;
begin
FPassword &#58;= Value;
end;

function TeditX.pass&#58; String;
begin
result &#58;= TextoSecreto;
end;

end.



Thx in advance

Harry Hunt
05-04-2004, 07:26 AM
That looks pretty good... I'm not too familiar with PowerDraw, but the direction your going into with your component is good.