AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

nonVCL vorlage will nicht...

Ein Thema von hedie · begonnen am 1. Jan 2008 · letzter Beitrag vom 3. Jan 2008
Antwort Antwort
Seite 1 von 2  1 2      
hedie

Registriert seit: 12. Dez 2005
Ort: Schweiz
1.024 Beiträge
 
Delphi XE6 Starter
 
#1

nonVCL vorlage will nicht...

  Alt 1. Jan 2008, 21:23
Hallo

Ich habe mir ein kleines Programm geschrieben... welches jetzt jedoch 700 KB ist
obwohl es nur etwas kleiner erledigt (patchen einer EXE )

Nun wollte ich die Grösse trimmen...

Die einzige Möglichkeit ist ja, die über nonVCL

Gut, dachte ich und hab mal n bisschen ge googlet und das gefunden dsdt Link nonVCL
Dann wollte ich mir das erste Beispiel runterladen, doch was dan? Avast meldet einen Virus um zip
genauso beim zweiten beispiel. Das dritte hat dan geklappt... (LINK) Doch nun mekert Delphi beim Compilieren folgendes...

HLcursor := LoadCursor(hInstance, 'HandCursor');
Code:
[DCC Fehler] Hyperlink.pas(74): E2064 Der linken Seite kann nichts zugewiesen werden
weshalb den das?
Claudio
Tu was du nicht lassen kannst
- http://endasmedia.ch
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: nonVCL vorlage will nicht...

  Alt 1. Jan 2008, 21:26
Ist HLcursor eine Konstante?
Was für ein Typ hat HLcursor?
Gibt es vielleicht eine Prozedur/Methode mit dem selben Namen?
Markus Kinzler
  Mit Zitat antworten Zitat
hedie

Registriert seit: 12. Dez 2005
Ort: Schweiz
1.024 Beiträge
 
Delphi XE6 Starter
 
#3

Re: nonVCL vorlage will nicht...

  Alt 1. Jan 2008, 21:29
HLCursor ist nirgends definiert... also gehe ich mal davon aus das es ne konstante ist...

Wenn ich den Code Posten soll (den ganzen) einfach sagen... wollte nicht von begin an
das Forum zu "müllen"
Claudio
Tu was du nicht lassen kannst
- http://endasmedia.ch
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: nonVCL vorlage will nicht...

  Alt 1. Jan 2008, 21:30
Einer Konstante kann man auch nichts zuweisen.
Markus Kinzler
  Mit Zitat antworten Zitat
hedie

Registriert seit: 12. Dez 2005
Ort: Schweiz
1.024 Beiträge
 
Delphi XE6 Starter
 
#5

Re: nonVCL vorlage will nicht...

  Alt 1. Jan 2008, 21:32
aber weshalb konnte dan dieser assbard sein Projekt compilieren?

Im geposteten Zip (link) sind ja alle Projekt Dateien enthalten so wie er sie benutzt hat...

Da kann doch was nicht stimmen....

Kennst du sonst noch ein gutes Tutorial für nonVCL oder ein nonVCL hello world natürlich mit Formularen aus der WinAPI

p.s. danke für die schnellen Antworten
Claudio
Tu was du nicht lassen kannst
- http://endasmedia.ch
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: nonVCL vorlage will nicht...

  Alt 1. Jan 2008, 21:34
Poste mal deinen Code
BTW. assarbad ist hier im Forum Als Olli aktiv
Markus Kinzler
  Mit Zitat antworten Zitat
hedie

Registriert seit: 12. Dez 2005
Ort: Schweiz
1.024 Beiträge
 
Delphi XE6 Starter
 
#7

Re: nonVCL vorlage will nicht...

  Alt 1. Jan 2008, 21:41
Opps sorry hab mich vertan... er heisst assarbad

Delphi-Quellcode:
(****************************************************************
****************************************************************
***                                                          ***
***        Copyright (c) 2001 by -=Assarbad [GoP]=-          ***
***      ____________                ___________          ***
***      /\  ________\              /\  _____  \          ***
***    /  \  \      /    __________/  \  \    \  \        ***
***    \  \  \  __/___ /\  _____  \  \  \____\  \        ***
***      \  \  \ /\___  \  \  \    \  \  \  _______\      ***
***      \  \  \ /  \  \  \  \    \  \  \  \      /      ***
***        \  \  \_____\  \  \  \____\  \  \  \____/        ***
***        \  \___________\  \__________\  \__\            ***
***          \  /          /  /          /  /  /            ***
***          \/___________/ \/__________/ \/__/            ***
***                                                          ***
***  May the source be with you, stranger ... :-)            ***
***                                                          ***
***  Greets from -=Assarbad [GoP]=- ...                      ***
***  Special greets go 2 Nico, Casper, SA, Pizza, Navarion...***
***[for questions/proposals drop a mail to [email]Assarbad@ePost.de[/email]]***
*****************************************ASCII by Assa [GoP]****
****************************************************************)


{$R handcursor.res}
const
  AHyperlink = 'AHyperlinkWndClassEx';
  HLcursor: Cardinal = 0;
var
  inactivefont,
    activefont,
    inactivecolor,
    activecolor: Cardinal;

function HyperlinkWndProc(hWnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
var
  prop, DC: DWORD;
  point: TPoint;
  rect: TRect;
  ps: TPaintStruct;
  pc: array[0..$400] of char;

  procedure paint(txtcolor: Cardinal);
  var size: TSize;
  begin
    GetClientRect(hWnd, rect);
    if txtcolor = inactivecolor then selectobject(dc, inactivefont)
    else selectobject(dc, activefont);
    Fillrect(DC, rect, GetSysColorBrush(COLOR_3DFACE));
    SetBkMode(DC, TRANSPARENT);
    Settextcolor(DC, txtcolor);
    SendMessage(hWnd, WM_GETTEXT, $400, LongInt(@pc[0]));
    GetWindowRect(hWnd, rect);
    GetTextExtentPoint32(DC, @pc[0], lstrlen(@pc[0]), size);
//center text in control window
    ExtTextOut(DC, ((rect.right - rect.left) div 2) - (size.cx div 2), 0, 2, @rect, @pc[0], lstrlen(@pc[0]), nil);
  end;

  function varfont(DC: DWORD; size, weight: integer; underline: BOOL): DWORD;
  begin
    result := CreateFont(-MulDiv(size, GetDeviceCaps(DC, LOGPIXELSY), 72), 0, 0, 0, weight, 0, Cardinal(underline), 0, ANSI_CHARSET, OUT_TT_PRECIS, CLIP_DEFAULT_PRECIS, PROOF_QUALITY, VARIABLE_PITCH or FF_ROMAN, 'MS Sans Serif');
  end;

  function fixfont(DC: DWORD; size, weight: integer; underline: BOOL): DWORD;
  begin
    result := CreateFont(-MulDiv(size, GetDeviceCaps(DC, LOGPIXELSY), 72), 0, 0, 0, weight, 0, Cardinal(underline), 0, ANSI_CHARSET, OUT_TT_PRECIS, CLIP_DEFAULT_PRECIS, PROOF_QUALITY, FIXED_PITCH or FF_MODERN, 'Courier New');
  end;

begin
  Result := 0;
  case uMsg of
    WM_CREATE:
      begin
        result := DefWindowProc(hWnd, uMsg, wParam, lParam);
        //HLcursor := LoadCursor(hInstance, 'HandCursor');
        DC := GetWindowDC(hWnd);
        inactivefont := fixfont(DC, 8, FW_NORMAL, FALSE);
        activefont := fixfont(DC, 8, FW_BOLD, TRUE);
        ReleaseDC(hWnd, DC);
        inactivecolor := rgb($0, $0, $0);
        activecolor := rgb($0, $0, $FF);
        SendMessage(hWnd, WM_CAPTURECHANGED, 0, 0);
      end;
    WM_RBUTTONUP,
      WM_LBUTTONUP:
      begin
        prop := getprop(hwnd, 'Link');
        if prop <> 0 then shellexecute(0, 'open', pchar(prop), '', '', SW_SHOWNORMAL);
      end;
    WM_CAPTURECHANGED,
      WM_MOUSEMOVE:
      begin
        GetCursorPos(point);
        GetWindowRect(hwnd, rect);
        if PtInRect(rect, point) then begin
          if GetCapture <> hWnd then begin
            SetCapture(hWnd);
            SetCursor(HLcursor);
            SendMessage(hWnd, WM_PAINT, activecolor, -1);
          end;
        end else begin
          ReleaseCapture;
          SendMessage(hWnd, WM_PAINT, inactivecolor, -1);
        end;
      end;
    WM_PAINT:
      begin
        case lParam of
          -1: begin
              DC := GetWindowDC(hWnd);
              paint(wParam);
              ReleaseDC(hWnd, DC);
            end;
        else begin
            DC := BeginPaint(hWnd, ps);
            paint(wParam);
            EndPaint(hWnd, ps);
          end;
        end;
      end;
  else result := DefWindowProc(hWnd, uMsg, wParam, lParam);
  end;
end;

procedure initacomctl;
var
  wc: TWndClassEx;
begin
  wc.style := CS_HREDRAW or CS_VREDRAW or CS_GLOBALCLASS;
  wc.cbSize := sizeof(TWNDCLASSEX);
  wc.lpfnWndProc := @HyperlinkWndProc;
  wc.cbClsExtra := 0;
  wc.cbWndExtra := 0;
  wc.hInstance := hInstance;
  wc.hbrBackground := COLOR_WINDOW;
  wc.lpszMenuName := nil;
  wc.lpszClassName := AHyperlink;
  wc.hIcon := 0;
  wc.hIconSm := 0;
  wc.hCursor := 0;
  RegisterClassEx(wc);
end;
Claudio
Tu was du nicht lassen kannst
- http://endasmedia.ch
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: nonVCL vorlage will nicht...

  Alt 1. Jan 2008, 21:46
Man kann bei den Compiler-Optionen angeben, dass man auch Konstanten ändern kann zur Laufzeit. Aber warum hast du dir gearde das komplizierteste Beispiel rausgesucht?

Und eigentlich hättest du auch meine NonVCL-Tutorials finden sollen: http://win32api.michael-puff.de

Dialog- und Fenster-Vorlagen findest du auch bei mir: http://www.michael-puff.de/Developer/Delphi/Demos/ -> Template.zip
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
hedie

Registriert seit: 12. Dez 2005
Ort: Schweiz
1.024 Beiträge
 
Delphi XE6 Starter
 
#9

Re: nonVCL vorlage will nicht...

  Alt 1. Jan 2008, 21:47
Cool Danke...

Weshalb ich mir gerade das dritte ausgesucht habe anstelle der beiden anderen...

Weil die ersten zwei ZIP's nen Virus enthalten meldet zumindest mein Avast

//////Edit

Mit dem einschalten der Option hats geklappt, Danke

Ich werd mir deine Page gleich mal ansehen
Claudio
Tu was du nicht lassen kannst
- http://endasmedia.ch
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#10

Re: nonVCL vorlage will nicht...

  Alt 1. Jan 2008, 21:52
Halte ich für recht unwahrscheinlich. Weder Assarbad noch das DSDT werden Viren verbreiten.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:07 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz