AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Form2 soll auf das ClientSocket von Form1 zugreifen
Thema durchsuchen
Ansicht
Themen-Optionen

Form2 soll auf das ClientSocket von Form1 zugreifen

Ein Thema von sk0r · begonnen am 10. Jun 2007 · letzter Beitrag vom 11. Jun 2007
 
sk0r

Registriert seit: 1. Mai 2007
181 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Form2 soll auf das ClientSocket von Form1 zugreifen

  Alt 10. Jun 2007, 14:04
Hallo, danke erstmal für die Hilfe.

Ich will es dann jetzt erstmal so machen, dass ich das CLientSocket
in einer eigenen Unit habe. Leider kommt da schon der Fehler, denn
wenn ich auf Werte zugreifen will, bekomme ich eine AV.

Zitat:
Im Projekt Project1.exe ist Exception der Klasse EAccessViolation aufgetreten
Meldung: Zugriffverletzung bei Adresse 0045522E im Modul Project1.exe.
Lesen von Adresse 00000004' Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
Meine Unit sieht so aus:

Delphi-Quellcode:
unit dClientSock;

interface

uses ScktComp, Windows, Sysutils;

type
  TCLSocket = class
  tClientSck: TClientSocket;
  procedure ConnectClient(lpHost: String; iPort: Integer);
  procedure Send(lpTextMsg: String);
  function ReturnValue:String;
  procedure SetValue(lpNewValue: String);
  function ReturnConnect:Boolean;
  procedure tClientSckConnecting(Sender: TObject; Socket: TCustomWinSocket);
  procedure tClientSckConnect(Sender: TObject; Socket: TCustomWinSocket);
  procedure tClientSckDisconnect(Sender: TObject; Socket: TCustomWinSocket);
  procedure tClientSckRead(Sender: TObject; Socket: TCustomWinSocket);
  private
    { Privat }
  public
    { Publik }
end;

implementation

var
  gCurrentVal: String;
  bIsConnected: Boolean;
  gCurrentHost: String;

function TCLSocket.ReturnValue:String;
begin
  result := gCurrentVal;
end;

procedure TCLSocket.SetValue(lpNewValue: String);
begin
  gCurrentVal := '';
end;

function TCLSocket.ReturnConnect:Boolean;
begin
  result := bIsConnected;
end;

procedure TCLSocket.tClientSckConnecting(Sender: TObject; Socket: TCustomWinSocket);
begin
  bIsConnected := false;
  gCurrentVal := 'Connecting to ' + gCurrentHost;
end;

procedure TCLSocket.tClientSckConnect(Sender: TObject; Socket: TCustomWinSocket);
begin
  bIsConnected := true;
  gCurrentVal := 'Connected to ' + gCurrentHost;
end;

procedure TCLSocket.tClientSckDisconnect(Sender: TObject; Socket: TCustomWinSocket);
begin
  bIsConnected := false;
  gCurrentVal := 'Connection lost from ' + gCurrentHost;
end;

procedure TCLSocket.tClientSckRead(Sender: TObject; Socket: TCustomWinSocket);
var
  gServerText: String;
begin
  gServerText := Socket.ReceiveText;
end;

procedure TCLSocket.ConnectClient(lpHost: String; iPort: Integer);
begin
  gCurrentHost := lpHost;
  tClientSck.Port := iPort; //Access Violation
  //tClientSck.Host := lpHost;
  //tClientSck.Active := true;
end;

procedure TCLSocket.Send(lpTextMsg: String);
begin
  tClientSck.Socket.SendText(lpTextMsg);
end;

end.
Vielleicht keine schöne Lösung, aber wenn es klappt, reicht es erstmal. Wisst ihr was ich falsch gemacht habe?

Danke schon mal!
  Mit Zitat antworten Zitat
 


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:39 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