title image


Smiley Re: Ich frage es nocheinmal
Hallo Alex,ich kenne mich mit Delphi nicht aus, jedoch die ZeileCombo1.Lines(1) = Namelässt mich vermuten, daß es sich bei dem Combo - Steuerelement um ein Listenfeld (ListBox) oder ein Kombinatinsfeld handelt (ComboBox).In diesem Fall schlage ich dir vor, einmal in der VB-Hilfe zu den entsprechenden Themen nachzuschlagen.Falls meine Vermutung falsch sein sollte und es sich um ein normales Textfeld handelt (multi line = True), dann gibt es in VB keine direkte Lösungsmöglichkeit, sondern nur einen Workarround in Form einer Funktion, die das von Dir gewünschte Verhalten nachbildet, oder in form eines selbst erstellten Steuerelementes (was letztendlich genau das gleiche erledigt). Ein Beispiel hierzu:1.) kopiere des folgenden Inhalt über die Zwischenablage in einen Texteditor (Notepad) und erstelle damit eine Datei namens Form1.frm:VERSION 5.00Begin VB.Form Form1 Caption = "Form1" ClientHeight = 2445 ClientLeft = 60 ClientTop = 375 ClientWidth = 7110 LinkTopic = "Form1" ScaleHeight = 2445 ScaleWidth = 7110 StartUpPosition = 3 'Windows-Standard Begin VB.TextBox txtLine BeginProperty Font Name = "Courier New" Size = 9.75 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 360 Left = 1545 TabIndex = 4 Text = "0" Top = 1080 Width = 735 End Begin VB.CommandButton cmdGet Caption = " Height = 375 Left = 2520 TabIndex = 3 Top = 1080 Width = 615 End Begin VB.CommandButton cmdPut Caption = "-->" Height = 375 Left = 2520 TabIndex = 2 Top = 600 Width = 615 End Begin VB.TextBox txtMultiLineBox Height = 2055 Left = 3360 MultiLine = -1 'True ScrollBars = 3 'Beides TabIndex = 1 Top = 120 Width = 3495 End Begin VB.TextBox txtBuffer Height = 405 Left = 120 TabIndex = 0 Text = "Text1" Top = 600 Width = 2175 End Begin VB.Label Label1 AutoSize = -1 'True Caption = "ZeileNr:" Height = 195 Left = 870 TabIndex = 5 Top = 1140 Width = 555 EndEndAttribute VB_Name = "Form1"Attribute VB_GlobalNameSpace = FalseAttribute VB_Creatable = FalseAttribute VB_PredeclaredId = TrueAttribute VB_Exposed = FalseOption Explicit Private Sub cmdGet_Click() txtBuffer = Lines(txtMultiLineBox, Val(txtLine))End Sub Private Sub cmdPut_Click() Lines(txtMultiLineBox, Val(txtLine)) = txtBufferEnd Sub Private Property Get Lines(Target As TextBox, Index As Long) As String Dim sBuffer() As String ' ' Inhalt holen: ' sBuffer = Split(Target, vbCrLf) If Index > UBound(sBuffer) Or Index ' ' Die Zeile(Index) existiert nicht. Leerstring zuweisen. ' Lines = vbNullString Else ' ' Wert zweisen ' Lines = sBuffer(Index) End IfEnd Property Private Property Let Lines(Target As TextBox, Index As Long, NewValue As String) Dim sInBuffer() As String Dim sOutBuffer() As String Dim i As Long ' ' derzeitigen Inhalt holen: ' sInBuffer = Split(Target, vbCrLf) ' ' sOutBuffer anpassen: ' If Index > UBound(sInBuffer) Then ReDim sOutBuffer(LBound(sInBuffer) To Index) ElseIf Index ReDim sOutBuffer(Index To UBound(sInBuffer)) Else ReDim sOutBuffer(LBound(sInBuffer) To UBound(sInBuffer)) End If ' ' derzeitige Werte in sOutBuffer kopieren: ' For i = LBound(sInBuffer) To UBound(sInBuffer) sOutBuffer(i) = sInBuffer(i) Next ' ' neuen Wert an die richtige Stelle eintragen: ' sOutBuffer(Index) = NewValue ' ' und sOutBuffer in die TextBox kopieren: ' Target = vbNullString For i = LBound(sOutBuffer) To UBound(sOutBuffer) - 1 Target = Target & sOutBuffer(i) & vbCrLf Next Target = Target & sOutBuffer(UBound(sOutBuffer))End Property2.) Erstelle ein neues Standard - exe Projekt.3.) Entferne das standardmäßig erstellte Formular Form14.) Füge die soeben kopierte Datei Form1.frm in Dein neues Projekt ein (hinzufügen - Formular - Vorhanden - Datei Form1.frm auswählern)5.) Lege Form1 als Startobjekt fest (Projekt - Eigenschaften - Allgemein - Startobjekt)Wenn du die hier gezeigte Technik auf ein eigenes Steuerelement anwendest, kannst Du die Syntax noch einmal vereinfachen:Jetzt:Lines(Combo1,3) = Namebzw:Debug.Print Lines(Combo1,3)oder:Name = Lines(Combo1,3)---------------------------------------------Als Steuerelement:Combo1(3).Lines = Namebzw.Debug.Print Combo1.Lines(3)oderName = Combo1.Lines(3)Viel Erfolg!Thomas Prötzschcu
Thomas Prötzsch

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: