Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi XPMan erst zur Laufzeit anwenden? (https://www.delphipraxis.net/16521-xpman-erst-zur-laufzeit-anwenden.html)

QuickAndDirty 18. Feb 2004 13:41


XPMan erst zur Laufzeit anwenden?
 
Hallo,
Ich möchte den XPStyle Ein un abschaltbar,
z.b. über eintrag in ini-Datei.
Dachte das das vielleicht über ein Dynamisches
Linken einer Resourcen DLL mit dem Manifest
gehen könnte erhalte aber zur lauf zeit eine
AccessViolation,
Ist allerdings auch mein erstes Dll :oops:
Wie müstte so eine DLL Aussehen
und Wie soll ich sie dann im bedarfs fall
zur laufzeit einbinden? :?:

Hätte vielleicht jemand ein Code Beispiel? :?

Ratte 18. Feb 2004 18:34

Re: XPMan erst zur Laufzeit anwenden?
 
Hi QuickAndDirty,

vielleicht kannst du mit diesem Tutorial etwas anfangen. ( http://www.delphi-source.de/tutorials/komplaufzeit/ )

Ratte

QuickAndDirty 19. Feb 2004 08:40

Re: XPMan erst zur Laufzeit anwenden?
 
Sorry,
das Tutorial sagt mir nichts wirklich neues
und hat auch nichts mit dem Thema zu tun.


Ich binde das DLL Project2.dll so ein
Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    UpDown1: TUpDown;
    procedure FormCreate(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

Function GetName:string; external 'Project2.dll';

var
  Form1: TForm1;
  bar:Tscrollbar;


implementation
{$R *.dfm}
//{$R ADCDesign.res}
procedure TForm1.FormCreate(Sender: TObject);
begin
  bar := tscrollbar.Create(self);
  bar.Parent := self;
//  if LoadNewResourceModule(WindowsXP) <> 0 then
//    ReinitializeForms;

end;

procedure TForm1.FormShow(Sender: TObject);
begin
  Form2.show;
  caption := Getname;
end;

end]
So sieht die DLL Aus die ich mit dem XPMan einlinke
Ich glaube sie wird erst geladen wenn man,
eine ihrer Funktionen zum ersten mal benutzt.
Leider erhalte ich dann(an der stelle Getname) eine AccessViolation
Delphi-Quellcode:
library Project2;

uses
  SysUtils,
  Classes,
  XPMan;
{$R *.res}
Function GetName:String;stdcall;
begin
  result := 'Project2';
end;

exports
  Getname;

begin
end.
:wall:

Drakon 19. Feb 2004 08:59

Re: XPMan erst zur Laufzeit anwenden?
 
Hallo,

du solltest selbst nach der Lösung suchen und nicht das andere für dich die Arbeit machen. So und nun fang an zu arbeiten.
:wall:

neolithos 19. Feb 2004 09:20

Re: XPMan erst zur Laufzeit anwenden?
 
Zitat:

Zitat von QuickAndDirty
Delphi-Quellcode:
library Project2;

uses
  SysUtils,
  Classes,
  XPMan;

{$R *.res}

Function GetName:ShortString;stdcall;
// Zeigertypen sind nicht erlaubt bzw. nur unter besonderen Umständen
//
// alternativ
// function GetName(apName : PChar; adwLen : Cardinal) : Cardinal;
// const
//   csName = 'Project2';
// begin
//   Result := Min(Length(csName, adwLen));
//   StrLCopy(apName, csName, Result);
// end;
begin
  result := 'Project2';
end;

exports
  Getname;

begin
end.

Ein Manifest in der Dll muss anders aufgebaut sein, wie das einer EXE. Wie genau weis ich nicht.

Schau dir mal die Themes-Unit an. Vielleicht siehst du da einen anderen weg!
Da ich die Themes nicht ausstehen kann habe ich bisher wenig gemacht!
Aber eins noch die Themes ein und ausschalten kann man auch über Windows-Anzeige-Eigenschaften. Warum soll man sowas doppelt einstellen?

Weitere Info:

OH: Themen, Windows XP

QuickAndDirty 19. Feb 2004 12:05

Re: XPMan erst zur Laufzeit anwenden?
 
Danke Neolithos
werd ich gleich mal propieren. :coder:

mfg
QuickAndDirty

PS.: @Drakon-> Den flame werd ich nicht aufnehmen.
Bedenke auch du wirst irgendwann einmal Hilfe
brauchen, wilst sicher nicht das dich so
ein dummer ANONYMUS herausfordert! :warn:


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:26 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