Może pytanie wyda się lamerskie ale ja nie programuje w delphi ani w builderze więc muszę oto zapytać bo muszę napiać program w delphi.
A minowicie:
Mam podformę na której są 1 edit i 2 maskedit.Na formie głównej mam
Tlist.I teraz chodzi oto żeby po klknięciu OK dodał do listy nową pozycję
która zawiera treść z edita i maskedit'ów z tej podformy.
Próbowałem na różne sposoby ale nic nie wskurałem.Z góry dziękuje za pomoc.
type
PTyp=^TTyp
TTyp=record
String1:String;
String2:String;
end;
var
Lista:TList;
[...]
var
Rec:PTyp;
begin
New(Rec);
Rec^.String1:=Edit1.Text;
Rec^.String2:=Edit2.Text;
Lista.Add(Rec);
Wkleiłem kodzik, który został mi dany w odpowiedzi i wszystko ładnie działa tylko że podczas pracy progamu wywala błąd (po naciśnieciu guzika z procedurą).Chodzi oto aby po naciśnięciu guzika z edita na podformie pobierany zostawał tekst który zostaje wklejony do listview który znajduje się na formie głównej ale żeby nie wywalał błędu.Błagam o szybką pomoc. [???]
Trochę namotałeś z tym i w końcu nie rozumiem, o co chodzi :). Wydaje mi się, że przyczyną błędu jest to twoje odczytywanie z listview albo jeszcze co innego, ale raczej nie dodawanie do TList. Najlepiej daj kod.
Wysałałem Ci na maila kod zobacz, proszę o co tam chodzi :-/
Wielkie dzięki, gdyby nie ty było by kiepsko!! [angel] [browar]
Mam jeszcze jedno pytanie:
Jak teraz to wszystko posegregować w odpowiednie kolumny w Listview
(TListView.column).Przykładaowo mam dwa edity i teraz z jednego chcę wkleić tekst do kolumny np. 'kolumna01' ,a z drugiego do np. 'kolumna02. [stuk]
Musisz dać w listview style na vsrepot. Pierwsza kolumna to będzie item.caption, druga - item.subitems[0], trzecia - item.subitems[1], itd.
Zrobiłem tak jak napisałeś i podczas działania programu wywala mi błąd:
class EStringListError with message 'List index out of bounds(0).
Co mam z tym zrobić?Strasznie mnie wkurza ten komponent ale cóż zrobić.Help me!!
Item dodajesz tak:
ListView.Items.Add('caption tworzonego itemu');
a jak chcesz aby bylo cos w kolumnach obok tego itemu robisz to tak
var
ListItem: TListItem;
begin
ListItem := ListView.Items.Add('caption tworzonego itemu');
ListItem.SubItems.Add('caption subitemu do nastepnej kolumny');
Caption itemu jest wyswietlany w pierwszej kolumnie a captiony jego subitemów wyswietlane są w kolejnych kolumnach. Aby sie odwołać do nazw pierwszej kolumny nalezy napisć:
s1 := ListView.Items[i].Caption; {gdzie i to numer itemu}
a do kolejnych kolumn przez:
s2 := ListView.Items[i].Subitem[0]; {do drugiej kolumny}
s3 := ListView.Items[i].Subitem[1]; {do trzeciej kolumny itd.}
Poprubój i poczytaj troche helpa !!
Dzięki ale sposób thenkles'a jest lepszy,za to nie omieszkam wpisać list.subitems.add właśnie oto mi chodziło.No a helpy czytam tyle że jakoś minie pomigły w tym przypadku.Zoaczymy czy Twój subitem.add będzie działał. :-)
Zrobiłęm konstrukcje:
list.Items.Item[mainform.list.Items.Count+1].subitems[0] := rec^.String2;
Ale wywala błąd 'acces volation' O co chodzi?
Najwyższy indeks to count-1, a ty prubójesz się odwołać do pozycji nieistniejącej.
Kiedy robie count-1 wywala mi błąd opisany wczśniej(listindex of bounds).
A kiedy robie samo count to wywala 'Acces volation'.
Co mam kurde robić?
!!
aby kozystac z elementow musisz je najpierw dodac jak pisalem :-[
ListView.Items.Add('cos tam');
To samo dla subitemow.
Jakiam cudem ma robić add jeżeli add nie ma żandych parametrów do zdeklarowania?! :d
sorki, zapomniałem:
var
ListItem: TListItem;
begin
ListItem := ListView.Items.Add;
ListItem.Caption := ('caption itemu');
ListItem.SubItems.Add('subitem');
...
end;
Zresztą pisałem to już chyba wcześniej
No dobra popróbuje ale coś mi się tu nie poodoba :-), ale sprawdzę
Jak nie będzie działać to napiszę.