Skocz do zawartości
Szymi_2004

Problem z kodem źródłowym "pole formularza dll"

Rekomendowane odpowiedzi

Witam wszystkich!

Już dawno zaciekawił mnie ten wspaniały przykład Pieter'a 6. Dzisiaj postanowiłem dodać w projekcie możliwość zmiany koloru czcionki oraz jej stylu. W Delphi jestem very newbie, więc (jak to zawsze newbie :D) proszę was o pomoc :P. Szukałem jakiś kursów Delphi, ale niestety żaden z nich nie opisywał aspektu czcionki (no albo źle szukałem :P). Zamieszczę tutaj kod projektu zawartego w przykładzie:

 

library edit_library;

uses
   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

var
handle: THandle;

function SendMessageByString(hwnd:hwnd;msg: cardinal;wParam: integer;lParam: string):integer;
stdcall;external 'user32.dll' name 'SendMessageA';

function texta(c:char;l:integer):string;
var i:integer;
begin
result:='';
for i:=1 to l do result:=result+c;
end;

procedure Init(h:double);  cdecl;
begin
handle := round(h);
end;

function CreateEdit(x,y,w,color,Ctl3D,pass,visible:double):double; cdecl;
var TempEdit : TEdit;
begin
   TempEdit := TEdit.Create(nil);
   TempEdit.Left := round(x);
   TempEdit.Top := round(y);
   TempEdit.Width := round(w);

   if Ctl3D = 0 then
      TempEdit.Ctl3D := false
   else
      TempEdit.Ctl3D := true;

   TempEdit.ParentWindow := handle;

   if visible = 1 then
      TempEdit.Visible := True
   else
      TempEdit.Visible := false;

   TempEdit.Color := round(color);

   if pass = 1 then
      TempEdit.PasswordChar := '*';

   result := TempEdit.Handle;
end;

procedure SetTextEdit(h:double; text:Pchar); cdecl;
var
hand:THandle;
begin
hand := round(h);
SendMessageBystring(hand, WM_SETTEXT, 0, text);
end;

function GetTextEdit(h:double):Pchar; cdecl;
var
hand:THandle;
text:string;
clength:integer;
begin
hand := round(h);
clength := sendmessage(hand,WM_GETTEXTLENGTH, 0, 0); // POBIERA DLUGOSC TEXTU
text := texta(' ',clength+1); // ZAMIENIA DLUGOSC NA SPACJE
SendMessageBystring(hand, WM_GETTEXT, clength + 1, text); // POBIERA TEXT
result := pchar(text);
end;

exports Init, CreateEdit, SetTextEdit, GetTextEdit;

begin
end.

 

Z góry dziękuję za pomoc :]. Szkoda, że nie ma na tym forum opcji "Pomógł" bo chętnie bym dał mojemu wybawcy xD. Pozdrawiam

Szymi

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się tutaj.

Zaloguj się tutaj

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

×