![]() |
SizeOf(memory) Problem(chen)
hey
also was zum teufel is hierdran falsch ... angeblich is memory nich deklariert
Delphi-Quellcode:
und hier der zusammenhang mit allen drum und dran (hat nich mit meimen keygen projekt zu tun)
procedure TForm1.Button1Click(Sender: TObject);
begin Label5.Caption := IntToStr(SizeOf(memory)); end;
Delphi-Quellcode:
oben steht auch SizeOf(memory) und da is alles in ordnung ... hier unten in der letzten przedur sagt der mir ne mach ich net ?? was is daran falsch ??
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, StdCtrls, ExtCtrls, ShellApi, Menus; const WM_TRAYEVENT = WM_USER + 1337; type TForm1 = class(TForm) ProgressBar1: TProgressBar; Button2: TButton; Timer1: TTimer; Label1: TLabel; Label2: TLabel; Label3: TLabel; PopupMenu1: TPopupMenu; Clos1: TMenuItem; Label4: TLabel; Label5: TLabel; Button1: TButton; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure Clos1Click(Sender: TObject); private { Private-Deklarationen } procedure TrayEvent(var msg : TMessage);message WM_TRAYEVENT; public end; var Form1: TForm1; ti: tnotifyicondata; implementation {$R *.dfm} procedure TForm1.Timer1Timer(Sender: TObject); var x, y : real; memory: TMemoryStatus; Auslastung: integer; begin memory.dwLength := SizeOf(memory); GlobalMemoryStatus(memory); x := memory.dwTotalPhys - memory.dwAvailPhys; y := memory.dwTotalPhys; Auslastung := round(((x/y)*100)); ProgressBar1.Position := Auslastung; Label3.Caption := IntToStr(Auslastung); end; procedure TForm1.Button2Click(Sender: TObject); begin Close; end; procedure TForm1.FormCreate(Sender: TObject); begin with ti do begin cbSize := SizeOf(ti); Wnd := Handle; uID := 100; uFlags := NIF_MESSAGE + NIF_ICON + NIF_TIP; uCallBackMessage := WM_TRAYEVENT; hIcon := Application.Icon.Handle; szTip := 'RAM Auslastung'; end; Shell_NotifyIcon(NIM_ADD,@ti); end; procedure TForm1.FormDestroy(Sender: TObject); begin Shell_NotifyIcon(NIM_DELETE,@ti); end; procedure TForm1.TrayEvent(var msg: TMessage); var pt : TPoint; begin case msg.lparamlo of WM_RBUTTONDOWN : begin GetCursorPos(pt); SetForeGroundWindow(handle); PopupMenu1.popup(pt.x,pt.y); end; end; end; procedure TForm1.Clos1Click(Sender: TObject); begin Close; end; procedure TForm1.Button1Click(Sender: TObject); begin Label5.Caption := IntToStr(SizeOf(memory)); end; end. MfG. PBiggi |
Re: SizeOf(memory) Problem(chen)
Logisch, woher soll ers denn auch kennen ... in der oberen Prozedur ist memory ja dekllriert, aber unten ja nicht.
:arrow: globale variable deklarieren :arrow: im private Teil der Form :arrow: in der prozedur deklarieren :zwinker: |
Re: SizeOf(memory) Problem(chen)
Das Problem ist, dass Memory in deinem Fall eine lokale Variable ist, die nur in der Funktion, in der sie definiert wurde zur Verfügung steht. In der Funktion, in der du sie brauchst, ist sie nicht definiert und steht deswegen auch nicht zur Verfügung. Du solltest dir ein bisschen Literatur zu OOP durchlesen, das sind Standartsachen, die man braucht. Eine Möglichkeit wäre es, memory als globale Variable zu definieren, entweder direkt in der Klasse des Formulars (Da am besten im private-Teil), oder global in der Unit, also im interface-Teil der Unit.
Gruß |
Re: SizeOf(memory) Problem(chen)
Oder kurz: memory ist eine lokale Variable deines Timer Ereignisses und somit nur dort sichtbar und gültig.
|
Re: SizeOf(memory) Problem(chen)
jo danke für eure schnellen antworten ... wo hab ich heute wieder meinen kopf .... :roll: hätte mir auffallen müssen
MfG. PBiggi |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz