AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Buttonabhängiges Schließen des Programms
Thema durchsuchen
Ansicht
Themen-Optionen

Buttonabhängiges Schließen des Programms

Ein Thema von hans ditter · begonnen am 20. Okt 2010 · letzter Beitrag vom 29. Okt 2010
Antwort Antwort
Seite 3 von 4     123 4      
hans ditter

Registriert seit: 25. Jun 2010
Ort: Niedersachsen
263 Beiträge
 
Turbo Delphi für Win32
 
#21

AW: Buttonabhängiges Schließen des Programms

  Alt 23. Okt 2010, 15:46
Also, ich hab das Probelm mit den Fehlern wieder hinbekommen. Aus irgendeinem kühlen Grund, bestand die Zuweisung der Ereignisroutine zu dem ClientSocket nicht mehr. Konnte ich wieder durch Dplklicken im OI herstellen. Das funktioniert wieder! Tut mir nochmal Leid für meinen Wutanfall...

@DeddyH: Vielleicht könntest du trotzdem mal posten, wie genau man das jetzt macht, ohne das Programm neu zu schreiben.

Vielen Dank!
hans ditter
RudiRüsselSeineSocketKomponente - SirRufo (--> Chat mit PM)

Delphi Programming is the best one!
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#22

AW: Buttonabhängiges Schließen des Programms

  Alt 23. Okt 2010, 15:57
Bei Google suchenTortoiseSVN Bei Google suchenTortoiseHg
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#23

AW: Buttonabhängiges Schließen des Programms

  Alt 24. Okt 2010, 12:58
Und zum Datenmodul: das kann ich auch nicht besser beschreiben als die Hilfe selbst: http://docwiki.embarcadero.com/VCL/d...es.TDataModule
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
hans ditter

Registriert seit: 25. Jun 2010
Ort: Niedersachsen
263 Beiträge
 
Turbo Delphi für Win32
 
#24

AW: Buttonabhängiges Schließen des Programms

  Alt 25. Okt 2010, 18:56
Wow, cool! Das hat funktioniert! Danke für den Link! Sollte häufiger mal auf diese Seite schauen...
Mir ist aber aufgefallen, dass man immer
Code:
Unit3.DataModule3.{...}
schreiben muss, um auf Komponenten zugreifen zu können. Geht das nicht einfacher? Das man irgendwie definieren kann, dass var Unit3.DataModule3: DataModule; ist?

Das wär noch ganz nett, aber erstmal vielen Dank dafür soweit!

hans ditter
RudiRüsselSeineSocketKomponente - SirRufo (--> Chat mit PM)

Delphi Programming is the best one!
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#25

AW: Buttonabhängiges Schließen des Programms

  Alt 25. Okt 2010, 19:23
Es steht Dir doch frei, eine entsprechende Variable zu deklarieren und zu belegen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
hans ditter

Registriert seit: 25. Jun 2010
Ort: Niedersachsen
263 Beiträge
 
Turbo Delphi für Win32
 
#26

AW: Buttonabhängiges Schließen des Programms

  Alt 26. Okt 2010, 20:48
Ja, das dachte ich auch. Ich poste mal den Anfang vom Quellcode...
Delphi-Quellcode:
unit Unit1;

interface

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ScktComp, StdCtrls, ComCtrls, StrUtils, superobject, ExtCtrls;

const
  MY_PORT = 30000; // an diesem Port wartet der Server auf Clients

type
  TForm1 = class(TForm)
    ServerAdress: TEdit;
    Online: TCheckBox;
    Input: TEdit;
    BtnSend: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    log: TRichEdit;
    lstUsers: TListBox;
    edtOwnUserNick: TEdit;
    Shape1: TShape;
    Shape2: TShape;
    Shape3: TShape;
    combContentSize: TComboBox;
    combContentColor: TComboBox;
    combContentStyle: TComboBox;
    ClientSocket: TClientSocket;
    procedure FormCreate(Sender: TObject);
    procedure OnlineClick(Sender: TObject);
    procedure BtnSendClick(Sender: TObject);
    procedure ClientSocketRead(Sender: TObject; Socket: TCustomWinSocket);
    procedure FormDestroy(Sender: TObject);
    procedure InputKeyPress(Sender: TObject; var Key: Char);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

uses Unit3;

var
  DataModule: Unit3.TDataModule3;
Während der Entwicklungszeit geht das auch alles ohne Fehler. Der Fehler tritt aber auf, wenn
DataModule.ClientSocket.Port:=MY_PORT; aufgerufen wird.
Dann sagt er, dass eine EAccessViolation aufgetreten ist. Wie hab ich das dann denn zu verstehen?

lg, hans ditter
RudiRüsselSeineSocketKomponente - SirRufo (--> Chat mit PM)

Delphi Programming is the best one!
  Mit Zitat antworten Zitat
hans ditter

Registriert seit: 25. Jun 2010
Ort: Niedersachsen
263 Beiträge
 
Turbo Delphi für Win32
 
#27

AW: Buttonabhängiges Schließen des Programms

  Alt 26. Okt 2010, 21:19
Ok, Problem hat sich gerade erledigt. Es reicht wenn ich DataModule3.{...} schreibe. Das reicht mir, ist kurz genug...
Zur Funktion hab ich noch eine Frage. Ich möchte ja ein Anmeldefenster anzeigen lassen, in dem man Nick und Passwort eingibt. Wenn diese vom Server authentifiziert werden, dann soll ja die Form1 aufgerufen werden. Vom Prinzip kein Problem, aber wenn der Client sich mit dem Server connected hat, wird (im Moment noch) im Verlaufsfenster (des noch nicht erzeugten Form1) einige Informationen angezeigt. Da kommte natürlich eine Fehlermeldung, dass ein AccessFehler aufgetreten ist.
Doch wie umgehe ich das? Ich dachte schon einen zweiten Clienten dynamisch erzeugen, der nur dafür da ist, die Authentifizierung vorzunehmen, find ich persöhnlich aber nicht so schick.
Habt ihr noch andere Ideen? (Habt ihr überhaupt mein Problem verstanden, manchmal umschreibe ich das wirklich etwas wirr...
RudiRüsselSeineSocketKomponente - SirRufo (--> Chat mit PM)

Delphi Programming is the best one!
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#28

AW: Buttonabhängiges Schließen des Programms

  Alt 27. Okt 2010, 09:10
Entweder Form1 vorher erzeugen oder die Daten zwischenspeichern (beispielsweise in einer eigenen Klasse oder einem Record) und in Form1 dann wieder auslesen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#29

AW: Buttonabhängiges Schließen des Programms

  Alt 27. Okt 2010, 10:21
Das Problem liegt tiefer im Fehlen von Grundlagen.

Ein AccessFehler kommt immer dann, wenn man auf eine Struktur (Klasse) zugreifen möchte, wo es aber keine gültige Instanz gibt.

Delphi-Quellcode:
type
  TFoo = class
    Data : string;
  end;

var
  foo : TFoo;
begin
  foo.Data := 'Hallo'; // <- AccessFehler

  foo := TFoo.Create;
  foo.Data := 'Hallo'; // Alles ok
  foo.Free;

  foo.Data := 'Hallo'; // <- AccessFehler

  foo := TFoo.Create;
  foo.Data := 'Hallo'; // Alles ok

  foo := nil; // <- Upps, ein Speicherleck erzeugt

  foo.Data := 'Hallo'; // <- AccessFehler
end;
Mit einem Beispiel aus dem Leben gegriffen, könnte man es so erklären:
Zitat:
Du planst in deinem Zimmer ein Regal aufzustellen. Das Regal soll rot, 1.5m hoch und 1m breit werden.

Wenn du jetzt in dieses Regal ein Buch stellst, fällt das auf den Boden (ein Absturz), weil du hast das Regal noch nicht gekauft (Instanz)
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (27. Okt 2010 um 10:24 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#30

AW: Buttonabhängiges Schließen des Programms

  Alt 27. Okt 2010, 10:24
Wieso, die Ursache hat er doch schon selbst erkannt.
Zitat:
Vom Prinzip kein Problem, aber wenn der Client sich mit dem Server connected hat, wird (im Moment noch) im Verlaufsfenster (des noch nicht erzeugten Form1) einige Informationen angezeigt. Da kommte natürlich eine Fehlermeldung, dass ein AccessFehler aufgetreten ist.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


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 17:30 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