![]() |
Anzeige:
|
|
|||||||
| Helfer & Tools Programme für und in XProfan und Fragen dazu. |
|
![]() |
|
|
LinkBack | Themen-Optionen | Ansicht |
|
|
#1 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 23.01.2011
Ort: Bernburg
Alter: 58
Beiträge: 756
|
Hallo allerseits
In früheren Windows-Versionen gab es ein Tool zum Anzeigen des Inhaltes der Zwischenablage. Ich habe nun mal versucht, die Funktionalität mittels XProfan nachzubilden. Wie beim Original wird die Anzeige bei jeder Änderung des Inhaltes der Zwischenablage automatisch aktualisiert. Das Ganze sollte ab Profan7 laufen. Es können Texte und Bilder dargestellt werden. Kleiner Wermutstropfen, wenn das Programm minimiert ist, zeigt die Vorschau ün der Taskleiste den letzten Zustand der Zwischenablage vor dem Verkleinern. Aber das machen Profiprogramme auch nicht besser. Code:
$H windows.ph
$H messages.ph
Declare Titel$, NextViewer&, LastSender&, Text&, Static&, IsText&, IsPic&, Font&, Static$
Declare Rect#
Declare Bitmap#
Declare Buffer#
Struct Rect = ~TRect
Struct Bitmap = ~TBitmap
DIM Rect#, Rect
DIM Bitmap#, Bitmap
DIM Buffer#, 60
Proc BildHolen
Declare _Ratio!, _Ratio$, _BMH&
If ~OpenClipBoard(%HWnd) <> 0
_BMH& = ~GetClipboardData(~cf_Bitmap)
~GetObject(_BMH&, 28, Bitmap#)
~CloseClipboard()
MCLS Bitmap#.bmWidth&, Bitmap#.bmheight&
StartPaint -1
ClipLoadBMP 0, 0; 0
Endpaint
' Verhältnis Breite zu Höhe für Anzeige berechnen
_Ratio! = Bitmap#.bmheight& / Bitmap#.bmWidth&
_Ratio$ = " [B : H = 1 : " + Format$ ("0.00", _Ratio!) + "]"
If _Ratio! < 1
_Ratio! = Bitmap#.bmWidth& / Bitmap#.bmheight&
_Ratio$ = " [B : H = " + Format$ ("0.00", _Ratio!) + " : 1]"
EndIf
Static$ = "Bild (" + Str$(Bitmap#.bmWidth&) + " x " + Str$(Bitmap#.bmheight&) + ") Pixel"
SetText Static&, Static$ + _Ratio$
IsPic& = 1
Else
SetText Static&, "Bildholen gescheitert"
IsPic& = 0
EndIf
EndProc
Proc BildSetzen
Declare _Zoom1!, _Zoom2!, _BW&, _BH&
Case IsPic& = 2 : BildHolen ' War Fenster verkleinert, Bild jetzt holen
' BildHolen funktioniert nicht, wenn Programm verkleinert!
If IsPic& = 1
' Proportional in vorhandene Fenstergröße einpassen
_Zoom1! = %BMPX / Rect#.Right&
_Zoom2! = %BMPY / (Rect#.Bottom& - 22)
If _Zoom1! > _Zoom2!
_BW& = %BMPX / _Zoom1!
_BH& = %BMPY / _Zoom1!
Else
_BW& = %BMPX / _Zoom2!
_BH& = %BMPY / _Zoom2!
EndIf
MCopySizedBMP 0, 0 - %BMPX, %BMPY > 0, 0 - _BW&, _BH&; 0 ' Bild in Fenster einzoomen
EndIf
EndProc
Proc Size ' Größenänderung Fenster
Case ~IsIconic(%HWnd) : Return ' nichts tun bei verkleinertem Fenster
' Vorschau wird ohnehin nicht aktualisiert
' und Bildeinfügen ist hier nicht möglich
CLS ~GetSysColor(~Color_BtnShadow)
~GetClientRect(%HWnd, Rect#)
SetWindowPos Static& = 0, (Rect#.Bottom& - 22) - (Rect#.Right& - 3), 22
If IsText& ' Textdisplay einpassen
SetWindowPos Text& = 0, 0 - Rect#.Right&, Rect#.Bottom& - 23
SetText Static&, Static$
ShowWindow(Text&, 1)
ElseIf IsPic& ' Bild einpassen
BildSetzen
Else
SetText Static&, Static$
EndIf
EndProc
Proc ShowText ' Steuerung Sichtbarkeit Textdisplay
Parameters _Text&
IsText& = _Text&
Case IsText& : IsPic& = 0
ShowWindow (Text&, IsText&)
EndProc
Proc TextFormat ' Aktion Text
Declare _Text$, _Len&
_Text$ = GetClip$()
_Len& = Len (_Text$)
ShowText 1
SetText Text&, _Text$
Static$ = "Text (" + Str$(_Len&) + " Zeichen)"
EndProc
Proc BildFormat ' Aktion Bild
ShowText 0
IsPic& = 2 ' Veranlaßt Bildholen wenn Fenster anzeigebereit ist
EndProc
Proc XFormat ' Aktion Unbekanntes Format
Parameters _Static$
ShowText 0
Static$ = _Static$
IsPic& = 0
EndProc
Proc ClipAction ' Änderungen des Inhalts der Zwischenanlage auswerten
Declare _Icon&
CLS ~GetSysColor(~Color_BtnShadow)
If ~CountClipboardFormats()
If ~IsClipboardFormatAvailable(~cf_Text)
Textformat
ElseIf ~IsClipboardFormatAvailable(~cf_Bitmap)
BildFormat
Else
XFormat "Nicht darstellbar"
EndIf
Else
XFormat "Leer"
EndIf
Size
Case NextViewer& : SendMessage(NextViewer&, ~wm_DrawClipboard, &uwParam, &ulParam)
' Kommando durchreichen an nächsten Viewer
EndProc
Proc CBChain ' Änderung der Viewerkette behandeln
If &uwParam = NextViewer&
NextViewer& = &ulParam
ElseIf NextViewer& <> 0
SendMessage(NextViewer&, ~wm_ChangeCBChain, &uwParam, &ulParam)
EndIf
EndProc
Proc MakeTextDisplay
Font& = ~GetStockObject(~Default_GUI_Font)
~GetObject(Font&, 60, Buffer#)
Long Buffer#, 0 = 16
Long Buffer#, 4 = 0
Font& = ~CreateFontIndirectA(Buffer#) ' Eigenen Font basiert auf Systemschrift Default_GUI_Font
SetDialogFont Font&
Text& = Create("MultiEdit", %HWnd, "", 0, 0, 0, -1) ' Textanzeige
SendMessage(Text&, ~em_SetReadOnly, 1, 0) ' Text als NurLesen anzeigen
IsText& = 1
Static& = Control("Static", "", $50000000, 0, 0, 0, 0, %HWnd, 100, %HInstance, $200) ' Statusanzeige
Size
EndProc
WindowStyle 575
WindowTitle "ClipView"
Window %MaxX\12, %MaxY\12 - %MaxX\2, %MaxY\2
UseIcon "Windows"
CLS ~GetSysColor(~Color_BtnShadow)
Set("FastMode", 1)
Set("ErrorLevel", 0)
MakeTextDisplay
NextViewer& = ~SetClipboardViewer(%HWnd) ' Viewer anmelden
UserMessages ~wm_DrawClipboard, ~wm_ChangeCBChain
ClipAction
While 1
WaitInput
If %Key = 2
Break
ElseIf %Key = 4
Size
ElseIf %UMessage = ~wm_DrawClipboard
ClipAction
ElseIf %UMessage = ~wm_ChangeCBChain
CBChain
EndIf
EndWhile
Dispose Rect#
Dispose Bitmap#
Dispose Buffer#
DeleteObject Font&
~ChangeClipboardChain(%HWnd, NextViewer&) ' Viewer abmelden, unbedingt bei Ende ausführen!!!
|
|
|
|
|
|
|
#2 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 16.05.2010
Ort: Berlin
Beiträge: 724
|
sehr schön.Einen Button zum löschen der Zwischenablage, das wird doch ab und an benötigt, fehlt da noch. Untertützung für CF_HDROP, also Dateien in der Zwischenablage, also Anzeige der Pfade und Namen wäre noch praktisch.
__________________
Gruß Thomas Wenn mir früher jemand gesagt hätte, ich würde freiwillig eine Wanze mit mir herum tragen und sie auch noch selbst aufladen, hätte ich laut gelacht. Heute habe ich ein Smartphone. http://realsource.de |
|
|
|
|
|
#3 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 23.01.2011
Ort: Bernburg
Alter: 58
Beiträge: 756
|
Danke für die Tips, Thomas. Nehme ich mir mal für morgen vor.
Gruß Volkmar |
|
|
|
|
|
#4 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.093
|
Sehr nett.
Hatte sowas auch mal geschrieben, für Texte. Die konnte man dann auch editieren. Vielleicht als weitere Anregung.
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
|
|
#5 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 23.01.2011
Ort: Bernburg
Alter: 58
Beiträge: 756
|
@Thomas, der Button zum Löschen ist da und auch die Anzeige der cf_HDrop-Daten funktioniert.
@Frank, Du kannst nun den Text in der Zwischenablage bearbeiten. Da habe ich aber eine kleine Hürde eingebaut. Es muß erst ausdrücklich ein Editmodus aktiviert werden (Checkbox). Vorschnelles Bearbeiten der Zwischenablage halte ich nicht für besonders glücklich. Man stelle sich vor, da ist ein Office-Dokument oder sowas drin. Wenn ich das nun bearbeite, dann zerschieße ich mir die ganze Formatierung (zumindest in der Zwischenablage). Code:
$H windows.ph
$H messages.ph
Declare Titel$, NextViewer&, LastSender&, Text&, Static&, DelBtn&, EditBtn&, CopyBtn&, IsText&, IsPic&, Font&, Static$
Declare Rect#
Declare RRect#
Declare Bitmap#
Declare Buffer#
Struct Rect = ~TRect
Struct Bitmap = ~TBitmap
DIM Rect#, Rect
DIM RRect#, Rect
DIM Bitmap#, Bitmap
DIM Buffer#, 60
Proc BildHolen
Declare _Ratio!, _Ratio$, _BMH&
If ~OpenClipBoard(%HWnd) <> 0
_BMH& = ~GetClipboardData(~cf_Bitmap)
~GetObject(_BMH&, 28, Bitmap#)
~CloseClipboard()
MCLS Bitmap#.bmWidth&, Bitmap#.bmheight&
StartPaint -1
ClipLoadBMP 0, 0; 0
Endpaint
' Verhältnis Breite zu Höhe für Anzeige berechnen
_Ratio! = Bitmap#.bmheight& / Bitmap#.bmWidth&
_Ratio$ = " [B : H = 1 : " + Format$ ("0.00", _Ratio!) + "]"
If _Ratio! < 1
_Ratio! = Bitmap#.bmWidth& / Bitmap#.bmheight&
_Ratio$ = " [B : H = " + Format$ ("0.00", _Ratio!) + " : 1]"
EndIf
Static$ = "Bild (" + Str$(Bitmap#.bmWidth&) + " x " + Str$(Bitmap#.bmheight&) + ") Pixel"
SetText Static&, Static$ + _Ratio$
IsPic& = 1
Else
SetText Static&, "Bildholen gescheitert"
IsPic& = 0
EndIf
EndProc
Proc BildSetzen
Declare _Zoom1!, _Zoom2!, _BW&, _BH&
Case IsPic& = 2 : BildHolen ' War Fenster verkleinert, Bild jetzt holen
' BildHolen funktioniert nicht, wenn Programm verkleinert!
If IsPic& = 1
' Proportional in vorhandene Fenstergröße einpassen
_Zoom1! = %BMPX / Rect#.Right&
_Zoom2! = %BMPY / (Rect#.Bottom& - 49)
If _Zoom1! > _Zoom2!
_BW& = %BMPX / _Zoom1!
_BH& = %BMPY / _Zoom1!
Else
_BW& = %BMPX / _Zoom2!
_BH& = %BMPY / _Zoom2!
EndIf
MCopySizedBMP 0, 0 - %BMPX, %BMPY > 0, 26 - _BW&, _BH&; 0 ' Bild in Fenster einzoomen
EndIf
EndProc
Proc Size ' Größenänderung Fenster
Case ~IsIconic(%HWnd) : Return ' nichts tun bei verkleinertem Fenster
' Vorschau wird ohnehin nicht aktualisiert
' und Bildeinfügen ist hier nicht möglich
CLS ~GetSysColor(~Color_BtnFace)
~GetClientRect(%HWnd, Rect#)
RRect#.Left& = -1
RRect#.Top& = -1
RRect#.Right& = Rect#,Right& - 6
RRect#.Bottom& = 25
~DrawEdge(%HDC, RRect#, 9, 15)
~DrawEdge(%HDC2, RRect#, 9, 15)
SetWindowPos Static& = 2, (Rect#.Bottom& - 22) - (Rect#.Right& - 3), 22
If IsText& ' Textdisplay einpassen
SetWindowPos Text& = 0, 26 - Rect#.Right&, Rect#.Bottom& - 48
SetText Static&, Static$
ShowWindow(Text&, 1)
ElseIf IsPic& ' Bild einpassen
BildSetzen
Else
SetText Static&, Static$
EndIf
EndProc
Proc ShowText ' Steuerung Sichtbarkeit Textdisplay
Parameters _Text&
IsText& = _Text&
Case IsText& : IsPic& = 0
ShowWindow (Text&, IsText&<>0)
ShowWindow (EditBtn&, IsText&=1)
ShowWindow (CopyBtn&, IsText&=1)
EnableWindow CopyBtn&, 0
SetCheck EditBtn&, 0
EndProc
Proc TextFormat ' Aktion Text
Declare _Text$, _Len&
_Text$ = GetClip$()
_Len& = Len (_Text$)
ShowText 1
SetText Text&, _Text$
Static$ = "Text (" + Str$(_Len&) + " Zeichen)"
EndProc
Proc BildFormat ' Aktion Bild
ShowText 0
IsPic& = 2 ' Veranlaßt Bildholen wenn Fenster anzeigebereit ist
EndProc
Proc AnsiString
Parameters _Offs&
Declare _AString$
_AString$ = MkStr$(Chr$(0), 260)
~WideCharToMultiByte(~CP_ACP,0,_Offs&,-1,Addr(_AString$),260,0,0)
Return Trim$(_AString$)
EndProc
Proc DropFileFormat
Declare _Data&, _Offs&, _File$, _FileList$, _Files&
If ~OpenClipBoard(%HWnd) <> 0
_Data& = ~GetClipboardData(~cf_HDrop)
_Offs& = Long(_Data&, 0)
_File$ = AnsiString (_Data& + _Offs&)
While _File$ <> ""
Inc _Files&
_FileList$ = _FileList$ + Chr$(13) + Chr$(10) + _File$
_Offs& = _Offs& + Len(_File$)*2 + 2
_File$ = AnsiString (_Data& + _Offs&)
EndWhile
EndIf
~CloseClipboard()
SetText Text&, @Del$(_FileList$, 1, 2)
Static$ = "HDrop-Struktur mit " + Str$(_Files&) + " Einträgen"
ShowText 2
EndProc
Proc XFormat ' Aktion Unbekanntes Format
Parameters _Static$
ShowText 0
Static$ = _Static$
IsPic& = 0
EndProc
Proc ClipAction ' Änderungen des Inhalts der Zwischenanlage auswerten
Declare _Icon&
CLS ~GetSysColor(~Color_BtnShadow)
If ~CountClipboardFormats()
If ~IsClipboardFormatAvailable(~cf_Text)
Textformat
ElseIf ~IsClipboardFormatAvailable(~cf_Bitmap)
BildFormat
ElseIf ~IsClipboardFormatAvailable(~cf_HDrop)
DropFileFormat
Else
XFormat "Nicht darstellbar"
EndIf
Else
XFormat "Leer"
EndIf
Size
Case NextViewer& : SendMessage(NextViewer&, ~wm_DrawClipboard, &uwParam, &ulParam)
' Kommando durchreichen an nächsten Viewer
EndProc
Proc CopyEdit
ClearClip
PutClip GetText$(Text&)
ClipAction
EndProc
Proc CBChain ' Änderung der Viewerkette behandeln
If &uwParam = NextViewer&
NextViewer& = &ulParam
ElseIf NextViewer& <> 0
SendMessage(NextViewer&, ~wm_ChangeCBChain, &uwParam, &ulParam)
EndIf
EndProc
Proc MakeTextDisplay
Font& = ~GetStockObject(~Default_GUI_Font)
~GetObject(Font&, 60, Buffer#)
Long Buffer#, 0 = 16
Long Buffer#, 4 = 0
Font& = ~CreateFontIndirectA(Buffer#) ' Eigenen Font basiert auf Systemschrift Default_GUI_Font
SetDialogFont Font&
Text& = Create("MultiEdit", %HWnd, "", 0, 0, 0, -1) ' Textanzeige
SendMessage(Text&, ~em_SetReadOnly, 1, 0) ' Text als NurLesen anzeigen
IsText& = 1
Static& = Control("Static", "", $50000000, 0, 0, 0, 0, %HWnd, 100, %HInstance, $200) ' Statusanzeige
DelBtn& = Create("Button", %HWnd, "Löschen", 2, 2, 64, 22)
EditBtn& = Create("CheckBox", %HWnd, "Bearbeiten", 88, 3, 88, 20)
CopyBtn& = Create("Button", %HWnd, "Alles kopieren", 176, 2, 96, 22)
Size
EndProc
WindowStyle 575
WindowTitle "ClipView"
Window %MaxX\12, %MaxY\12 - %MaxX\2, %MaxY\2
UseIcon "Windows"
CLS ~GetSysColor(~Color_BtnShadow)
Set("FastMode", 1)
Set("ErrorLevel", 0)
MakeTextDisplay
NextViewer& = ~SetClipboardViewer(%HWnd) ' Viewer anmelden
UserMessages ~wm_DrawClipboard, ~wm_ChangeCBChain
ClipAction
While 1
WaitInput
SendMessage(Text&, ~em_SetReadOnly, Not(GetCheck(EditBtn&)), 0)
EnableWindow CopyBtn&, GetCheck(EditBtn&)
If %Key = 2
Break
ElseIf %Key = 4
Size
ElseIf %UMessage = ~wm_DrawClipboard
ClipAction
ElseIf %UMessage = ~wm_ChangeCBChain
CBChain
ElseIf %Key = 255
If GetFocus(DelBtn&)
ClearClip
ClipAction
EndIf
ElseIf GetFocus(CopyBtn&)
CopyEdit
EndIf
EndWhile
Dispose Rect#
Dispose Bitmap#
Dispose Buffer#
DeleteObject Font&
~ChangeClipboardChain(%HWnd, NextViewer&) ' Viewer abmelden, unbedingt bei Ende ausführen!!!
|
|
|
|
|
|
|
#6 (Direktlink) |
|
Dauergast
![]() Registriert seit: 06.02.2009
Ort: Wien, Österreich
Beiträge: 1.078
|
Gratulation - Super Sache, die ich persönlich sehr nützlich finde!
Gruss P.S.: Könnte man noch was ergänzen, damit Änderungen automatisch sichtbar werden und nicht erst nach einem Fenster-Resize?
__________________
Win7-64HomPremSP1,XProfan11.2a,XPIA,JWasm,XPSE,IntelCoreQuad2.5GHz/4GB/je1TB HD intern:esataBay:USB2:USB3 |
|
|
|
|
|
#7 (Direktlink) | |
|
Forenmaskottchen
![]() Registriert seit: 23.01.2011
Ort: Bernburg
Alter: 58
Beiträge: 756
|
Zitat:
Wenn ich bei mir die Viewer neben einem Editor oder einer Bildbearbeitung liegen habe, dann wird der Viewer augenblicklich aktualisiert. Sogar in mehreren Instanzen, wenn ich den mehrmals starte. Wenn du allerdings die Vorschau in der Taskleiste meinst, das klappt nicht, wenn der Viewer minimiert ist. Schau Dir zum Beispiel mal ein Video an und minimiere den Player. Der Ton läuft weiter aber das Vorschaufenster wird eingefroren. Liegt wohl daran, dass minimierte Fenster grundsätzlich nicht mehr wirklich zeichen. Und die Vorschau holt sich nur bei Änderungen einen "Screenshoot" vom Programm ab. Denke ich mir zumindest so. Im Moment fällt mir da nur eine Lösung ein. Das Verkleinern abfangen und statt dessen nach außerhalb des Bildschirm verschieben. Aber da will ich nicht ran. Dann kommt garantiert jemand, der dann anmeckert, und das zu recht, dass beim Verkleinern das Teil immer plötzlich mitten auf seinem zweiten Bildschirm prangt. Aber vielleicht hat da jemand eine Idee. Gruß Volkmar |
|
|
|
|
|
|
#8 (Direktlink) |
|
Dauergast
![]() Registriert seit: 06.02.2009
Ort: Wien, Österreich
Beiträge: 1.078
|
Hm... also Beispiel Kleines Bild nach Großem Bild in der Ablage kommt bei mir nicht automatisch, sondern erst nach einem Resize des Fensters zur Anzeige... Wobei ich dazu sagen muss, daß ich dein Programm zu einer exe compiliert habe. Ich hab XP SP2 pro, vielleicht ist ja die Betriebssystemversion schuld...
__________________
Win7-64HomPremSP1,XProfan11.2a,XPIA,JWasm,XPSE,IntelCoreQuad2.5GHz/4GB/je1TB HD intern:esataBay:USB2:USB3 |
|
|
|
|
|
#9 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 23.01.2011
Ort: Bernburg
Alter: 58
Beiträge: 756
|
Hatte es bisher nur als PRF laufen nun aber als EXE unter VISTA SP2. Ich kann da abwechselnd ein großes Bild mit über 2000 Pixel Breite und Höhe und ein Icon und wieder so ein Riesenbild in die Zwischenablage setzen, das wird auch als EXE immer sofort angezeigt. Da bin ich erst mal ratlos.
Gruß Volkmar |
|
|
|
|
|
#10 (Direktlink) |
|
Dauergast
![]() Registriert seit: 06.02.2009
Ort: Wien, Österreich
Beiträge: 1.078
|
Lass gut sein, mit Texten klappt es ohnehin, und das ist viel wichtiger!
Danke nochmal!
__________________
Win7-64HomPremSP1,XProfan11.2a,XPIA,JWasm,XPSE,IntelCoreQuad2.5GHz/4GB/je1TB HD intern:esataBay:USB2:USB3 |
|
|
|
|
|
|
#11 (Direktlink) | |
|
Forenmaskottchen
![]() Registriert seit: 16.05.2010
Ort: Berlin
Beiträge: 724
|
Zitat:
__________________
Gruß Thomas Wenn mir früher jemand gesagt hätte, ich würde freiwillig eine Wanze mit mir herum tragen und sie auch noch selbst aufladen, hätte ich laut gelacht. Heute habe ich ein Smartphone. http://realsource.de |
|
|
|
|
|
|
#12 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 23.01.2011
Ort: Bernburg
Alter: 58
Beiträge: 756
|
Hallo Thomas
Prima, wenns bei Dir passt. Gruß Volkmar |
|
|
|
|
|
#13 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 16.05.2010
Ort: Berlin
Beiträge: 724
|
Hätteste aber vor ein paar Wochen machen sollen
meine Sourcen zum kopieren und einfügen von Dateien aus der Zwischenablage nach XProfan zu übertragen. Ist leider laufend fehlgeschlagen, weil entweder was am Format nicht stimmte oder der Speicher dafür nicht gültig war (nimmt wohl keine Buffer#). Wenn ich mich da nochmal ransetze könnte ich evtl. den Fehler sehen
__________________
Gruß Thomas Wenn mir früher jemand gesagt hätte, ich würde freiwillig eine Wanze mit mir herum tragen und sie auch noch selbst aufladen, hätte ich laut gelacht. Heute habe ich ein Smartphone. http://realsource.de |
|
|
|
|
|
#14 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 23.01.2011
Ort: Bernburg
Alter: 58
Beiträge: 756
|
Wenn ich das gewußt hätte und schon hier angemeldet gewesen wäre
Die Übergabe von Daten ist eben auch nicht mehr das, was sie mal war. Unter 16 Bit da konnte man noch einfach einen Zeiger auf irgendwelche Daten nach überallhin übergeben. aber heutzutage läuft eben jeder Prozeß in einem eigenen, virtuellen Adressraum. Kaum erreichst Du die Grenzen Deiner Anwendung, schon sind alle Adressen ungültig. Da bleiben dann nur noch ein Dateiobjekt oder die Zwischenablage zur Übergabe. Da hatte ich heute früh auch erst mal ein Brett vorm Kopf. Es kam bei der Dateiliste immer nur der erste Buchstabe des ersten Dateinamens an. Naja, wie auch anders, wenn es doch die Struktur in der Zwischenablage einfach auf ein Array of Widechar zeigt. Da war eben mit Ansistrings nach dem ersten Zeichen schon Schluß. Gruß Volkmar |
|
|
|
|
|
#15 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.093
|
Weitere Möglichkeiten sind verschiedenen Controls. Pack Text in ein Editfeld oder noch besser ein Control mit eigener Class und du kannst darauf zugreifen.
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
|
![]() |
|
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
|
|