AGB  ·  Datenschutz  ·  Impressum  







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

SizeOf(memory) Problem(chen)

Ein Thema von Clane · begonnen am 28. Mär 2005 · letzter Beitrag vom 28. Mär 2005
Antwort Antwort
Clane
(Gast)

n/a Beiträge
 
#1

SizeOf(memory) Problem(chen)

  Alt 28. Mär 2005, 23:22
hey

also was zum teufel is hierdran falsch ... angeblich is memory nich deklariert

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
Label5.Caption := IntToStr(SizeOf(memory));
end;
und hier der zusammenhang mit allen drum und dran (hat nich mit meimen keygen projekt zu tun)

Delphi-Quellcode:
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.
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 ??

MfG. PBiggi
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#2

Re: SizeOf(memory) Problem(chen)

  Alt 28. Mär 2005, 23:24
Logisch, woher soll ers denn auch kennen ... in der oberen Prozedur ist memory ja dekllriert, aber unten ja nicht.

globale variable deklarieren

im private Teil der Form

in der prozedur deklarieren

  Mit Zitat antworten Zitat
moritz

Registriert seit: 18. Apr 2003
1.037 Beiträge
 
#3

Re: SizeOf(memory) Problem(chen)

  Alt 28. Mär 2005, 23:25
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ß
"Optimistisch ist diejenige Weltanschauung, die das Sein höher als das Nichts stellt und so die Welt und das Leben als etwas an sich Wertvolles bejaht."
Albert Schweitzer
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: SizeOf(memory) Problem(chen)

  Alt 28. Mär 2005, 23:26
Oder kurz: memory ist eine lokale Variable deines Timer Ereignisses und somit nur dort sichtbar und gültig.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Clane
(Gast)

n/a Beiträge
 
#5

Re: SizeOf(memory) Problem(chen)

  Alt 28. Mär 2005, 23:32
jo danke für eure schnellen antworten ... wo hab ich heute wieder meinen kopf .... hätte mir auffallen müssen

MfG. PBiggi
  Mit Zitat antworten Zitat
Antwort Antwort


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 21:44 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