Autor Beitrag
ex4ct
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 67


Delphi 7
BeitragVerfasst: Fr 07.07.06 05:00 
Hallo,
Ich wollte mal von dem ClientSocket and ServerSocket den Titel des aktiven Fensters schicken,aber dies nur bei änderung des Titels.

Konnte es einfach nicht rauskriegen wie das funktionieren soll.
Habe es so vesucht (in ein Timer):

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
    
 INC(x) 
 
 fenstername[x]:=Title;
 dateiname[x]:=FileName;

 if fenstername[x] <> fenstername[x-1then begin
 clientsocket1.Socket.SendText('fenstername'+fenstername[x]); end;

 if dateiname[x] <> dateiname[x-1then begin
 clientsocket1.Socket.SendText('dateiname'+dateiname[x]); end;


"x" ist als array [1..99999] deklariert worden.
Hatte es auch mal ohne "if dateiname[x] <> dateiname[x-1] then" versucht so hat es geklappt aber der Server bekommt dann natürlich mehrfach den gleichen Fenstertitel.

Wenn ich die exe compiliere und starte bekomme ich als Fehlermeldung nacheinander dieses:

Zugriffsverletzung bei Adresse 00403F4A in Modul Project.exe. Schreiben von Adresse 0270AA1(ändert sich)
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Fr 07.07.06 09:43 
Moin!

Mit dem Code-Fragment kann man nix anfangen, nichmal nach einem Fehler suchen... :nixweiss:

Zu deinem Problem: Du mußt dir in einer Variablen den letzten gesendeten Fenstertitel (Dateiname, was auch immer, jeweils eine Variable jedenfalls) merken. Dann vergleichst du (meinetwegen auch in einem Timerereignis; ist aber eher nicht so schlau; auf der anderen Seite hast du zu wenig Infos gegeben, was du da eigentlich machen willst, also kann man da nur schlecht helfen), ob sich der aktuelle Titel vom zuletzt gesendeten Unterscheidet. Ist das der Fall, sendest du erneut und merkst dir das in der Variablen für die nächsten Vergleiche. Fazit: das Array ist eigentlich überflüssig (es sei denn, du hast dein Problem nicht brauchbar geschildert).

Beispiel:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
var
  TitelAlt: String;

// FormCreate
TitelAlt := ''// initialisieren

// Ereignis, bei dem geprüft werden soll
if (Titel <> TitelAlt) then begin
  SendeTitel(Titel); // Daten auf den Weg bringen
  TitelAlt := Titel; // merken für nächsten Vergleich
end;


Ansonsten würde ich dir bei dem Code mal ein Protokoll ans Herz legen wollen. ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.