Autor Beitrag
sintec
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 133



BeitragVerfasst: Mi 23.05.07 11:17 
Hallo an alle,

Ich habe ein Problem mit der Gauge und zwar: bekomme ich ständig beim kompilieren die Meldung " Feld Form1.Gauge besitzt keine entsprechende Komponente. Soll die Deklaration entfernt werden?"

Wenn man "ja" anklickt löscht er die Zeile "Gauge: TGauge;" und wenn man auf "nein" klickt, kompiliert er das Programm. Aber wenn man das Programm jetzt benutzen will, gibts den Fehler "Zugriffsverletzung bei Adresse 00443AE7 in Modul 'Form1.exe'. Lesen von Adresse 00000057." und zwar bei der ersten Zeile wo was mit Gauge steht (in meinem Fall "gauge.MaxValue := max;").

Kann mir einer helfen?
ZeitGeist87
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1593
Erhaltene Danke: 20

Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
BeitragVerfasst: Mi 23.05.07 11:25 
Entfern die Gauge vom Formular und gegebenenfalls auch die Deklaration oben und setz anschließend wieder ein auf die Form, und nenn sie wie die Alte.

LG
Stefan

_________________
Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
sintec Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 133



BeitragVerfasst: Mi 23.05.07 11:33 
user profile iconZeitGeist87 hat folgendes geschrieben:
Entfern die Gauge vom Formular und gegebenenfalls auch die Deklaration oben und setz anschließend wieder ein auf die Form, und nenn sie wie die Alte.

LG
Stefan


Was meinst du mit auf die Form setzen?
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 23.05.07 11:55 
user profile iconsintec hat folgendes geschrieben:
Was meinst du mit auf die Form setzen?

Die Komponente in der Komponetenleiste auswählen mit der Maus. Linke Maustaste gedrückt halten und ganz langsam die Maus über das Formular ziehen. Befindet sich der Mauszeiger über dem Formular, linke Maustaste loslassen. Diesen Vorgang bezeichnet man unteranderem als "auf die Form setzen". :?
sintec Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 133



BeitragVerfasst: Mi 23.05.07 12:07 
user profile iconLuckie hat folgendes geschrieben:
user profile iconsintec hat folgendes geschrieben:
Was meinst du mit auf die Form setzen?

Die Komponente in der Komponetenleiste auswählen mit der Maus. Linke Maustaste gedrückt halten und ganz langsam die Maus über das Formular ziehen. Befindet sich der Mauszeiger über dem Formular, linke Maustaste loslassen. Diesen Vorgang bezeichnet man unteranderem als "auf die Form setzen". :?


ich habe aber die Komponente nicht in der Komponetenleiste, also kann ich es auch nicht auf die form ziehen. Das wird irgendwie nur als Gauge.pas geöffnet mit reinem Quellcode.
Smikey
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 45

Win XP, kUbuntu 6.06
Delphi 2005 Architect
BeitragVerfasst: Mi 23.05.07 12:10 
F12

mfg smikey

_________________
Bloß weil du nicht paranoid bist, heißt das nicht, dass sie nicht hinter dir her sind.
Blackheart666
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: Mi 23.05.07 12:10 
Was hast Du denn für eine Delphiversion, TGauge unter Beispiele.

_________________
Blackheart666
Der Irrsinn ist bei Einzelnen etwas Seltenes, - aber bei Gruppen, Parteien, Völkern, Zeiten die Regel. (Friedrich Nietzsche)
sintec Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 133



BeitragVerfasst: Mi 23.05.07 12:24 
Ich benutze den TurboExplorer für Delphi.

unter C:\Programme\Borland\BDS\4.0\source\Win32\Samples\Source habe ich ja die Gauge.pas die kann ich auch öffnen, aber dann bekomme ich nur reines Quellcode.
Als Komponente in der Komponentenliste gibts die dann auch nicht.
Stefan.Buchholtz
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 612

WIN 2000, WIN XP, Mac OS X
D7 Enterprise, XCode, Eclipse, Ruby On Rails
BeitragVerfasst: Mi 23.05.07 12:31 
bei den kostenlosen Turbo-Versionen kann man Komponenten nicht in die IDE installieren, um sie im Formulardesigner zu verwenden.
Deswegen kannst du die Komponente auch nicht zur Designzeit auf dem Formular haben.

Dir wird nichts anderes übrigbleiben als die Komponente aus dem Formular entfernen zu lassen und sie dann zur Laufzeit, z.B. im FormCreate-Event selbst zu erzeugen und die Properties zuzuweisen.

Stefan

_________________
Ein Computer ohne Windows ist wie eine Schokoladentorte ohne Senf.
Blackheart666
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: Mi 23.05.07 12:34 
Dann versuch mal die Komponente zu erzeugen, weiss nicht genau ob das klappt.
Bei Uses Gauges
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
var
  MyGauge:TGauge;
begin
  MyGauge:=TGauge.Create(Self);
  MyGauge.Parent:=Form1;
  MyGauge.Top:=100;
  MyGauge.Left:=100;
end;

_________________
Blackheart666
Der Irrsinn ist bei Einzelnen etwas Seltenes, - aber bei Gruppen, Parteien, Völkern, Zeiten die Regel. (Friedrich Nietzsche)
ZeitGeist87
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1593
Erhaltene Danke: 20

Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
BeitragVerfasst: Mi 23.05.07 12:37 
user profile iconBlackheart666 hat folgendes geschrieben:
Dann versuch mal die Komponente zu erzeugen, weiss nicht genau ob das klappt.
Bei Uses Gauges
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
var
  MyGauge:TGauge;
begin
  MyGauge:=TGauge.Create(Self);
  MyGauge.Parent:=Form1;
  MyGauge.Top:=100;
  MyGauge.Left:=100;

//Namen nicht vergessen
MyGauge.Name:= 'Gaugexyz';

end;


Nimm doch die Progressbar her :)

LG
Stefan

_________________
Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
Stefan.Buchholtz
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 612

WIN 2000, WIN XP, Mac OS X
D7 Enterprise, XCode, Eclipse, Ruby On Rails
BeitragVerfasst: Mi 23.05.07 12:40 
Ein Name ist bei zur Laufzeit erzeugten Komponenten nicht wirklich nötig.

Stefan

_________________
Ein Computer ohne Windows ist wie eine Schokoladentorte ohne Senf.
ZeitGeist87
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1593
Erhaltene Danke: 20

Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
BeitragVerfasst: Mi 23.05.07 12:45 
user profile iconStefan.Buchholtz hat folgendes geschrieben:
Ein Name ist bei zur Laufzeit erzeugten Komponenten nicht wirklich nötig.

Stefan



hmm und wenn er mehrere hat und sie ansprechen will?
Ok er kanns über ne globale Variable lösen, aber ich finds einfach besser, den Komponenten eindeutige Namen zu geben..

_________________
Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
Stefan.Buchholtz
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 612

WIN 2000, WIN XP, Mac OS X
D7 Enterprise, XCode, Eclipse, Ruby On Rails
BeitragVerfasst: Mi 23.05.07 13:10 
user profile iconZeitGeist87 hat folgendes geschrieben:
hmm und wenn er mehrere hat und sie ansprechen will?
Ok er kanns über ne globale Variable lösen, aber ich finds einfach besser, den Komponenten eindeutige Namen zu geben..


Ich würde dann einfach in der Formularklasse Felder für die Komponenten deklarieren - natürlich keine globalen Variablen, die sind bäh :wink:

Also so:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
type
  TForm1 = class(TFrom)
    ....
  private
    Gauge1 : TGauge; // in einem realen Programm natürlich vernünftige Namen verwenden
    Gauge2 : TGauge;
    ...
  public
    ...
  end;

...

procedure TForm1.FormCreate(Sender: TObject);
begin
  Gauge1 := TGauge.Create(self);
  Gauge1.Parent := self;
  Gauge1.Top := 100;
  Gauge1.Left := 100;
  ...

  Gauge2 := TGauge.Create(self);
  Gauge2.Parent := self;
  Gauge2.Top := 120;
  Gauge2.Left := 100;
  ...
end;


Dann kann man die weiter wie im Formulardesigner erzeugte Komponenten verwenden.

Der Formulardesigner erzeugt das Feld nur automatisch und gibt ihm den gleichen Namen wie die Komponente, damit das Streaming-System beim Erzeugen des Formulars die Komponente dem Feld im Formularobjekt zuweisen kann. Das passiert hier zu Fuss im FormCreate, der Name der Komponente selbst wird also nie verwendet und ist überflüssig.

Stefan

_________________
Ein Computer ohne Windows ist wie eine Schokoladentorte ohne Senf.
sintec Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 133



BeitragVerfasst: Mi 23.05.07 13:36 
Das ist Super. Funktioniert wunderbar.

Vielen Dank

Aber das Problem mit der Meldung " Feld Form1.Gauge besitzt keine entsprechende Komponente. Soll die Deklaration entfernt werden?" habe ich immer noch.
ZeitGeist87
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1593
Erhaltene Danke: 20

Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
BeitragVerfasst: Mi 23.05.07 13:47 
Quelltext posten!

ZackZack :)

_________________
Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
sintec Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 133



BeitragVerfasst: Mi 23.05.07 14:06 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
unit EWFileSave;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, StdCtrls, shlobj, ComCtrls, AppEvnts, ExtCtrls, IniFiles,
  Ergebnis, Meldung, Gauges;

type
  TShutdownWindowsType = (swtShutdown, swtShutdownPowerOff, swtRestart, swtLogoff);
  TFileSave = class(TForm)
    Gauge: TGauge;
...
procedure TFileSave.FormCreate(Sender: TObject);
begin  
  Gauge := TGauge.Create(self);
  Gauge.Parent := self;
  Gauge.Top := 370;
  Gauge.Left := 8;
  Gauge.Width := 419;
  Gauge.Height := 20;
  Gauge.Visible := false;
end;


Ich hoffe das reicht, denn der Code ist über 750 Zeilen lang.

Wenn ich bei der Meldung auf "Ja" klicke, löscht er die 13. Zeile.
ZeitGeist87
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1593
Erhaltene Danke: 20

Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
BeitragVerfasst: Mi 23.05.07 14:16 
user profile iconsintec hat folgendes geschrieben:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
unit EWFileSave;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, StdCtrls, shlobj, ComCtrls, AppEvnts, ExtCtrls, IniFiles,
  Ergebnis, Meldung, Gauges;

type
  TShutdownWindowsType = (swtShutdown, swtShutdownPowerOff, swtRestart, swtLogoff);
  TFileSave = class(TForm)
    Gauge: TGauge; //Raus da
   private
    Gauge: TGauge; //und da rein
   public
    Gauge: TGauge; //oder da rein
   end;
...
procedure TFileSave.FormCreate(Sender: TObject);
begin  
  Gauge := TGauge.Create(self);
  Gauge.Parent := self;
  Gauge.Top := 370;
  Gauge.Left := 8;
  Gauge.Width := 419;
  Gauge.Height := 20;
  Gauge.Visible := false;
end;


Ich hoffe das reicht, denn der Code ist über 750 Zeilen lang.

Wenn ich bei der Meldung auf "Ja" klicke, löscht er die 13. Zeile.

_________________
Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
sintec Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 133



BeitragVerfasst: Mi 23.05.07 14:22 
gg :lol: man bin ich Blöd :lol:

Vielen Dank
sintec Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 133



BeitragVerfasst: Fr 25.05.07 13:39 
Hallo nochmal,

ich habe ein kleines Problem mit der Gauge und zwar: wollte ich die Gauge auch in einem anderem Tool benutzen und bei dem Programm war früher ein ProgressBar auf einem Frame. Das Frame hat aber kein Ereignis namens FrameCreate oder FormCreate also kann ich es nicht zur Laufzeit erzeugen.

wie kann ich dann sonst machen?