AGB  ·  Datenschutz  ·  Impressum  







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

Problem mit FastCode und CopyMemory

Ein Thema von lbccaleb · begonnen am 10. Mär 2013 · letzter Beitrag vom 11. Mär 2013
Antwort Antwort
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#1

AW: Problem mit FastCode und CopyMemory

  Alt 10. Mär 2013, 20:34
Aus einem mir absolut nicht bekannten Grund, funktioniert es jetzt auf einmal.
Hat sich also erledigt
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.222 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Problem mit FastCode und CopyMemory

  Alt 10. Mär 2013, 21:48
Delphi-Quellcode:
dwSize := Length(szText) + 1;
    if dwSize <> 0 then begin;
Mmmmh. Ob das sinnvoll? Leerer Text liefert 1 zurück. Ich denke der Code sollte nur kopieren wenn wirklich ein Text vorliegt.

Und ab D2009 krachts eh da Char = 2 Byte ist.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Problem mit FastCode und CopyMemory

  Alt 10. Mär 2013, 21:57
Verwechselst Du da nicht sizeof und length ?
Soweit ich weiß, funktioniert length immer wie gewünscht.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  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
 
#4

AW: Problem mit FastCode und CopyMemory

  Alt 11. Mär 2013, 06:30
Verwechselst Du da nicht sizeof und length ?
Soweit ich weiß, funktioniert length immer wie gewünscht.

Gruß
K-H
Length( 'Text' ) ergibt - egal ob Unicode oder nicht - immer 4 .
Den benötigten Speicher berechnet man aber sicher mit Length( 'Text' ) * SizeOf( Char ) , denn der ist bei nicht Unicode 4 und als Unicode 8
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 lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#5

AW: Problem mit FastCode und CopyMemory

  Alt 11. Mär 2013, 09:29
Verwechselst Du da nicht sizeof und length ?
Soweit ich weiß, funktioniert length immer wie gewünscht.

Gruß
K-H
Length( 'Text' ) ergibt - egal ob Unicode oder nicht - immer 4 .
Den benötigten Speicher berechnet man aber sicher mit Length( 'Text' ) * SizeOf( Char ) , denn der ist bei nicht Unicode 4 und als Unicode 8

Also müsste ich so den Speicher reservieren?

Delphi-Quellcode:
function SetClipText(szText: string): Boolean;
var
  pData: DWORD;
  dwSize: DWORD;
begin;
  Result := FALSE;
  OpenClipBoard(0);
  try
    EmptyClipboard;
    if Length(szText) > 0 then begin;
      dwSize := Length(szText) * SizeOf(Char);
      pData := GlobalAlloc(MEM_COMMIT, dwSize);
      try
        CopyMemory(POINTER(pData), PChar(szText), dwSize);
        Result := (SetClipBoardData(CF_TEXT, pData) <> 0);
      except
        GlobalFree(pData);
        raise;
      end;
    end;
  finally
    CloseClipBoard;
  end;
end;
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.222 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Problem mit FastCode und CopyMemory

  Alt 11. Mär 2013, 09:35
Wieso überhaupt eine eigene Funktion?

Clipboard.AsText := szText
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#7

AW: Problem mit FastCode und CopyMemory

  Alt 11. Mär 2013, 09:36
Bei mir fast alles immer nonVCL
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  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 17:56 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