Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi TlistView mit DLL an Programm übergeben -- Hilfe :D (https://www.delphipraxis.net/101251-tlistview-mit-dll-programm-uebergeben-hilfe-d.html)

hedie 10. Okt 2007 12:59


TlistView mit DLL an Programm übergeben -- Hilfe :D
 
Hallo

Ich habe das hier in einer DLL

Delphi-Quellcode:
result.AddItem(ini.ReadString(inttostr(ii),'name','db Error'));
Weshalb geht das nicht?

Bernhard Geyer 10. Okt 2007 13:00

Re: Was fehlt hier?
 
Was geht wie nicht? Fehlermeldung, ...?

hedie 10. Okt 2007 13:07

Re: Was fehlt hier?
 
Ja es kommt zu wenig parameter ich weiss das es noch einen Parameter vom typ TObject erwartet aber ich weiss nicht was da rein kommen soll

Ach sorry volkommen vergessen den rest zu Posten

Delphi-Quellcode:
function listdbn():Tlistview;stdcall;
var i,ii:integer;
begin
try
result := tlistview.Create(nil);
ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+inifn);
i := ini.ReadInteger('Config','dbc',1);
ii := 0;
repeat
result.AddItem(ini.ReadString(inttostr(ii),'name','db Error'));
ii := ii + 1;
until ii = i;
finally
ini.Free;
end;
end;

Dax 10. Okt 2007 13:08

Re: Was fehlt hier?
 
Was bitte ist "result"?

hedie 10. Okt 2007 13:09

Re: Was fehlt hier?
 
Siehe oben meinen Edit :D

Helmi 10. Okt 2007 13:12

Re: Was fehlt hier?
 
Wo ist die Variable "ini" definiert?

hedie 10. Okt 2007 13:16

Re: Was fehlt hier?
 
die is global definiert also an dem wird net liegen

Ich muss da noch etwas weiter ausholen

Es geht da um eine Musik also mp3 Datenbank zu beginn hab ich Listbox verwendet und einfach
TStrings übergeben, da konnte man einfach result.add .... machen

Dan is mir aufgefallen das tlistview wegen den Spalten viel besser is und bin auf listview umgestiegen
weil liestview tstrings nicht akzeptiert muss ich nun TListview direkt übergeben (Von der DLL Aus!!)

Aber bei TListview kann man nicht mehr einfach result.add machen sondern muss da noch mehr angeben


Bin allen tipps gegenüber offen :D

Apollonius 10. Okt 2007 13:20

Re: Was fehlt hier?
 
Setze einfach als zweiten Parameter nil ein, wenn du TListItem.Data sowieso nicht verwendest. Was hältst du eigentlich von der Delphi-Hilfe?

Helmi 10. Okt 2007 13:27

Re: Was fehlt hier?
 
Ich hab mir zum Hinzufügen eines Eintrages in eine ListView mal eine eine Procedure geschrieben:

Delphi-Quellcode:
procedure ListView_neuer_Eintrag(ListView: TListView; const ersteSpalte,
  Rest_CommaText: String; Checked: Boolean = true);
var
  ListItem: TListItem;

begin
  with ListView do
    begin
      ListItem := Items.Add;
      ListItem.Caption := ersteSpalte;
      ListItem.SubItems.CommaText := Rest_CommaText;

      If Checkboxes then
        Items.Item[Items.Count - 1].Checked := Checked;
    end;
end;
Die Variable "Rest_CommaText" ist die für die Spalten >= 2.

Aufruf:
Delphi-Quellcode:
ListView_neuer_Eintrag(Result, ini.ReadString(inttostr(ii)), 'name,db Error');
[edit]
Diese Procedure fügt einen Eintrag immer am Schluss an.
Solltest du Checkboxen verwenden, so kannst du mit "Checked" angeben, ob diese true oder false sein soll, Default-Einstellung: true
[/edit]

Nuclear-Ping 10. Okt 2007 13:29

Re: Was fehlt hier?
 
[OT]
Ich finds ja immer wieder interessant, wieviele Leute gleich mit "Delphi X Enterprise" oder wie hier "RAD-Studio 2007 Architect" (für ~2k EUR) in die Delphi-Welt einsteigen ... :mrgreen: ... Ein Schelm, wer böses dabei denkt ...
[/OT]

hedie 10. Okt 2007 13:33

Re: Was fehlt hier?
 
:D

Musst bedenken ich Programmiere schon seit 2 Jahren Delphi :D

SirThornberry 10. Okt 2007 13:34

Re: Was fehlt hier?
 
Zitat:

Zitat von hedie
:D

Musst bedenken ich Programmiere schon seit 2 Jahren Delphi :D

achso, trotzdem kann sich nicht jeder die neueste Delphi-Version im Alter von 16 Jahren leisten.


Könntest du bitte dem Beitrag einen aussagekräftigen Titel geben der beschreibt um was es geht? Danke :-D

hedie 10. Okt 2007 13:36

Re: TlistView mit DLL an Programm übergeben -- Hilfe :D
 
Testversionen tuns auch :D

Auch wenn leider blos 14 Tage

hedie 10. Okt 2007 13:38

Re: TlistView mit DLL an Programm übergeben -- Hilfe :D
 
Achjaaa Danke noch für die Procedure :D

hedie 10. Okt 2007 14:04

Re: Was fehlt hier?
 
Zitat:

Zitat von Helmi
Die Variable "Rest_CommaText" ist die für die Spalten >= 2.

Wie muss ich den diesen CommaText aufbauen damit auch was in die 3te spalte kommt?

Helmi 10. Okt 2007 14:30

Re: Was fehlt hier?
 
Zitat:

Zitat von hedie
Wie muss ich den diesen CommaText aufbauen damit auch was in die 3te spalte kommt?

Wie wäre es, wenn du dich mal mit der Hilfe auseinandersetzen würdest?

Wenn du dir die Hilfe zu SubItems.CommaText anschauen würdest, würdest du feststellen, dass dort der Aufbau steht.

Die Texte der einzelnen Spalten werden mit Komma´s :!: :!: :!: getrennt.

Beispiel:
Delphi-Quellcode:
var
  S: String;

{...}

  S := 'hallo, du, da';
  ListView.SubItems.CommaText := S;
Das wären also die Spalten 2, 3 und 4.


Selbsterklärend oder?

hedie 10. Okt 2007 14:32

Re: TlistView mit DLL an Programm übergeben -- Hilfe :D
 
Ja Tut mir leid....

Trozdem danke

Weisst du zufälligerweise wie man den wert einer bestimmten Spalte erhält?

Luckie 10. Okt 2007 14:36

Re: TlistView mit DLL an Programm übergeben -- Hilfe :D
 
Objekte, die in DLLs erzeugt wurden kann man nicht so einfach zurückgeben, da die DLL einen eigenen Speichermanager besitzt. Das geht nur, wenn man Packages (BPLs), also Borland spezifische DLLs benutzt.

Helmi 10. Okt 2007 14:37

Re: TlistView mit DLL an Programm übergeben -- Hilfe :D
 
Was meinst du mit "Wert einer bestimmten Spalte erhalten"?

hedie 10. Okt 2007 14:39

Re: TlistView mit DLL an Programm übergeben -- Hilfe :D
 
Hmmm ok dan werd ich einfach strings übergeben und in der anwendung diese auslesen

Trozdem danke


Damit meine ich das was zb in der zweitenspalte 3 zeile steht in einem label anzuzeigen

die einzige möglichkeit die mir dabei einfällt ist den comma text auszugeben und bei jedem komma zu trennen

gibts da sonst noch ne möglichkeit?

Helmi 10. Okt 2007 14:46

Re: TlistView mit DLL an Programm übergeben -- Hilfe :D
 
Wie wäre es, wenn du dich mal mit einer ListView und deren Eigenschaften beschäftigen würdest??

Delphi-Quellcode:
var
  S: String;

begin
  S := ListView_NamenList.Items.Item[0].SubItems.Strings[2];
end;
S beinhaltet den Text aus der ersten Zeile, 4. Spalte

1. Spalte = Item[0].Caption
2. Spalte = Strings[0]
3. Spalte = Strings[1]
4. Spalte = Strings[2]

Aber nicht vergessen: HILFE LESEN!!

hedie 10. Okt 2007 14:47

Re: TlistView mit DLL an Programm übergeben -- Hilfe :D
 
Danke viel mal :D

hedie 10. Okt 2007 16:01

Re: TlistView mit DLL an Programm übergeben -- Hilfe :D
 
weshalb wird bei jedem leerzeichen eine spalte nach vorne gerükt?


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:24 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