Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Kleine Non-VCL Fragen (https://www.delphipraxis.net/82700-kleine-non-vcl-fragen.html)

Neutral General 18. Dez 2006 14:41


Kleine Non-VCL Fragen
 
Hi,

Seit heute bin ich mir Luckies Non-VCL Tutorial am durchlesen und dabei sind mir einige kleine Fragen gekommen. Ich hoffe das macht jetzt mal nichts aus weil ich fands unnötig für sowas immer en extra-Thread aufzumachen...

Wie wandel ich Zahlen in Zeichenketten (String oder PChar) um ohne IntToStr und andersrum? Weil wenn ich die Sysutils.pas einbinde is meine Exe erst mal 300KB größer... Und das nur wegen IntToStr/StrToInt ... :wall:

Man hat ja immer nur Handles von den ganzen Controls und man kann die Controls ja auch nicht wie in der VCL mit Control.Free freigeben... Muss ich da CloseHandle oder so benutzen oder geht das automatisch?

Das wars soweit glaub ich...

Gruß
Neutral General

Daniel G 18. Dez 2006 14:50

Re: Kleine Non-VCL Fragen
 
Zitat:

Zitat von Neutral General
Weil wenn ich die Sysutils.pas einbinde is meine Exe erst mal 300KB größer... Und das nur wegen IntToStr/StrToInt ... :wall:

Guck dir doch mal die Implementation in der sysutils.pas an. :mrgreen:

(Sprich': Einfach rauskopieren. :wink: )

Luckie 18. Dez 2006 15:02

Re: Kleine Non-VCL Fragen
 
Siehe dazu auch meine MpuTools.pas Unit auf meiner Webseite.

Was willst du denn freigeben?

ErazerZ 18. Dez 2006 15:04

Re: Kleine Non-VCL Fragen
 
Delphi-Quellcode:
function IntToStr(i: Integer): String;
begin
  Str(i, Result);
end;

function StrToInt(S: String): Integer;
begin
  Val(S, Result, Result);
end;

function FloatToStr(E: Extended): String;
begin
  Str(E:2:2, Result);
  Result := ReplaceChar(Result, '.', ',');
end;

function StrToFloat(S: String): Extended;
var
  I: Integer;
begin
  Val(S, Result, I);
end;

function ReplaceChar(S: String; Old, New: Char): String;
var
  i, j: Integer;
begin
  for j := 0 to Length(S) do
  begin
    i := Pos(Old, S);
    if i > 0 then
      S[i] := New;
  end;
  Result := S;
end;

Neutral General 18. Dez 2006 15:07

Re: Kleine Non-VCL Fragen
 
Zitat:

Zitat von Luckie
Siehe dazu auch meine MpuTools.pas Unit auf meiner Webseite.

Was willst du denn freigeben?

Naja ich meine meine wenn man in der VCL en Button hat/erstellt muss der auch wieder freigegeben werden... Nunja.. Button-Klassen wie TButton, die man freigeben kann hat man ja nicht.. sondern nur Handles. Da hab ich mich halt gefragt ob man die auch irgendwie wieder freigeben muss...

Ach ja: Thx an alle Antworten bisher.. bringt mich en Stück weiter ;) :)

Gruß
Neutral General

BBG 18. Dez 2006 19:01

Re: Kleine Non-VCL Fragen
 
Du meinst also die Handles für deine ganzen Cotrols?
Auf Anhieb würde ich sagen, die gibt Windows für dich frei, wenn das Programm beendet wird. :-D

Luckie 18. Dez 2006 22:27

Re: Kleine Non-VCL Fragen
 
Fensterklassen unter Windows sind keine Klassen im OOP Sinne und müssen bzw. können deshalb auch nicht "freigegeben" werden.

Neutral General 4. Okt 2007 18:30

Re: Kleine Non-VCL Fragen
 
Hi,

Ich greife das ganze nochmal auf. Ich denke mal die Frage passt hier rein:
Wenn ich jetzt während der Laufzeit ein Control entfernen will, wie mach ich das dann?

PS: Ich "lösche" Objecte im Moment mit DeleteObject(ControlHandle). Kann man das machen? Also AVs oder so bekomme ich jedenfalls nicht.

Gruß
Neutral General

Zacherl 4. Okt 2007 19:20

Re: Kleine Non-VCL Fragen
 
Müsste nicht CloseHandle ausreichen?

Luckie 4. Okt 2007 19:22

Re: Kleine Non-VCL Fragen
 
Steuerelement sind ja auch nur Fenster, deswegen würde ich es eher mit MSDN-Library durchsuchenDestroyWindow probieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:59 Uhr.
Seite 1 von 2  1 2      

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